[{"data":1,"prerenderedAt":504},["ShallowReactive",2],{"navigation":3,"post-\u002Fposts\u002F2017\u002Fusing-ghost":20,"surroundPosts-\u002Fposts\u002F2017\u002Fusing-ghost":491},[4,8,12,16],{"title":5,"path":6,"stem":7},"首页","\u002F","00.index",{"title":9,"path":10,"stem":11},"文章","\u002Fposts","01.posts",{"title":13,"path":14,"stem":15},"动态","\u002Fmoments","02.moments",{"title":17,"path":18,"stem":19},"关于","\u002Fabout","09.about",{"id":21,"title":22,"body":23,"class":470,"cover":471,"coverSize":470,"date":472,"description":29,"draft":473,"extension":474,"hideComments":473,"location":470,"meta":475,"navigation":476,"path":477,"readingTime":478,"seo":483,"sitemap":484,"stem":485,"tags":486,"time":470,"weather":470,"__hash__":490},"posts\u002Fposts\u002F2017\u002F20171010.using-ghost.md","开始使用 Ghost 啦！",{"type":24,"value":25,"toc":464},"minimark",[26,30,41,49,52,55,59,131,135,337,350,353,381,385,457,460],[27,28,29],"p",{},"关注 Ghost 很久很久了，14 年就尝试过 0.5.3 版，由于一直没有出正式版，所以一直处于关注和等待中。",[27,31,32,33,40],{},"终于在差不多一年前 Ghost 在 GitHub 上发布了",[34,35,39],"a",{"href":36,"rel":37},"https:\u002F\u002Fgithub.com\u002FTryGhost\u002FGhost\u002Freleases\u002Ftag\u002F1.0.0-alpha.1",[38],"nofollow","1.0.0-alpha.1","，本以为很快就能出正式版了，开始了焦急的等待。一开始基本上每天都会去 GitHub 上检查下他们的动态。后来变成了大约每周会去看一次，等了一个又一个版本，甚至等了大半年，终于在第 21 个 alpha 版后，推出了 beta 版，随后不久发布了 1.0.0 正式版。尝试去安装，结果发现挺多坑的，试了很久都没成功，正式版的 Docker 镜像也一直没出。再后面，Ghost 团队的更新也非常勤奋，基本每周都会发布新版本，那段期间我正好也比较忙，一直在默默关注，没有再去尝试安装，任务列表里的“博客迁移到 Ghost 上”也被一再推迟。",[27,42,43,44,48],{},"直到今天，突然想再去试下。看到 Docker 镜像也同步了最新的版本，于是直接上 Docker。几分钟就装完了，如丝般顺滑，很爽！（20171012 更新：通过默认命令安装，有些地址会显示成 localhost 开头的地址，通过",[45,46,47],"code",{},"--env url=https:\u002F\u002Fhadb.me\u002F","可以修改这个地址，但是由于 Nginx 设置有问题，导致设置成 https 的地址后就陷入重定向循环，这个问题后来困扰了很久，解决方案下面会讲。）",[27,50,51],{},"作为一个技术博主，我觉得还是有必要把安装步骤写一下，方便后人。",[27,53,54],{},"我的博客是搭建在自己家里的 NAS 服务器上，具体细节以后再讲。",[56,57,58],"h3",{"id":58},"宿主机安装证书",[60,61,66],"pre",{"className":62,"code":63,"language":64,"meta":65,"style":65},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","service nginx stop && \\\ncertbot certonly --standalone --preferred-challenges tls-sni -d hadb.me && \\\nservice nginx start\n","bash","",[45,67,68,92,121],{"__ignoreMap":65},[69,70,73,77,81,84,88],"span",{"class":71,"line":72},"line",1,[69,74,76],{"class":75},"sbgvK","service",[69,78,80],{"class":79},"s_sjI"," nginx",[69,82,83],{"class":79}," stop",[69,85,87],{"class":86},"sP7_E"," &&",[69,89,91],{"class":90},"s_hVV"," \\\n",[69,93,95,98,101,105,108,111,114,117,119],{"class":71,"line":94},2,[69,96,97],{"class":75},"certbot",[69,99,100],{"class":79}," certonly",[69,102,104],{"class":103},"stzsN"," --standalone",[69,106,107],{"class":103}," --preferred-challenges",[69,109,110],{"class":79}," tls-sni",[69,112,113],{"class":103}," -d",[69,115,116],{"class":79}," hadb.me",[69,118,87],{"class":86},[69,120,91],{"class":90},[69,122,124,126,128],{"class":71,"line":123},3,[69,125,76],{"class":75},[69,127,80],{"class":79},[69,129,130],{"class":79}," start\n",[56,132,134],{"id":133},"宿主机-nginx-设置","宿主机 Nginx 设置",[60,136,140],{"className":137,"code":138,"language":139,"meta":65,"style":65},"language-nginx shiki shiki-themes material-theme-lighter github-light github-dark","server {\n    listen 443 ssl;\n    server_name hadb.me;\n    client_max_body_size 1024m;\n    ssl on;\n    ssl_certificate \u002Fetc\u002Fletsencrypt\u002Flive\u002Fhadb.me\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fhadb.me\u002Fprivkey.pem;\n    location \u002F {\n        proxy_redirect off;\n        proxy_read_timeout 300;\n        proxy_set_header host $host;\n        proxy_set_header x-real-ip $remote_addr;\n        proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;\n        proxy_set_header x-forwarded-proto https;\n        proxy_pass http:\u002F\u002Flocalhost:12368;\n    }\n}\n","nginx",[45,141,142,152,168,178,189,201,212,223,235,246,257,274,289,304,314,325,331],{"__ignoreMap":65},[69,143,144,148],{"class":71,"line":72},[69,145,147],{"class":146},"sbsja","server",[69,149,151],{"class":150},"su5hD"," {\n",[69,153,154,158,162,165],{"class":71,"line":94},[69,155,157],{"class":156},"smGrS","    listen ",[69,159,161],{"class":160},"srdBf","443",[69,163,164],{"class":150}," ssl",[69,166,167],{"class":86},";\n",[69,169,170,173,176],{"class":71,"line":123},[69,171,172],{"class":156},"    server_name ",[69,174,175],{"class":150},"hadb.me",[69,177,167],{"class":86},[69,179,181,184,187],{"class":71,"line":180},4,[69,182,183],{"class":156},"    client_max_body_size ",[69,185,186],{"class":160},"1024m",[69,188,167],{"class":86},[69,190,192,195,199],{"class":71,"line":191},5,[69,193,194],{"class":156},"    ssl ",[69,196,198],{"class":197},"s39Yj","on",[69,200,167],{"class":86},[69,202,204,207,210],{"class":71,"line":203},6,[69,205,206],{"class":156},"    ssl_certificate ",[69,208,209],{"class":150},"\u002Fetc\u002Fletsencrypt\u002Flive\u002Fhadb.me\u002Ffullchain.pem",[69,211,167],{"class":86},[69,213,215,218,221],{"class":71,"line":214},7,[69,216,217],{"class":156},"    ssl_certificate_key ",[69,219,220],{"class":150},"\u002Fetc\u002Fletsencrypt\u002Flive\u002Fhadb.me\u002Fprivkey.pem",[69,222,167],{"class":86},[69,224,226,229,232],{"class":71,"line":225},8,[69,227,228],{"class":146},"    location",[69,230,231],{"class":75}," \u002F ",[69,233,234],{"class":150},"{\n",[69,236,238,241,244],{"class":71,"line":237},9,[69,239,240],{"class":156},"        proxy_redirect ",[69,242,243],{"class":197},"off",[69,245,167],{"class":86},[69,247,249,252,255],{"class":71,"line":248},10,[69,250,251],{"class":156},"        proxy_read_timeout ",[69,253,254],{"class":160},"300",[69,256,167],{"class":86},[69,258,260,263,266,269,272],{"class":71,"line":259},11,[69,261,262],{"class":156},"        proxy_set_header ",[69,264,265],{"class":150},"host ",[69,267,268],{"class":86},"$",[69,270,271],{"class":150},"host",[69,273,167],{"class":86},[69,275,277,279,282,284,287],{"class":71,"line":276},12,[69,278,262],{"class":156},[69,280,281],{"class":150},"x-real-ip ",[69,283,268],{"class":86},[69,285,286],{"class":150},"remote_addr",[69,288,167],{"class":86},[69,290,292,294,297,299,302],{"class":71,"line":291},13,[69,293,262],{"class":156},[69,295,296],{"class":150},"x-forwarded-for ",[69,298,268],{"class":86},[69,300,301],{"class":150},"proxy_add_x_forwarded_for",[69,303,167],{"class":86},[69,305,307,309,312],{"class":71,"line":306},14,[69,308,262],{"class":156},[69,310,311],{"class":150},"x-forwarded-proto https",[69,313,167],{"class":86},[69,315,317,320,323],{"class":71,"line":316},15,[69,318,319],{"class":156},"        proxy_pass ",[69,321,322],{"class":150},"http:\u002F\u002Flocalhost:12368",[69,324,167],{"class":86},[69,326,328],{"class":71,"line":327},16,[69,329,330],{"class":150},"    }\n",[69,332,334],{"class":71,"line":333},17,[69,335,336],{"class":150},"}\n",[27,338,339,340,343,344,349],{},"其中 ",[45,341,342],{},"proxy_set_header x-forwarded-proto https;","很重要，如果不加的话，当启动 docker 设置 url 为 https 开头的地址时，就会陷入重定向循环，这个问题困扰了我很久，最终在",[34,345,348],{"href":346,"rel":347},"https:\u002F\u002Fgithub.com\u002FTryGhost\u002FGhost\u002Fissues\u002F2796",[38],"这个 issue","里找到了答案。",[56,351,352],{"id":352},"创建数据镜像",[60,354,356],{"className":62,"code":355,"language":64,"meta":65,"style":65},"docker create -v \u002Fsrv\u002Fghost\u002Fhadb.me:\u002Fvar\u002Flib\u002Fghost\u002Fcontent --name ghost-hadb-me-data ubuntu:16.04\n",[45,357,358],{"__ignoreMap":65},[69,359,360,363,366,369,372,375,378],{"class":71,"line":72},[69,361,362],{"class":75},"docker",[69,364,365],{"class":79}," create",[69,367,368],{"class":103}," -v",[69,370,371],{"class":79}," \u002Fsrv\u002Fghost\u002Fhadb.me:\u002Fvar\u002Flib\u002Fghost\u002Fcontent",[69,373,374],{"class":103}," --name",[69,376,377],{"class":79}," ghost-hadb-me-data",[69,379,380],{"class":79}," ubuntu:16.04\n",[56,382,384],{"id":383},"启动-docker","启动 docker",[60,386,388],{"className":62,"code":387,"language":64,"meta":65,"style":65},"sudo docker run --detach \\\n    --name ghost-hadb-me \\\n    --env url=https:\u002F\u002Fhadb.me\u002F \\\n    --publish 12368:2368 \\\n    --volumes-from ghost-hadb-me-data \\\n    --tty \\\n    ghost:latest\n",[45,389,390,406,416,426,436,445,452],{"__ignoreMap":65},[69,391,392,395,398,401,404],{"class":71,"line":72},[69,393,394],{"class":75},"sudo",[69,396,397],{"class":79}," docker",[69,399,400],{"class":79}," run",[69,402,403],{"class":103}," --detach",[69,405,91],{"class":90},[69,407,408,411,414],{"class":71,"line":94},[69,409,410],{"class":103},"    --name",[69,412,413],{"class":79}," ghost-hadb-me",[69,415,91],{"class":90},[69,417,418,421,424],{"class":71,"line":123},[69,419,420],{"class":103},"    --env",[69,422,423],{"class":79}," url=https:\u002F\u002Fhadb.me\u002F",[69,425,91],{"class":90},[69,427,428,431,434],{"class":71,"line":180},[69,429,430],{"class":103},"    --publish",[69,432,433],{"class":79}," 12368:2368",[69,435,91],{"class":90},[69,437,438,441,443],{"class":71,"line":191},[69,439,440],{"class":103},"    --volumes-from",[69,442,377],{"class":79},[69,444,91],{"class":90},[69,446,447,450],{"class":71,"line":203},[69,448,449],{"class":103},"    --tty",[69,451,91],{"class":90},[69,453,454],{"class":71,"line":214},[69,455,456],{"class":79},"    ghost:latest\n",[27,458,459],{},"几行命令，Done！就可以开始愉快的写博客啦！哈哈哈哈哈！😃",[461,462,463],"style",{},"html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .stzsN, html code.shiki .stzsN{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":65,"searchDepth":94,"depth":94,"links":465},[466,467,468,469],{"id":58,"depth":123,"text":58},{"id":133,"depth":123,"text":134},{"id":352,"depth":123,"text":352},{"id":383,"depth":123,"text":384},null,"jpg","2017-10-10",false,"md",{},true,"\u002Fposts\u002F2017\u002Fusing-ghost",{"text":479,"minutes":480,"time":481,"words":482},"4 min read",3.1,186000,620,{"title":22,"description":29},{"loc":477},"posts\u002F2017\u002F20171010.using-ghost",[487,488,489],"日记","博客","Ghost","aQh0LmH4L7dkjrMd97oz4c-PPl_DvBo7RQ3snUK00OM",[492,498],{"title":493,"path":494,"stem":495,"date":496,"description":497,"children":-1},"家里进小偷了","\u002Fposts\u002F2017\u002Fthief-came-into-my-house","posts\u002F2017\u002F20171013.thief-came-into-my-house","2017-10-13","早上出门前老婆发现厨房靠外的窗纱被刀划开一个大口子，我去看了下，发现被划开一个 L 型的口子，人刚好可以穿过，再看窗台，发现有脚印，突然意识到应该是小偷光顾过了。",{"title":499,"path":500,"stem":501,"date":502,"description":503,"children":-1},"日记 - 20170916","\u002Fposts\u002F2017\u002Fdiary-20170916","posts\u002F2017\u002F20170916.diary-20170916","2017-09-16","肖勖今天开始因为各种原因不来了，想到这样一句话：",1777579146570]