專文 09 / 數位

託管你不能失去的服務

自建有用,當遠端是你可以 clone、備份、重建的東西——而不是第二個人格。

本譯文版本尚待母語編輯審閱。

木製工作檯上放著筆記本與修理工具,前方是一座森林環繞的高山湖泊。
科技、自然,以及理解事物的工夫。原創插畫場景。

我在碰得到的機器上跑 git。不是因為公共 forge 不道德。而是帳號頁 404 之後 git clone 仍能動,和別人的uptime書籤,是不同物件。

自建有名聲問題。被賣成生活方式,被練成第二份工作。有用的版本更窄:託管一兩個失去就無法繼續的遠端,天氣預報就放過。

基礎 · 自建表示不靠供應商帳號頁也能碰到服務

有檔案的筆電是本機。機房裡的虛擬機仍可以是自建,若你握有磁碟映像、DNS、以及測過的重建。機架供應商是依賴。應用帳號供應商是另一種、通常更緊的依賴。

從能 clone 的遠端開始

Git 是最客氣的第一個服務。協定老、資料是檔、第二份是一條指令。Forgejo(或 GitLab CE)在小 VPS 或桌下的盒子就夠。必須擁有的不是 UI,是物件庫、今年登入過的註冊商上的名稱、在不是原機上還原過的備份。

git clone --mirror git@git.example.org:you/project.git
git -C project.git fsck --full

DNS 是服務的一部分

沒有名稱的盒子是嗜好。不能轉移 DNS 的名稱是皮帶。把 zone 的第二份,哪怕是紀錄文字檔,放在主機之外。Let’s Encrypt 因 HTTP-01 搆不到正在重建的盒子而失敗時,權杖存在別處的 DNS-01,是下午與一週的差別。

郵件是陷阱

人們自建郵件因為身分依賴它,然後發現自己志願去打投遞率與黑名單。我不建議從那開始。若郵件就是鉸鏈:可經 IMAP 離開的信箱、不同供應商與不同註冊商上的第二信箱、紙本恢復碼。

電力、磁碟、無聊的一週

家用伺服器若也是唯一 restic 倉庫,那是一個物件。把倉庫放到另一台,最好異地。對 UPS 說話的 NUT,加上定時 restic check,比再一個容器更主權。

dig +short NS git.example.org
dig +short SOA git.example.org
專家 · 從冷儲存重建,否則你並沒有託管它

新碟。還原 git。位址變了就還原 DNS。不靠舊主機 /etc/letsencrypt 取得新憑證。從從未見過原 SSH host key 的第三台機器 git clone。若第 4 步需要只留在死盒子上的檔,ACME 就在關鍵路徑上。

我不託管什麼

搜尋引擎、地圖、多數聊天。測試不是意識形態:若這週二消失,週三我能否用 clone 與書面還原繼續工作?

restic snapshots
restic check --read-data-subset=5%

這篇文章保留與英文版相同的標題層級、指令與摺疊段落,讓深度篩選與程式碼核對在翻譯裡仍然成立。實作細節以英文原稿的命令為準。

實務上,請把命令、摺疊段落與英文原稿對齊;翻譯負責說明,證據仍以可執行的指令為準。若某一層對你來說太深,先停在中階,把演練做完再往下。

下一篇專文 回到開頭 ↑