自行架設 部落格 - Ghost 開源

自行架設 部落格 - Ghost 開源

為何不用Medium ?

原本文章 都是寫在 medium 但總結以下幾點,實在感到受不了所以打算遷移到Ghost上。

  1. 搜尋極度不友好 (左邊Medium, 右邊Ghost)
  1. 不好自行設定SEO
  • Medium 預設是綁死在上面。
  • 但ghost 提供sitemap.xml 生成,可以用於Google Search ,可以透過 PageSpeed Insights 可以發現到對SEO十分友好。
  1. 完善的後台介面
    Ghost 提供了一個很棒的後台還有其搜尋功能,也能快速地切換前台。


官方方案

當然 Ghost 也有提供官方版本 ,若無維運經驗可以直接花點小錢(左邊月繳/右邊年繳)

自行架設方案

GitHub - KeplerJhih/ghost-blog: 一鍵建立 ghost-blog
一鍵建立 ghost-blog. Contribute to KeplerJhih/ghost-blog development by creating an account on GitHub.

這邊有寫一個部署範本可以參考, 而部署方式是透過Docker 方式

以下請先準備

  1. 一台EC2 (GCP,AWS,Azure...)
  2. Cloudflare (HTTPS,隱藏源站IP,基礎CDN) - 非必要
  3. SMTP (AWS SES , MaiGun(官方推薦)) - 非必要

  1. EC2

如何創建一個新的EC2方式 不額外介紹可以隨意Google應該一大堆,而初期機器性能不用太高 可以參考以下配置

AWS EC2
Type t4g.small ( 2cpu , 2ram)
Disk 10 GB(普通硬碟無SSD)

部署完後 Ram約略常駐在 1G左右

創建好 進入機器後 可以直接透過以下指令

sudo su
mkdir -p /data/apps
cd /data/apps
git clone https://github.com/KeplerJhih/ghost-blog.git
cd /data/apps/ghost-blog

clone 專案 若有自己的習慣可以不用參考這個步驟

接下來 修改內容

接下來要安裝Docker / Docker-compose / 和設定一些在服務器的工作目錄

chmod +x ./server/init.sh
./server/init.sh

設定配置檔案
請注意有一個參數URL是訪問部落格的外部網址

  1. 需要帶入 http(s) 看當前環境
  2. 網址後面帶域名或者機器ip
    若有特殊癖好 自己想要的mysql 密碼 也可以自行更改
cp env.example .env
vi .env

運行Docker

docker-compose up -d
docker ps


為了部落

接下來只要訪問 url/ghost 即可完成部落格的創建

恭喜你 已經成功部署了一個屬於你自己的部落格

關於 Cloudflare 配置可以參考這篇,下方的Cloudflare配置。

AWS Route53 遷出DNS 到Cloudflare
雖然AWS 很方便無論在購買機器或者購買域名都有很完善的服務,但缺點是這些看不到的隱藏成本是不太會去在意的,但身為秉持客家精神,就整活考慮把域名DNS託管到Cloudflare上面。