一個從Zima Board誕生的網站
這個網站怎麼來的
這是一個分享技術、開發踩坑與充滿奇葩語錄的網站
當然得介紹這個網站是怎麼架設起來的!
本篇介紹硬體、Debain環境架設(原廠)、域名購買踩坑等等。
原本想自己架,想想還是算了,功能太多會過勞死~哈
網站框架使用免費開源的部落格-Ghost
Ghost提供不同版型的Theme,不用煩惱怎麼調整UI或者樣式
挑一個喜歡的直接套上去!!
而且後臺支援非常多的自訂功能與網頁排版,很足夠一般的使用者來使用!!
如果覺得樣式不夠,也可以使用HTML,手刻排版,哈哈
作者也沒什麼時間重寫...懶人模式開啟!
整體架構請查看官方文件介紹
架構版本
Zima Board 832
系統OS: Debian GNU/Linux 11 (bullseye),原廠自帶
Ghost: 5.45.1-alpine
Docker: 20.10.12, build e91ed57
1.準備硬體
首先當然得購買Zima Board這塊伺服器用的開發版,這個有三個版本,建議買記憶體RAM 8G的版本,和樹梅派一樣,選RAM最大就對了,不然真的不夠用,哈哈
價格含海運大概6千5左右台幣,等了大概2周
- 這邊有被坑到! 快遞有加收海關關稅,還要多付2百多給宅急便
- 然後只能刷VISA和MasterCard,我的JCB卡直接88...*
基本上不買配件,只提供一塊板子和電源供應器(原生支援PCIE x4很猛!)
2.啟動系統
因為zima board自帶casaos,所以插電後,只要在chrome輸入http://casaos.local 就可以遠端登入頁面,很方便!
預設帳密都是 casaos,包含SSH也是!
也可以遠端登入Terminal,因為自帶SSH,看個人喜好,作者直接使用SSH登入
Windows SSH指令:
ssh [email protected]
3.購買網域域名-Godaddy
直接搜尋買你想要的網域,一年大約6百多左右!!
如果沒什麼需求,只要買網域就好! 架站功能都不需要啟動或購買!
4.代理SSL公網-Cloudflare
因為SSL需要固定IP,要跟中華電信設定有的沒的,直接掛代理,而且是免費的~~
4-1. 網站->新增網站
e.g. GoDaddy買得網域(不用打https)
4-2 點擊剛剛新增的網站,可以看到DNS還沒變更,先到GoDaddy設定
基本上GoDaddy提供的DNC是不能使用的,要改成Cloudflare提供的名稱
4-3 在GoDaddy的DNS先將名稱伺服器改成Cloudflare提供的名稱伺服器
4-4 Cloudflare 通道開通
Zero Trust-> Access -> Tunnels 創建新的turnnel
這段docker的token很重要!!! 等等的docker file會用到
4.5 Cloudflare DNS 先刪除
執行docker compose up前,先把所有DNS全部移除!
很重要! 不然DNS網域會衝突!!
4-6 Cloudflare 設定Public Hostname
-
這邊要注意,Service是本地的Ghost Service IP,預設:ghost:2368
(如果有改,請查官方文件XD) -
Domain就輸入GoDaddy買的網域即可
-
到這邊可以看到設定完Hostname Page後,DNS會自動註冊
4.7 Cloudflare DNS 踩坑
如果DNS沒有自動註冊或不小心弄丟
回去步驟: 4-6 Cloudflare 設定Public Hostname
先把舊的HostName砍掉,重新新增即可!!!!
5. 萬事俱備-只欠設定系統
以下都在Zima Board的Terminal輸入(作者用Windows的SSH)
當然還是建議升級一下包
#更新包包包
sudo apt update
sudo apt upgrade -y
Zima Board自帶Docker,但並不完全(缺少docker-compose-plugin)
這邊建議直接在Terminal安裝,防止之後忘記沒裝踩坑
#安裝docker-compose-plugin
sudo apt-get install docker-compose-plugin
5.1 Docker設定
#先到目錄
cd /etc/docker
#看一下有什麼鬼
ls
#創建一個檔案
nano daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
貼上後直接ctrl+O保存,再ctrl+X退出,打cat daemon.json確認存檔OK
然後重啟 Docker
#重啟Docker
sudo systemctl restart docker
#檢查狀態
sudo systemctl status docker
5.2 Docker-Ghost設定
#回到根目錄,並創建docker-compose.yaml
sudo nano docker-compose.yaml
#這邊要改的有三個
1.url ->你註冊的網域
2.image ->如果怪怪的,請用最新版
3.--toke ->去Cloudflared Tunnel拿token
創建docker-compose.yaml,並貼上下列設定(官方文件)
version: "3.9"
services:
ghost:
image: ghost:5.45.1-alpine
restart: always
environment:
url: #你的URL,例如:https://ivanlu.dev
database__client: sqlite3
database__connection__filename: content/data/ghost.db
volumes:
- ./ghost_content:/var/lib/ghost/content
cloudflared:
image: cloudflare/cloudflared
restart: always
command:
- tunnel
- --no-autoupdate
- run
- --token= #你在 Cloudflared Tunnel 上的 token
depends_on:
- ghost
- 如果ghost想更新
ghost:5.45.1-alpine這段要改成新版的(連結)
- 將Cloudflared Tunnel 上的 token加進 docker-compose.yaml
#確認Cloudflare DNS OK且保存完docker-compose.yaml後,直接啟動
docker compose up -d
#再確認docker有活著
docker ps -a
基本上做完後會有docker-compose.yaml和ghost_content
如果ghost_content沒了,那你的網站也會沒了,就像破片一樣,ㄆ一ㄤˋ幾咧就沒了
因為裡面包含mysql的資料庫和各種設定!!!
Comments ()