網站,誕生在樹梅派
![網站,誕生在樹梅派](/content/images/size/w2000/2022/08/S__27262980.jpg)
本站作為一個有技術分享的網站,首先當然要介紹一下這個網站是怎麼搭建起來的。這篇文章會分別介紹,這個部落格網站的主體、樹梅派上的環境設定以及如何買域名跟配置公網連接。
開源的部落格 Ghost
其實要架設部落格網站目前還蠻多選擇的,例如像是:WordPress、Hexo、Hugo等......
那其實我在找的是有文章管理後台可以讓我很方便的新增文章,所以像是Hexo、Hugo這兩套是屬於撰寫Markdown檔案再生成靜態站點的我就暫時不考慮。
接著是WordPress,筆者在工作上深受PHP其害,那剛好WordPress是以PHP做開發,我就直接不考慮。
介面美觀易用
向下面的截圖一樣,Ghost有很友善的後台,可以編輯管理文章,也提供了所見即得編輯器,還能換主題跟及時預覽網站更改後的樣子,非常方便。
![](https://weii.dev/content/images/2022/08/-------2022-08-03-122352-1.png)
![](https://weii.dev/content/images/2022/08/-------2022-08-03-122428.png)
![](https://weii.dev/content/images/2022/08/-------2022-08-03-122447.png)
![](https://weii.dev/content/images/2022/08/-------2022-08-03-122511.png)
架構簡單具有擴充性
以下是節錄自官方文件的內容
1. 強大的核心 JSON API
2. 一個漂亮的管理客戶端應用程序
3. 一個簡單、強大的前端主題層
這三個區域協同工作以使每個 Ghost 站點都能順利運行,但由於它們是分離的,因此有很大的定製空間。
此外預設使用 SQLite 這個內嵌資料庫,以及本地資料夾來存放資源檔 (圖片),不需要安裝很多依賴套件就能用官方提供的 Docker 鏡像做部屬。
那當然支援 MySQL、AWS S3 來存網站的資料,在未來萬一網站內容變多流量變大,都可以轉換成雲端的解決方案。
![](https://weii.dev/content/images/2022/08/image.png)
購買域名
我是在 GoDaddy 買的域名,大家可以自己上去買自己想要的,可以信用卡線上付款,很方便。
![](https://weii.dev/content/images/2022/08/image-4.png)
設定公網存取
到佛心公司 Cloudflare 註冊帳號後,進入管理後台,新增一個網站。
![](https://weii.dev/content/images/2022/08/image-5.png)
接著到 DNS 選單,記住這兩個 DNS 伺服器位置,並去 GoDaddy 上設定好自訂名稱伺服器,這個步驟需要等雲廠商同步資料,所以可能要等一陣子。
![](https://weii.dev/content/images/2022/08/image-6.png)
![](https://weii.dev/content/images/2022/08/image-7.png)
![](https://weii.dev/content/images/2022/08/image-8.png)
接著回 Cloudflare 進入 ZeroTrust 服務
![](https://weii.dev/content/images/2022/08/image-9.png)
進入 Access/Tunnels ,選擇 Create a Tunnel
![](https://weii.dev/content/images/2022/08/image-10.png)
建立好後,進入設定頁,紅色塗掉的 Token 留好,之後會用到
![](https://weii.dev/content/images/2022/08/image-11.png)
部屬 Ghost
準備讓樹梅派開機
大家可以到這個網站去下載 Raspberry Pi Imager 這個軟體,他可以把樹梅派 OS 燒錄到 SD 卡上,大家依照自己買的樹梅派版本去選擇就好,像我是選擇 Raspberry Pi OS (64-bit) 這個版本。
![](https://weii.dev/content/images/2022/08/image-2.png)
燒錄完成後把 SD 卡插入你的樹梅派,就能開機進 OS 了,第一次進入先把系統初始化的程序走完,然後要記得設定好 WiFi 連線記好 IP,並開啟 SSH 連線如下圖:
![](https://weii.dev/content/images/2022/08/0B2E0020-9F00-4633-8BF3-0AD407CA3699.jpg)
安裝 Docker
前一步做好系統設定後我們透過 SSH 連進我們的樹梅派然後先記得做下面的指令,更新系統
sudo apt update
sudo apt upgrade -y
接著執行以下指令安裝 Docker
curl -fsSL https://get.docker.com | sh
設定 Docker Log Rotate,新增以下內容的檔案,並放置到 /etc/docker/daemon.json 下
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
然後重啟 Docker
sudo systemctl restart docker
設定不需要 sudo 即可操作 Docker 指令
sudo usermod -aG docker $USER
完成後登出後再重新登入樹梅派,然後我們執行以下指令測試一下 Docker 有正常運作
docker container run --rm hello-world
看到這個畫面就是安裝成功了
![](https://weii.dev/content/images/2022/08/image-3.png)
P.S. 如果有遇到類似這個錯誤,可以參考這篇文章,執行以下的指令設定網卡 MTU 就可以解決。
sudo ip link set dev eth0 mtu 1400
開始安裝 Ghost
準備好下面的 docker-compose.yaml 檔案
version: "3.9"
services:
ghost:
image: ghost:5.7.0-alpine
restart: always
environment:
url: https://weii.dev # 你買的域名
volumes:
- ./ghost_content:/var/lib/ghost/content
cloudflared:
image: cloudflare/cloudflared:2022.9.0-arm64
restart: always
command:
- tunnel
- --no-autoupdate
- run
- --token=xxxxxx # 你在 Cloudflared Tunnel 上的 token
depends_on:
- ghost
接著到放有 docker-compose.yaml 檔案的目錄下執行以下指令
docker compose up -d
看到這個輸出就是成功了
![](https://weii.dev/content/images/2022/08/image-12.png)
接著在你下指令的目錄會發現有一個 ghost_content 資料夾,網站資料都在裡面,要備份的話就是打包這個資料夾。
![](https://weii.dev/content/images/2022/08/image-13.png)
接著到 Cloudflare Zero Trust 後台,一樣進入前面步驟創立的 Tunnel 設定頁,選擇 Add a public hostname
![](https://weii.dev/content/images/2022/08/image-14.png)
接著輸入以下設定,域名記得選你自己的,按 Save 後就可以連上你的網站了
![](https://weii.dev/content/images/2022/08/image-15.png)
大功告成!!!!
![](https://weii.dev/content/images/2022/08/image-16.png)
後記
其實我很早以前也有想過要自己架站,當時只知道要買域名,還要設定固定 IP 或是 DDNS 的服務,其實都蠻麻煩的。
這次是同事介紹我這個 Cloudflare Zero Trust 的 Tunnel 服務,看起來設定很簡單也很好用就這麼入坑了。