部署到 DigitalOcean
在 DigitalOcean Droplet 或 App Platform 上部署 nostrfy — 逐步說明,含 systemd、TLS 與生產就緒的設定。
兩種選擇:Droplet(VM,最簡單)或 App Platform (容器)。
選項 1:Droplet(推薦)
- 建立 Droplet:Ubuntu 24.04 LTS,任意大小(1 GB RAM 起步足夠)。位於 離使用者近的區域的 Droplet 可降低延遲。
- SSH 登入並依照通用 VPS 指南操作:
sh
ssh root@<droplet-ip>
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
sudo mkdir -p /etc/nostrfy
sudo curl -fsSL -o /etc/nostrfy/nostrfy.toml \
https://raw.githubusercontent.com/iqbqioza/nostrfy/main/deploy/nostrfy.toml
sudo nano /etc/nostrfy/nostrfy.toml # 設定 name、public_url、private_key
sudo curl -fsSL -o /etc/systemd/system/nostrfy.service \
https://raw.githubusercontent.com/iqbqioza/nostrfy/main/deploy/nostrfy.service
sudo systemctl daemon-reload
sudo systemctl enable --now nostrfy- 開放連接埠:在 Droplet 防火牆中(推薦使用 Digital Ocean Cloud Firewall):允許入站 TCP
8080(如果加入 TLS 則還有443)。 - 驗證:
sh
curl http://<droplet-ip>:8080/health- 加入 TLS(
wss://)用 certbot + nginx,或 Digital Ocean 的託管負載平衡器加憑證 — 然後設定relay.public_url = "wss://relay.example.com"並重新啟動。
選項 2:App Platform(容器)
App Platform 從倉庫的 Dockerfile 建置(它會下載預編譯的
發行二進位檔):
- 連接你的 GitHub 倉庫並從中建立應用。
- 連接埠:將 HTTP 連接埠設為
8080(中繼在那裡監聽)。 - 持久磁碟:在
/data掛載磁碟區(LMDB 資料在那裡 — 沒有它,每次部署都會遺失資料)。 - 環境:烘焙到映像中的
deploy/nostrfy.container.toml可以透過 在/etc/nostrfy/nostrfy.toml掛載你自己的設定來替換(建立一個複製它的 分支,或在你自己的倉庫中使用 DockerfileCOPY)。 - TLS:App Platform 會為應用網域自動提供
https://— 相應地設定relay.public_url。
兩種選項通用
- 更新:重新執行
install.sh+systemctl restart nostrfy(Droplet),或 推送到已連接的倉庫(App Platform)。 - 所有設定都記錄在 設定參考中。