Bluesky (藍天) 是一個去中心化的分散式社群,與 Mastodon (長毛象) 相似,只不過 Bluesky 自行開發的 AT Protocol 協定,目前無法與 Mastodon 的 ActivityPub 互通。同樣是可自行架設的社群平台,比較特別的是 Bluesky 並不像 Mastodon 一樣包含了前端網頁,它只有提供 API 通訊介面。
自行架設的 Bluesky 被稱為個人資料伺服器 (Personal Data Server, PDS),使用者可以在 bsky.app 網頁版或 iOS、Android APP 的登入註冊介面中自由選擇帳號的託管服務供應商,來將帳號存放到其他伺服器。
Bluesky 伺服器規格建議
根據 Bluesky 的開源儲存庫說明,我們可以考慮租用 Vultr 或 Digital Ocean 的 VPS 伺服器來架設 Bluesky。官方也提供一套建議的伺服器規格供大家參考:
名稱 | 建議規格 |
---|---|
作業系統 | Ubuntu 22.04 |
記憶體 (RAM) | 1 GB |
CPU 核心 | 1 |
CPU 架構 | amd64, arm64 |
儲存空間 | 20 GB SSD |
預估可乘載使用者數量 | 約 20 人 |
付費租用 Vultr 伺服器
由於我比較熟悉 Vultr,因此本文將直接示範在 Vultr 上架設 Bluesky 的完整流程,包括開通伺服器、網址 DNS 設定與驗證和實際登入平台。我選擇的是共用 CPU 的 Vultr 方案,1GB RAM、1 vCPU、25GB SSD 硬碟、2TB 月流量,使用 Ubuntu 22.04 作業系統且不使用任何其他服務,月租約為 6 美金。
接下來我們將開始說明租用伺服器的流程:
- 前往 Vultr 註冊或登入帳號,並進入 Products > Compute,點擊 Deploy Server。
- 選擇 Cloud Compute - Share CPU 方案。
- 選擇 Tokyo 伺服器位置 (連線延遲低、速度快)。
- 選擇 Ubuntu 22.04 LTS x64 作業系統。
- 最後輸入要作為 Bluesky 伺服器的網域名稱來作為 Hostname,你需要自備一個網址,推薦在穩定安全的 Cloudflare 註冊,.com 後綴的網址每年僅約 300 新台幣。這邊以 bs.tedliou.com 作為範例。
- 等待伺服器建立完成,即可點擊來進入控制台。
- 接下來我們要登入伺服器的終端機來開始架設,首先點擊密碼旁邊的按鈕複製 root 密碼,再點擊右上方的按鈕進入終端機。
- 首先輸入 root 來以最高權限登入。
- 再展開左側的工具,選擇 Clipboard 並貼上剛才複製的 root 密碼,再點擊 Paste 貼上密碼後 Enter 登入。下一步開始架設 Bluesky。
開始架設 Bluesky 伺服器
- 輸入以下指令來下載 Bluesky 的伺服器安裝腳本。
wget https://raw.githubusercontent.com/bluesky-social/pds/main/installer.sh
- 下載到腳本後,輸入以下指令啟動安裝程式。
sudo bash installer.sh
- 一開始安裝程式會要你先設定好網址的兩個 DNS A 紀錄,在這邊請先記一下待會要設定的 DNS 資料,也先在安裝程式內輸入網址,但先不要點擊 Enter 來完成,我們得先來設定網址。以我的 bs.tedliou.com 為例,需要新增以下 DNS A 紀錄:
名稱 | 類型 | 紀錄 |
---|---|---|
bs.tedliou.com | A | 45.76.53.44 |
*.bs.tedliou.com | A | 45.76.53.44 |
- 前往網域名稱註冊商的設定介面來新增 DNS 紀錄。由於我的網址是在 Cloudflare 買的,這邊就以 Cloudflare 的設定方式為例。首先新增第一筆 A 紀錄,類型選擇 A、名稱填入 bs、IPv4 位址填入 45.76.53.44 (對應到上一步紀下的 DNS 資料),不開啟 Proxy,最後點擊儲存。
- 另一筆 A 紀錄也同理,也不開啟 Proxy,輸入後點擊儲存。Cloudflare 的 DNS 紀錄更新很快,因此可以直接繼續操作。其他網域名稱註冊商則可能需要等待 5 ~ 20 分鐘不等。
- 回到 Vultr 終端機繼續操作,現在可以點擊 Enter 來完成剛才的網址輸入,並輸入一個用於管理員的電子郵件名稱。
- 最後輸入 y 來建立伺服器的第 1 個帳號,分別需輸入電子郵件與 Handle。Handle 就是我們帳號的名稱,對應到我們剛才新增的 DNS 紀錄。以我的 bs.tedliou.com 為例,在這個伺服器上的會員的 Handle 格式都會是 xxxx.bs.tedliou.com,因此在這邊我們可以輸入 tedliou.bs.tedliou.com (很彆扭,我知道,但我爽~)。
- 建立第 1 個帳號後,伺服器也就架設好了,安裝程式最終會將第 1 支帳號的 Handle 和密碼印出來,請手動抄寫下來。下一步我們將實際登入到我們自架的 Bluesky 伺服器中。
登入到自架 Bluesky 伺服器
- 前往 bsky.app,點擊左上角的登入。
- 點擊託管服務提供商,我們將它切換到自架的伺服器。
- 切換到自訂,輸入我們的伺服器網址,例如:bs.tedliou.com,並點擊完成。
- 輸入帳號名稱 (Handle) 和密碼 (前面抄寫的),點擊下一步完成登入。
- 最後會跳出電子郵件驗證,這可以之後再來做,先點擊暫時不需要來跳過,我們得先來處理個問題。
解決 Invalid Handle 無效的帳號代碼問題
- 看一下帳號的個人檔案頁面,可以發現出現了 Invalid Handle 錯誤。這個問題主要是我們的網址還沒經過 TXT 紀錄的驗證,接下來就要來解決它。
- 進入設定 > 變更帳號代碼。
- 點擊我擁有自己的網域。
- 再次輸入第 1 支帳號的 Handle,並記錄下方顯示的 DNS TXT 紀錄。(如果你想要直接使用自己的網域,例如:bs.tedliou.com,可以直接跳到這篇文章來操作)
- 再次前往網域名稱註冊商的設定介面,新增一筆 DNS 紀錄,最後點擊儲存。同樣的,除了 Cloudflare 以外的其他網域名稱註冊商則可能需要等待 5 ~ 20 分鐘不等才能繼續操作。
名稱 | 類型 | 紀錄 |
---|---|---|
_atproto | TXT | did=did:plc:t4bw62rm3jltypqqech55er4 |
- 回到 Bluesky,點擊驗證 DNS 紀錄。
- 現在應顯示「網域已驗證!」,最後點擊更新至 tedliou.bs.tedliou.com 完成所有設定。
- 再次檢查個人檔案頁面,現在應可以正常顯示我們的帳號名稱 (Handle)。
Bluesky PDS 伺服器架設心得
Bluesky 能讓有需求的使用者自己架設伺服器的作法真的很棒,資料要怎麼存放可以自行決定,且整個平台的程式都是開源的,有能力的人也可以自己去魔改它。目前實際架設過 Bluesky PDS 伺服器的感想是「非常簡單」,只要你有些許必要的 Linux、DNS 和網域的知識,還有一張能刷的信用卡或簽帳卡,理應能輕易地架設完成。官方提供的安裝程式已經包辦了大多通常會要自行設定的工作,我們只要按部就班的操作,就可以很快地搞定一切。
然而,其實我早已在官方伺服器申請到帳號,大家可以來追蹤:@tedliou.com,所以在這篇文章中架設的 bs.tedliou.com 將會馬上消失,所以不用擔心我的 IP 和 root 帳密洩漏的問題。另外,這篇文章裡面所寫的網址、DNS A 和 TXT 紀錄都是示範用的,跟你的通常會不一樣,別直接照抄!