我在碰得到的機器上跑 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%
這篇文章保留與英文版相同的標題層級、指令與摺疊段落,讓深度篩選與程式碼核對在翻譯裡仍然成立。實作細節以英文原稿的命令為準。
實務上,請把命令、摺疊段落與英文原稿對齊;翻譯負責說明,證據仍以可執行的指令為準。若某一層對你來說太深,先停在中階,把演練做完再往下。




