速架設指南
HakoSpace 是自架的語音、視訊與訊息平台,讓你完全掌控伺服器、資料與隱私。 (產品名 Hako 取自日文「箱(はこ)」—— 一個只屬於你的盒子。)
本指南帶你從零完成到第一位成員加入的所有必要步驟,並附上一份安全推薦清單。讀者對象是想盡快架起一座 HakoSpace Server 的自架者。
1. 你會得到什麼
Section titled “1. 你會得到什麼”照本指南做完後,你會得到:
- 一座可從 internet 訪問、走 HTTPS 的 HakoSpace Server
- 一個屬於你的 owner 帳號
- 至少一位額外的 admin(§6.4 推薦)
- 啟用的禁用字過濾與註冊政策
- 已知的備份位置與操作方式
整體流程:
- 取得 server(Docker 映像檔或單一執行檔,兩者擇一)
- 準備域名與 TLS
- 啟動 server
- 建立 owner 帳號與基本設定
- 套用安全推薦清單
- 邀請第一位成員
每個步驟對應後續一章。本指南只寫必要與安全推薦的部分,所有「進階設定」會指向《管理員手冊》對應章節。
2. 開始之前
Section titled “2. 開始之前”2.1 系統需求
Section titled “2.1 系統需求”| 項目 | 值 |
|---|---|
| 作業系統 | Linux 或 Windows(單一執行檔是 amd64;走 Docker 另外支援 ARM64) |
| RAM | 至少 512 MB |
| 磁碟 | 視使用量而定(訊息與上傳檔案存在 data/ 目錄;走 Docker 則在你建立的儲存空間裡) |
| 域名 | 選用,僅於設定 TLS 時需要 |
HakoSpace Server 提供 Linux amd64 與 Windows amd64 兩種執行檔。另外也提供 Docker 映像檔,同時支援 amd64 與 ARM64 —— 樹莓派、ARM 架構的雲端主機、Apple 晶片的 Mac 都跑得起來,下載時會自動挑對應你機器的版本。同一台機器只要符合上表即可,雲端 VPS 與家用電腦皆可。
2.2 你需要先準備好的東西
Section titled “2.2 你需要先準備好的東西”開工前先確認以下項目齊備:
- 一台符合 §2.1 的伺服器
- 打算走 Docker(§4.1)的話:那台機器上要先裝好 Docker
- 防火牆規則:開放 8080/TCP(HTTP)與 8443/TCP(HTTPS)對外
- 一個 email 信箱:之後若要啟用 email 驗證註冊政策(§6.1)會用到
- 一個域名:強烈推薦準備好,§3.2 會說明取得方式
防火牆若沒有先放行 8080 與 8443 兩個埠,外部使用者無法連到你的 server,且 §3.3 ACME 自動憑證的驗證流程也會失敗。
3. 域名與 TLS
Section titled “3. 域名與 TLS”3.1 為何需要域名
Section titled “3.1 為何需要域名”HakoSpace Server 第一次啟動時會檢查 TLS 設定。若你沒指定任何域名也沒提供手動憑證,server 會自動產生一張自簽憑證讓自己跑得起來。自簽憑證可以正常加密連線。瀏覽器會出現警告畫面,要求使用者手動點選「進階」並信任此憑證才能進入。
如果你只是在本機自己試玩,自簽憑證夠用。一旦你打算邀請朋友、社群成員或公開使用,就需要:
- 一個可以解析到你 server 公開 IP 的域名
- 由可信 CA(例如 Let’s Encrypt)簽發的證書
HakoSpace Server 內建 ACME 客戶端,會在第一次啟動時自動向 Let’s Encrypt 申請憑證,到期前也會自動續簽。你不需要手動跑任何憑證簽發指令。
3.2 取得域名的方式
Section titled “3.2 取得域名的方式”取得域名有兩種主要選項:
到任意域名註冊商購買一個域名(GoDaddy、Namecheap、Cloudflare Registrar、Gandi 任選),然後在註冊商的 DNS 設定中加一筆 A record,把域名指向你 server 的公開 IP。
適用情境:你的 server 有固定公開 IP(雲端 VPS 通常都是固定 IP)。
動態 DNS(DDNS)
Section titled “動態 DNS(DDNS)”家用網路的公開 IP 通常會隨 ISP 重新撥接而變動。直接用固定 A record 指向會經常失效。DDNS 服務的做法是:在你 server 或路由器上跑一個小程式,每當 IP 變動就自動更新 DNS A record,讓域名永遠對應目前的 IP。
DDNS 又分兩類:
- 路由器內建 DDNS:許多家用路由器(華碩 ASUS、TP-Link、Netgear 等)內建 DDNS 服務。例如華碩路由器提供
xxx.asuscomm.com形式的免費網域,在路由器後台啟用即可,不需在 server 上安裝任何客戶端程式。 - 第三方 DDNS 服務:no-ip 提供
xxx.ddns.net格式、DuckDNS 提供xxx.duckdns.org格式等。註冊免費帳號後在 server 或路由器執行對應的更新客戶端。
CGNAT 警示:若你的 ISP 採用 CGNAT(多人共用同一個對外公開 IP),即使設好 DDNS,外部仍無法主動連入你的 server。遇到這種情況,請與 ISP 申請固定 IP,或改用雲端 VPS。
3.3 設定 TLS(HTTPS)
Section titled “3.3 設定 TLS(HTTPS)”HakoSpace Server 支援四種 TLS 設定方式,啟動時依以下優先序自動判斷:
| 模式 | 觸發條件 | 結果 |
|---|---|---|
| ACME 自動證書(推薦) | 在 data/.env 設 ACME_DOMAIN=your.domain.com |
server 啟動時向 Let’s Encrypt 自動申請憑證並自動續簽,憑證快取於 data/certs/ |
| 手動證書 | TLS_CERT=/path 與 TLS_KEY=/path 兩者皆設 |
server 使用你提供的證書檔案 |
| 純 HTTP | 設 TLS_AUTO=false |
server 不啟用 TLS,僅限內網或測試環境使用 |
| 自簽證書 | 上述都未設(預設) | server 自動產生自簽憑證,瀏覽器會警告 |
絕大多數自架者用 ACME 模式即可。操作步驟(ACME,正式營運首選):
- 確認你的域名(含 DDNS 名稱)已可解析到 server 的公開 IP。可以從另一台機器執行
ping your.domain.com,看回應的 IP 是否符合預期。 - 確認 server 從 internet 可連入。最直接的做法:在路由器設好 NAT port-forward,把對外 443 → server 的 8443(必要,提供 HTTPS 服務與 TLS-ALPN-01 憑證驗證)。建議同時設定對外 80 → server 的 8080(讓 ACME HTTP-01 驗證也可走,提高首次取得憑證的成功率)。雲端 VPS 若已直接以公開 IP 跑 server,只需在防火牆放行 8080 與 8443 即可,無需 port-forward。
- 編輯
data/.env,加入一行ACME_DOMAIN=your.domain.com。 - 啟動 server(步驟見 §4)。
- 第一次啟動時 server 會在 log 中顯示向 Let’s Encrypt 取得憑證的訊息;之後憑證會在到期前自動續簽。
如果你還沒第一次啟動過,可以先跳到 §4 跑一次取得 data/.env,再回來編輯這個檔案。
4. 取得並啟動 HakoSpace Server
Section titled “4. 取得並啟動 HakoSpace Server”有兩條路可以把 server 跑起來,選一條走完就好:
- 用 Docker(§4.1)—— 拿一個現成的設定檔、跑一行指令。步驟最少、之後更新也最單純,機器上要先有 Docker。
- 用單一執行檔(§4.2 起)—— 下載一個檔案直接執行,機器上不必安裝 Docker,但開機自動啟動要自己設一次(§4.5)。
兩條路做出來的伺服器功能完全相同,後面 §5 之後的章節兩邊都適用。
4.1 用 Docker 架設
Section titled “4.1 用 Docker 架設”開始之前:機器上要先裝好 Docker。Linux、Windows、macOS 的安裝方式請見 Docker 官方安裝說明,本指南不重複。
步驟一:取得設定檔
Section titled “步驟一:取得設定檔”從 HakoSpace-releases 取得 docker-compose.yml,放進你打算讓 server 永久運作的目錄。這個檔案已經把必要的設定都填好了,不改任何一行就能用。
步驟二:啟動
Section titled “步驟二:啟動”在放著 docker-compose.yml 的目錄執行:
docker compose up -d第一次啟動時 HakoSpace 會自動產生一組隨機的 JWT_SECRET 存進資料區,你不需要手動設定任何東西。
步驟三:確認啟動成功
Section titled “步驟三:確認啟動成功”打開瀏覽器輸入 http://localhost:8080(從別台機器連就換成這台的位址)。看到 HakoSpace 登入頁就代表成功,接著往 §5 建立 owner 帳號。
如果你用的是有畫面的容器管理介面
Section titled “如果你用的是有畫面的容器管理介面”有些系統可以用畫面建立容器,不必開終端機(例如 NAS 內建的容器管理員,或你自己裝的容器管理介面)。不論你用哪一套,畫面上要填的就是這四樣:
| 欄位 | 要填什麼 |
|---|---|
| 映像檔(Image) | ghcr.io/hakospace/hako:latest |
| 連接埠(Port) | 主機 8080 → 容器 8080 |
| 儲存空間(Volume) | 建一個名為 hako-data 的空間,掛到容器內的 /app/data |
| 環境變數(Environment) | TLS_AUTO 設為 false |
最後一項不能省。 HakoSpace 內建的 TLS 預設是開啟的,開著的時候主要服務會跑到 8443;如果你只對映了 8080,做出來的會是一個「狀態顯示正常、但網頁打不開」的 server,畫面上也不會有任何線索指出原因。要走 HTTPS 請見 §3.3。
用 Docker 跑要知道的四件事
Section titled “用 Docker 跑要知道的四件事”一、資料全部在那個儲存空間裡。 資料庫、TLS 憑證、自動產生的 JWT_SECRET 都存在 hako-data。這個空間掉了等於整座伺服器的身分掉了 —— 成員要全部重新登入,憑證也得重來。備份就是備份它,做法見 §6.5。
二、更新方式不一樣。 容器的更新是「換一份新的映像檔」,所以 app 內建的自動更新在容器裡是刻意關閉的;在管理面板的更新區按「檢查更新」,會改成顯示「由 Docker 管理」並附上指令。更新只要在同一個目錄執行:
docker compose pull && docker compose up -d資料留在儲存空間裡,不會因為重建容器而遺失。
要跑預覽版:把 docker-compose.yml 裡的 ghcr.io/hakospace/hako:latest 改成 ghcr.io/hakospace/hako:pre,一樣用上面的指令更新。:latest 是最新的穩定版;:pre 跟著最新的預覽版走,較新的穩定版發佈時也會跟上,所以不會比 :latest 舊。從 :pre 換回 :latest 之前,先確認 :latest 不比你正在跑的版本舊——新版可能已經改過資料庫,換回舊版不保證讀得懂。
三、要開的連接埠。 8080 與 8443 都是 TCP。另外,如果你之後在管理面板啟用了內建的 TURN 中繼(預設是關的),要再開 3478 的 UDP 與 TCP 兩種。
四、不要把連接埠改成 80 或 443。 容器內部不是以系統管理員身分執行,動不了 1024 以下的埠。要讓外界用 80 / 443 連進來,請在主機這一側做對映(例如把主機的 443 對到容器的 8443)。
語音要能穿越各種家用網路,關鍵在 TURN 中繼的設定 —— 做法見《管理員手冊》的進階網路與維運章節。Docker 環境下的語音設定目前仍在驗證中,等結論確定後本節會補上對應步驟。
走完 Docker 這條路的話,§4.2 到 §4.5 可以整段跳過,直接往 §5。
4.2 下載 server 執行檔
Section titled “4.2 下載 server 執行檔”server 執行檔可以從下面兩個地方下載,同一個版本在兩邊是相同的檔案,挑一個就好:
依你的作業系統挑對應的檔案:
- Linux:
server-hakospace-linux-amd64-B<版本號> - Windows:
server-hakospace-windows-amd64-B<版本號>.exe
在官網下載頁,「伺服器」區有「Linux」與「Windows」兩張卡片,卡片上寫著檔名,點一下就能下載。頁面預設提供的是最新的穩定版,一般照著下載即可;要下載其他版本,見本節最後的「下載其他版本」。
在 GitHub Releases,打開標著「Latest」的那一版(最新的穩定版),從檔案清單點對應的檔名下載;標題含「Pre-Release」的是預覽版。
下載後將檔案放在你打算讓 server 永久運作的目錄。建議把檔案重新命名為 hako(Linux)或 hako.exe(Windows)方便日後操作;本指南後續以此名稱為例。
重新命名不會影響日後的內建自動更新功能。HakoSpace 在升級時會偵測自身執行檔的實際路徑與檔名,直接覆蓋同一檔案,使用什麼名字都行。
Linux 必須先給檔案執行權限:
chmod +x hakoWindows 不需要這個步驟,但務必從 PowerShell 或命令提示字元執行 hako.exe,不要用滑鼠雙擊。雙擊啟動的視窗在 server 結束時會立刻關閉,看不到啟動 log,無法判斷是否成功。
下載其他版本
Section titled “下載其他版本”官網下載頁標題「下載 HakoSpace」下方有一個「版本」下拉選單。打開下載頁時,選單預設選在最新的穩定版;要下載其他版本時,打開選單挑選:
- 「穩定版」一組列出下載頁目前提供的穩定版,最上面一個標著「最新穩定版」。選了較舊的版本,選單下方會出現提醒:「這不是最新版本,可能缺少之後的修正與安全性更新。除非有特別需要,建議下載最新穩定版。」
- 有比最新穩定版更新的預覽版時,選單最下面會多出「預覽版」一組。選它會先跳出「要下載預覽版嗎?」對話框,說明「預覽版是給想搶先試用新功能的人,可能包含尚未完成的功能或已知問題。不確定的話,請使用穩定版。」按「我了解,改用預覽版」才會切換;按「留在穩定版」,選單會回到原本的版本。
切換到預覽版後,下載區上方會出現「目前顯示的是預覽版 … 的下載檔案。」提示,按旁邊的「切回最新穩定版」就能換回來。
選單選到哪個版本,頁面上的下載連結、檔名與「驗證校驗碼」連結(該版本的 SHA256SUMS.txt)都會跟著換;所選版本沒有某個平台的檔案時,那個位置會顯示「此版本未提供」。
用預覽版架設 server 的話,架好之後記得到設定 → 儀表板的「伺服器更新」區段打開「接收預覽版更新」,之後的「檢查更新」才會繼續提供新的預覽版,見 §6.5。
4.3 第一次啟動
Section titled “4.3 第一次啟動”切到放 hako 執行檔的目錄,執行:
Linux:
./hakoWindows(從 PowerShell 或 cmd):
hako.exe第一次啟動時 HakoSpace 會做幾件事:
- 在當前目錄建立
data/子目錄 - 自動產生
data/.env設定檔,內含一組隨機的 48 字元JWT_SECRET - 開始監聽 8080(HTTP)與 8443(HTTPS)
你不需要手動編輯任何設定就可以跑起來。
如果你打算走 §3.3 ACME 模式取得正式憑證:先讓 server 跑起來確認沒有問題,按 Ctrl+C 停掉 server,編輯 data/.env 加入 ACME_DOMAIN=your.domain.com,然後重新啟動 server。
4.4 確認啟動成功
Section titled “4.4 確認啟動成功”server 啟動後預設監聽 port 8080(HTTP)與 8443(HTTPS)。打開瀏覽器輸入:
- 在本機測試:
http://localhost:8080 - 走 ACME 模式時:
https://your.domain.com:8443(若已將對外 443 NAT 轉到內網 8443,可省略:8443部分)
若看到 HakoSpace 登入頁,代表 server 已成功啟動。若已設好 ACME,瀏覽器網址列會顯示鎖頭圖示,沒有任何警告。
4.5 設定為系統服務(推薦)
Section titled “4.5 設定為系統服務(推薦)”讓 HakoSpace 跟著作業系統開機自動啟動。雲端 VPS 與長期運作的家用機都建議完成這一步,否則重開機後 server 不會自己起來。
Linux:systemd
Section titled “Linux:systemd”建立 /etc/systemd/system/hakospace.service,貼入以下內容(路徑與使用者依實際情況調整):
[Unit]Description=HakoSpace ServerAfter=network.target
[Service]Type=simpleUser=hakoWorkingDirectory=/opt/hakospaceExecStart=/opt/hakospace/hakoRestart=alwaysRestartSec=5
[Install]WantedBy=multi-user.target範例中的 Restart=always 請保留:有了它,不論 server 怎麼結束,systemd 都會自動重新啟動它(用 systemctl stop 停下的除外)。從管理面板套用更新時(§6.5),server 會先換好新的執行檔、再自行正常結束,由 systemd 把新版本啟動起來;改成 Restart=on-failure 的話,systemd 只在異常結束時重新啟動,套用更新之後 server 會停著不回來。
建議建立一個專屬的 hako 系統使用者,把執行檔與 data/ 目錄都放在 /opt/hakospace/,以隔離權限。data/ 目錄會在第一次執行時自動建立於 WorkingDirectory 之下。
啟用並啟動服務:
sudo systemctl daemon-reloadsudo systemctl enable hakospacesudo systemctl start hakospacesudo systemctl status hakospace往後查 log 用 journalctl -u hakospace -f,停 / 啟服務用 sudo systemctl stop|start|restart hakospace。
Windows:工作排程器
Section titled “Windows:工作排程器”建立一個簡單的 .bat 檔(例如 C:\hakospace\start.bat),內容:
@echo offcd /d C:\hakospacehako.exe打開「工作排程器」(Task Scheduler),建立新工作:
- 觸發程序:在「電腦啟動時」執行
- 動作:執行
C:\hakospace\start.bat - 「開始位置」:填
C:\hakospace
設定完成後,Windows 開機時 server 會自動啟動。
5. 首次設定
Section titled “5. 首次設定”5.1 建立 owner 帳號
Section titled “5.1 建立 owner 帳號”HakoSpace 的預設行為是第一個註冊的使用者自動成為 owner。流程:
- 在登入頁點「還沒有帳號?」旁的「註冊」連結,前往註冊頁。
- 填寫使用者名稱與密碼。
- 完成註冊後系統會自動登入。
- 你的角色會自動晉升為 owner。
owner 第一次登入時會依序看到三個對話框:
- 「請確認最新版使用者條款」對話框:EULA 與隱私權政策各有一個勾選欄位。先按旁邊的「閱讀 EULA 全文」或「閱讀 Privacy Policy 全文」打開全文、捲到最底,對應的勾選欄位才能勾;兩個都勾好後按「同意並繼續」。如果按「離開伺服器」會登出。
- EULA 同意對話框:點開上方的條款連結後,「我同意」才按得下去,按下即可繼續。如果按「拒絕」會直接登出。
- 「HakoSpace 改善計畫」對話框:詢問是否願意分享匿名使用統計,可選「參加」或「不了,謝謝」。
後兩個對話框只在 owner 第一次登入時出現一次;第一個對話框則是每位成員第一次登入、以及條款改版後都會出現。
如果你比較進階、想用環境變數的方式指定 owner(例如先讓多人註冊再決定誰當 owner),可以在 data/.env 設 OWNER_USERNAME=<已存在的使用者名稱>,server 啟動時會強制把該帳號提升為 owner,並把其他原本的 owner 降為 admin。注意該帳號必須先已經存在於 server,否則 server 會啟動失敗。
5.2 設定伺服器名稱
Section titled “5.2 設定伺服器名稱”伺服器名稱是其他使用者連到你 server 時會看到的顯示名稱(例如登入頁的「歡迎來到 {serverName}!」)。
操作路徑:
- 用 owner 帳號登入後,進入設定 → 總覽分頁。
- 找到「伺服器名稱」欄位(上限 32 字元)。
- 輸入你想要的名稱,按儲存。
儲存後,之後打開登入頁或重新整理頁面的人,就會看到新的伺服器名稱。
6. 安全推薦清單(必做)
Section titled “6. 安全推薦清單(必做)”前面幾章把 server 跑起來,這一章把 server 變得安全,建議全部完成後再對外開放給成員使用。每一節都包含「為什麼建議」與「具體操作路徑」兩部分。
6.1 註冊政策(含 email 驗證)
Section titled “6.1 註冊政策(含 email 驗證)”預設情況下你的 server 是開放註冊模式 —— 任何拿到網址的人都可以自己建帳號。這對一般社群來說太寬鬆,第一件要做的就是改註冊政策。
操作路徑:設定 → 註冊管理分頁。
HakoSpace 提供四種註冊模式:
| 模式 | 行為 |
|---|---|
| 開放 | 任何人都可以註冊(預設) |
| 僅限邀請 | 使用者需要邀請碼才能註冊 |
| 關閉 | 停用註冊功能,登入頁會顯示「目前已關閉註冊。」 |
| 電子郵件驗證 | 使用者註冊時必須提供 email 並完成驗證才能啟用帳號 |
- 封閉社群(朋友、公司、私群):選「僅限邀請」,再到邀請碼區建立邀請碼,把連結發給想加入的人。
- 公開或半公開社群:選「電子郵件驗證」。理由:擋下大量機器人註冊與一次性丟棄帳號的濫用;email 驗證是公開社群接受度最高的低門檻防線。
重要順序依賴
Section titled “重要順序依賴”「電子郵件驗證」這個選項只有在你已先設好 Email Proxy 時才會出現在註冊模式的按鈕清單中。沒有 Email Proxy 設定,server 沒辦法寄驗證信,UI 會把這個選項隱藏。
設定 Email Proxy
Section titled “設定 Email Proxy”操作路徑:設定 → 郵件代理分頁。
HakoSpace 支援三種寄信供應商:
- Gmail(推薦給入門自架者):用你自己的 Gmail 帳號加上 App Password 寄信。要填的欄位:
- 供應商:選
Gmail - 使用者名稱 / API Key:你的 Gmail 信箱
- 密碼 / API Key:你產生的 App Password(不是 Gmail 主密碼)
- 寄件人地址:建議與 Gmail 信箱相同
- 寄件人名稱:你的伺服器顯示名稱(例如
HakoSpace - YourCommunity) - 網站 URL:你 server 的對外 URL,例如
https://chat.yourdomain.com:8443
- 供應商:選
- Resend:商用寄信 API 服務。在 resend.com 註冊帳號取得 API Key,把 API Key 填到「密碼 / API Key」欄位。
- 自訂 SMTP:手動填入你既有 SMTP 伺服器的主機、連接埠與認證資訊。
填完後按下「發送測試郵件以驗證設定是否正確。」對應的測試按鈕,確認 Email Proxy 設定可用。測試通過後再回到設定 → 註冊管理,把模式切到「電子郵件驗證」。
進階寄件選項(例如改變「SMTP 連接埠」)詳見《管理員手冊》§安全;「密碼變更驗證」(成員變更密碼時也要透過 email 確認)詳見《管理員手冊》§成員與註冊。
6.2 認識稽核日誌
Section titled “6.2 認識稽核日誌”稽核日誌是 HakoSpace 內建的管理操作歷史紀錄。它預設啟用,沒有開關,所以這一節不教你「啟用稽核日誌」,而是告訴你它在哪、它記了什麼、以及你應該怎麼用它。
變更成員角色、封禁或踢出成員、授予或撤銷權限、修改伺服器名稱或註冊模式、建立或刪除頻道等管理操作,都會自動寫進稽核日誌。不論操作的是 owner、admin,還是被授予管理權限的成員,紀錄都會記下是誰做的。
操作路徑:設定 → 稽核日誌分頁。
你會看到一份依時間倒序排列的清單,列出最近 200 筆管理操作紀錄。每筆紀錄包含:
- 何人操作
- 做了什麼動作(例如變更角色、修改設定、踢出成員)
- 對誰或對哪個資源
- 操作時間
- 來源 IP(若這次操作有記到)
清單上方有篩選器,可以依動作類型篩選你關心的紀錄。
篩選器旁還有一個「顯示系統自動清理紀錄」勾選欄位,預設不勾。勾選後,清單也會列出伺服器依保留設定自動移除較舊訊息或檔案的紀錄,操作者顯示「系統」。細節見《管理員手冊》§安全。
當你遇到以下情況,稽核日誌可以直接給你答案:
- 某成員角色被改但你不記得自己授權過
- 伺服器設定看起來和你印象中不同
- 同一個 IP 反覆出現異常操作
- 想知道某次封禁 / 踢人是誰執行的
平時可以每週或每月開一次看看,及早發現異常即可。
6.3 設定 Banned words
Section titled “6.3 設定 Banned words”Banned words 是訊息層級的字詞過濾機制。當啟用時,使用者送出的訊息會被即時掃描,命中清單上的字詞時會依你設定的模式處理。
預設行為:HakoSpace 在第一次啟動時已 seed 一份預設禁用字清單(包含常見英文與中文辱罵詞),但功能本身預設關閉。要啟用它,需要去設定中明確開啟。
操作路徑:設定 → 禁用字管理分頁。
- 打開「啟用禁用字」開關。
- 選擇處理模式:
- 替換:訊息中的禁用字被替換為指定字元(預設
***,可在「替換文字」欄位自訂)。 - 阻擋:整則訊息會被擋下不送出。
- 替換:訊息中的禁用字被替換為指定字元(預設
- 檢視預設清單,按你社群文化決定是否新增或移除字詞。
- 每個字詞可獨立選擇匹配方式:
- 完整詞:精確全字匹配才觸發
- 包含:訊息中包含此字串(即使作為其他字的一部分)就觸發
- 按「儲存」,開關、處理模式與清單的變動才會一起存下來。
- 啟用前先檢視預設清單,按你社群的語境補上常見的本地辱罵或騷擾字詞,移除你判斷不需要的條目。
- 啟用後可在設定 → 禁用字管理 → 過濾紀錄頁面查看實際被過濾掉的訊息歷史,協助你調整清單與處理模式。
- 如果你的社群偏向嚴格管理,建議從「阻擋」模式開始,後續視情況放鬆為「替換」。
6.4 至少設一位 admin
Section titled “6.4 至少設一位 admin”owner 帳號是 server 的最高權限,但同時也是單點故障源 —— 如果 owner 帳號的 password 忘記、email 失效、或本人短期無法操作,server 就會處於無人可管的狀態。設置至少一位 admin 可以避免這個情況:admin 能處理日常的成員管理、頻道調整、稽核檢視;對其他 admin 的操作(變更角色、封禁、踢出)則保留給 owner。
操作路徑:設定 → 成員分頁。
建立第一位 admin
Section titled “建立第一位 admin”- 先請一位你信任的成員依照 §6.1 你選的註冊模式註冊一個帳號。
- 用 owner 身分進入設定 → 成員,找到該成員的列。
- 點該成員列上的「變更角色」按鈕。
- 選
admin。
升級權限規則
Section titled “升級權限規則”- 變更角色需要「管理員」權限,admin 的角色本身就帶有這項權限。剛架好的 server 上只有 owner 具備,所以第一位 admin 由 owner 升任。
- 之後 admin 也可以把其他 member 升為 admin(admin 只能改 member 的角色,不能改 owner 或其他 admin)。
第一位 admin 建好後,至少有兩個帳號可以進行管理操作。實務上小社群建議 2–3 位 admin,較大社群依需求再增。
如果只想請某人分擔部分管理工作(例如只處理違規成員),不必把他升為 admin:在設定 → 權限分頁把對應的權限授予他即可,詳見《管理員手冊》§權限。
6.5 備份策略基線
Section titled “6.5 備份策略基線”HakoSpace 的所有資料 —— 訊息、使用者、頻道、設定、上傳檔案 —— 都存在 data/ 目錄裡(走 Docker 的話,這個目錄位在你建立的 hako-data 儲存空間內)。這個目錄一旦損毀且沒有備份,所有對話與成員資料都無法復原。所以備份是必做的。
內建備份功能
Section titled “內建備份功能”操作路徑:設定 → 儀表板,往下捲到「備份」區段。
點「建立備份」按鈕後,server 會:
- 為資料庫產生一份乾淨的 snapshot
- 將整個
data/目錄打包成 zip - 放置於
data/backup/hako-backup-<時間戳>.zip
「備份」區段同時提供既有備份的列表、下載與刪除功能。
三條基線推薦
Section titled “三條基線推薦”- 每週至少手動觸發一次備份:把它加進你的例行工作,建議排定固定的星期幾。
- 下載備份檔到 server 之外的地方:把 zip 檔下載到雲端硬碟或你的個人裝置。只放在 server 同一台機器上的備份,在硬碟損毀或 server 遭入侵時會跟著一起失效,等同沒備份。
- 升級 server 前一定先備份:升級流程本身相對安全,但這是備份的基本守則。
升級 server
Section titled “升級 server”走 Docker 的話請直接看 §4.1 的更新段落 —— 容器裡的內建升級是刻意關閉的,更新的方式是重新拉取映像檔。以下是單一執行檔那條路的做法。
HakoSpace 提供內建升級流程。操作路徑:設定 → 儀表板,往下捲到「伺服器更新」區段。
點「檢查更新」按鈕後:
- 若已是最新版本,會顯示「已是最新版本」。
- 若有新版本,會顯示「有新版本可用!」與版本號。接著:
- 按「下載更新」。server 會下載新版本並自動驗證,驗證通過後顯示「下載完成,已驗證」。
- 按「套用更新」,畫面會再確認一次:「將中斷所有使用者連線並重啟伺服器,是否繼續?」
- 按「確定套用更新」開始套用,畫面會顯示「正在更新伺服器…」。
在 Linux 上,套用之後 server 會換上新版本並重新啟動,整個過程都在網頁上操作,不需要 SSH 進去手動處理。新版本啟動後,所有成員都會收到一則「系統更新」通知:「已從 … 更新至 …」。
如果你已經把 HakoSpace 設為 systemd 服務(§4.5),重新啟動由 systemd 負責:server 換好新的執行檔後會自行結束,再由 systemd 把新版本啟動起來 —— 這就是 §4.5 的範例要用 Restart=always 的原因。
若你想完全手動升級(例如要鎖定特定版本、或臨時換到預覽版),標準流程是:停掉 server → 把執行檔換成新版 → 重新啟動 server。整個 data/ 目錄會完整保留,新版 server 啟動時會直接讀取既有資料。要換上的版本,可以從官網下載頁「版本」選單列出的版本裡挑選(§4.2)。
前面提到的「伺服器更新」區段裡有「接收預覽版更新」開關,決定「檢查更新」時要不要把預覽版也算進去,預設是關閉的。跑預覽版的 server(不論是用預覽版架設、還是手動換上預覽版)記得打開這個開關,之後的「檢查更新」才會繼續提供新的預覽版。開關關著時,「檢查更新」提供的是最新的穩定版;正在跑預覽版的話,它的版本號可能比目前低,照上面「下載更新」→「套用更新」的步驟下載並套用,就會換回穩定版。
更新區的完整說明(含預覽版與穩定版之間的切換、自動驗證沒通過時怎麼處理、更新從哪裡下載)見《管理員手冊》§伺服器更新。
7. 邀請第一位成員
Section titled “7. 邀請第一位成員”到這一步,你的 server 已經跑起來且安全。現在可以邀請第一位成員。
依你 §6.1 選的註冊政策,邀請方式不同:
- 開放模式:把 server 網址(例如
https://your.domain.com:8443)給對方,對方自行前往註冊。 - 僅限邀請:進入設定 → 註冊管理 → 邀請碼區,建立一組邀請碼。建立時可以設定最大使用次數(0 = 無限制)與過期時間(0 = 永不過期)。把 server 網址加上邀請碼一併給對方。
- 電子郵件驗證:把 server 網址給對方即可。對方在註冊時會收到驗證信,點信中連結後帳號才會啟用。
- 關閉模式:先切回上述任一可註冊模式,邀請完再切回關閉。
對方完成註冊後會以 member 身分加入。如果你想把對方也升為 admin,重複 §6.4 流程即可。
至此,從零到第一位成員加入的全部必要步驟完成。
8. 進階閱讀
Section titled “8. 進階閱讀”接下來的進階設定都收在《管理員手冊》中,可以依需要查閱:
- 完整成員管理(封禁、踢出、使用者群組):《管理員手冊》§成員與註冊、《管理員手冊》§使用者群組、徽章與權限
- 把個別管理權限授予成員或使用者群組:《管理員手冊》§權限
- 頻道結構(文字頻道、語音頻道、論壇頻道)與頻道群組設定:《管理員手冊》§頻道管理
- IO Apps、貼圖板、音效板等內容資源管理:《管理員手冊》§IO Apps 管理、《管理員手冊》§貼圖板與音效板
- AI bot(實驗功能)的設定與限額:《管理員手冊》§AI bot
- 伺服器更新(含預覽版與穩定版之間的切換)與備份:《管理員手冊》§伺服器更新、《管理員手冊》§備份
- 內建 TURN 中繼與進階網路設定(語音要穿越各種家用網路時會用到):《管理員手冊》§進階網路與維運
想了解使用者端如何操作 HakoSpace,請見《使用者指南》。