因為工作的關係讓我覺得如果再不寫些東西真的會變笨了,近期blog弄好也開始寫文章,雖然還想加些功能跟改改版型,不過還是想先分享一下這個blog使用的平台Ghost。

過往做網站的時候很常幫客戶架設Wordpress,免費開源跟主機好選擇,不管是做官網或購物網站都很方便,如果要特殊一點的需求也可以搭配海量的Plugin拼出來,缺點就是會變得很臃腫而已,也是因為這個原因,這次在架設blog的時候我打從一開始就沒打算用Wordpress,如果只是寫個blog,還是想使用簡單俐落的方式,畢竟Wordpress真的太腫了,再加上我原本就一直想用看看Ghost。

以下擷取 Wikipedia

Ghost是一款個人部落格系統,它使用Node.js語言和MySQL資料庫開發,同時支援MySQL、MariaDB、SQLite和PostgreSQL。使用者可以在支援Node.js的伺服器上使用自己的部落格。

如上面所說,這次部署上跟之前使用Wordpress最大的差異點就在語言上,使用PHP的Wordpress在主機選擇上很多,但是要跑Node.js就比較麻煩一點,當然各種付費Cloud跟VPS很方便,不過在無預算的情況下我只能想辦法找“完全免費“的服務,在最開始試了digitalpress這個免費的Ghost主機服務,有1GB的空間還可以掛Domain算是相當佛心了,可惜要付費才能使用自己的theme,對於想改改code的人來說還是有點不方便,最後我還是選擇了相對麻煩一點的Heroku。

Cloud Application Platform | Heroku
Heroku is a platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.

身為老牌子的Heroku,以前我常用來跑些Bot跟Crawler這類東西。免費又簡單易用,部署上可以連結Github或者使用Heroku CLI,在當時或現在都算是好上手的雲端平台,對於玩些小應用的人來說相當方便,可以省去很多時間。

那就來說說這次使用免費Heroku首先要解決的兩個問題

  1. Dyno免費帳戶每個月只有450個小時
    Dyno就像一個執行個體,執行Ghost需要一個Dyno來跑Web Server,如果要讓網站No future每天24小時跑,那450小時一個月是肯定不夠的,要解法的唯一辦法就只能打破“完全免費”不綁卡的概念。在綁卡後會再額外增加免費的550小時,這樣算下來一個月有免費的1000小時可以用,在只有一個Dyno的情況下能夠保持一個月的運作。

  2. Dyno在30分鐘內沒有任何流量系統會自動進入睡眠狀態
    對於一個沒流量的blog來說,這件事會造成這個網站處於半夢半醒的狀況,就算有免費的1000小時可用,但是30分鐘內沒人來就會睡死,當有人來以後又要等20秒左右才叫的醒,相信一般人是不會等的。
UptimeRobot | Free Website Monitoring
Get up to 50 website, port or heartbeat monitors for free. When something happens, we’ll notify you via email, SMS, Telegram, Slack or many more ways.

這時候可以用Uptime Robot,既免費又有App,使用Https可以設定每25分鐘確認一下,除了讓網站保持清醒外還可以監控網站。

當解決上面兩件事之後就可以開始準備安裝Ghost了,這時我們還需要資料庫跟儲存照片的空間,還有註冊會員寄送認證信的需求。

這邊強烈推薦使用 one-click 一鍵安裝,免除所有設定與煩惱

SNathJr/ghost-on-heroku
One-button Heroku deploy for the Ghost 3.2.0 blogging platform. - SNathJr/ghost-on-heroku

雖然這些Add-ons是免費的,但是安裝還是需要綁卡。在安裝完JawsDB MySQL、Cloudinary、Mailgun後會直接設定好,接下來就可以開始使用Ghost了,不過因為Mailgun已經不是完全免費的關係,收件者也必須先通過認證才能收到信,所以如果要新增一個作者,我必須先寄Mailgun認證信後才能用Ghost Intive,這部分真的就比較麻煩一點,但是目前懶得用其他方式,就先這樣吧。

最後要說Heroku是對於現在來說是免費方便的方案,如果有一天有預算跟越來越多人看這個blog的話,那我還是會搬到VPS去。

最新更新,JawsDB MySQL免費只有5mb一下就爆了,目前轉到Always Free Oracle Cloud Free Tier。