跳到內容

    速架設指南

    HakoSpace 是自架的語音、視訊與訊息平台,讓你完全掌控伺服器、資料與隱私。 (產品名 Hako 取自日文「箱(はこ)」—— 一個只屬於你的盒子。)

    本指南帶你從零完成到第一位成員加入的所有必要步驟,並附上一份安全推薦清單。讀者對象是想盡快架起一座 HakoSpace Server 的自架者。


    照本指南做完後,你會得到:

    • 一座可從 internet 訪問、走 HTTPS 的 HakoSpace Server
    • 一個屬於你的 owner 帳號
    • 至少一位額外的 admin(§6.4 推薦)
    • 啟用的禁用字過濾與註冊政策
    • 已知的備份位置與操作方式

    整體流程:

    1. 取得 server(Docker 映像檔或單一執行檔,兩者擇一)
    2. 準備域名與 TLS
    3. 啟動 server
    4. 建立 owner 帳號與基本設定
    5. 套用安全推薦清單
    6. 邀請第一位成員

    每個步驟對應後續一章。本指南只寫必要與安全推薦的部分,所有「進階設定」會指向《管理員手冊》對應章節。


    項目 值
    作業系統 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.1 的伺服器
    • 打算走 Docker(§4.1)的話:那台機器上要先裝好 Docker
    • 防火牆規則:開放 8080/TCP(HTTP)與 8443/TCP(HTTPS)對外
    • 一個 email 信箱:之後若要啟用 email 驗證註冊政策(§6.1)會用到
    • 一個域名:強烈推薦準備好,§3.2 會說明取得方式

    防火牆若沒有先放行 8080 與 8443 兩個埠,外部使用者無法連到你的 server,且 §3.3 ACME 自動憑證的驗證流程也會失敗。


    HakoSpace Server 第一次啟動時會檢查 TLS 設定。若你沒指定任何域名也沒提供手動憑證,server 會自動產生一張自簽憑證讓自己跑得起來。自簽憑證可以正常加密連線。瀏覽器會出現警告畫面,要求使用者手動點選「進階」並信任此憑證才能進入。

    如果你只是在本機自己試玩,自簽憑證夠用。一旦你打算邀請朋友、社群成員或公開使用,就需要:

    • 一個可以解析到你 server 公開 IP 的域名
    • 由可信 CA(例如 Let’s Encrypt)簽發的證書

    HakoSpace Server 內建 ACME 客戶端,會在第一次啟動時自動向 Let’s Encrypt 申請憑證,到期前也會自動續簽。你不需要手動跑任何憑證簽發指令。

    取得域名有兩種主要選項:

    到任意域名註冊商購買一個域名(GoDaddy、Namecheap、Cloudflare Registrar、Gandi 任選),然後在註冊商的 DNS 設定中加一筆 A record,把域名指向你 server 的公開 IP。

    適用情境:你的 server 有固定公開 IP(雲端 VPS 通常都是固定 IP)。

    家用網路的公開 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。

    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,正式營運首選):

    1. 確認你的域名(含 DDNS 名稱)已可解析到 server 的公開 IP。可以從另一台機器執行 ping your.domain.com,看回應的 IP 是否符合預期。
    2. 確認 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。
    3. 編輯 data/.env,加入一行 ACME_DOMAIN=your.domain.com。
    4. 啟動 server(步驟見 §4)。
    5. 第一次啟動時 server 會在 log 中顯示向 Let’s Encrypt 取得憑證的訊息;之後憑證會在到期前自動續簽。

    如果你還沒第一次啟動過,可以先跳到 §4 跑一次取得 data/.env,再回來編輯這個檔案。


    有兩條路可以把 server 跑起來,選一條走完就好:

    • 用 Docker(§4.1)—— 拿一個現成的設定檔、跑一行指令。步驟最少、之後更新也最單純,機器上要先有 Docker。
    • 用單一執行檔(§4.2 起)—— 下載一個檔案直接執行,機器上不必安裝 Docker,但開機自動啟動要自己設一次(§4.5)。

    兩條路做出來的伺服器功能完全相同,後面 §5 之後的章節兩邊都適用。

    開始之前:機器上要先裝好 Docker。Linux、Windows、macOS 的安裝方式請見 Docker 官方安裝說明,本指南不重複。

    從 HakoSpace-releases 取得 docker-compose.yml,放進你打算讓 server 永久運作的目錄。這個檔案已經把必要的設定都填好了,不改任何一行就能用。

    在放著 docker-compose.yml 的目錄執行:

    終端機視窗
    docker compose up -d

    第一次啟動時 HakoSpace 會自動產生一組隨機的 JWT_SECRET 存進資料區,你不需要手動設定任何東西。

    打開瀏覽器輸入 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。

    一、資料全部在那個儲存空間裡。 資料庫、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。

    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 hako

    Windows 不需要這個步驟,但務必從 PowerShell 或命令提示字元執行 hako.exe,不要用滑鼠雙擊。雙擊啟動的視窗在 server 結束時會立刻關閉,看不到啟動 log,無法判斷是否成功。

    官網下載頁標題「下載 HakoSpace」下方有一個「版本」下拉選單。打開下載頁時,選單預設選在最新的穩定版;要下載其他版本時,打開選單挑選:

    • 「穩定版」一組列出下載頁目前提供的穩定版,最上面一個標著「最新穩定版」。選了較舊的版本,選單下方會出現提醒:「這不是最新版本,可能缺少之後的修正與安全性更新。除非有特別需要,建議下載最新穩定版。」
    • 有比最新穩定版更新的預覽版時,選單最下面會多出「預覽版」一組。選它會先跳出「要下載預覽版嗎?」對話框,說明「預覽版是給想搶先試用新功能的人,可能包含尚未完成的功能或已知問題。不確定的話,請使用穩定版。」按「我了解,改用預覽版」才會切換;按「留在穩定版」,選單會回到原本的版本。

    切換到預覽版後,下載區上方會出現「目前顯示的是預覽版 … 的下載檔案。」提示,按旁邊的「切回最新穩定版」就能換回來。

    選單選到哪個版本,頁面上的下載連結、檔名與「驗證校驗碼」連結(該版本的 SHA256SUMS.txt)都會跟著換;所選版本沒有某個平台的檔案時,那個位置會顯示「此版本未提供」。

    用預覽版架設 server 的話,架好之後記得到設定 → 儀表板的「伺服器更新」區段打開「接收預覽版更新」,之後的「檢查更新」才會繼續提供新的預覽版,見 §6.5。

    切到放 hako 執行檔的目錄,執行:

    Linux:

    終端機視窗
    ./hako

    Windows(從 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。

    server 啟動後預設監聽 port 8080(HTTP)與 8443(HTTPS)。打開瀏覽器輸入:

    • 在本機測試:http://localhost:8080
    • 走 ACME 模式時:https://your.domain.com:8443(若已將對外 443 NAT 轉到內網 8443,可省略 :8443 部分)

    若看到 HakoSpace 登入頁,代表 server 已成功啟動。若已設好 ACME,瀏覽器網址列會顯示鎖頭圖示,沒有任何警告。

    讓 HakoSpace 跟著作業系統開機自動啟動。雲端 VPS 與長期運作的家用機都建議完成這一步,否則重開機後 server 不會自己起來。

    建立 /etc/systemd/system/hakospace.service,貼入以下內容(路徑與使用者依實際情況調整):

    [Unit]
    Description=HakoSpace Server
    After=network.target
    [Service]
    Type=simple
    User=hako
    WorkingDirectory=/opt/hakospace
    ExecStart=/opt/hakospace/hako
    Restart=always
    RestartSec=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-reload
    sudo systemctl enable hakospace
    sudo systemctl start hakospace
    sudo systemctl status hakospace

    往後查 log 用 journalctl -u hakospace -f,停 / 啟服務用 sudo systemctl stop|start|restart hakospace。

    建立一個簡單的 .bat 檔(例如 C:\hakospace\start.bat),內容:

    終端機視窗
    @echo off
    cd /d C:\hakospace
    hako.exe

    打開「工作排程器」(Task Scheduler),建立新工作:

    • 觸發程序:在「電腦啟動時」執行
    • 動作:執行 C:\hakospace\start.bat
    • 「開始位置」:填 C:\hakospace

    設定完成後,Windows 開機時 server 會自動啟動。


    HakoSpace 的預設行為是第一個註冊的使用者自動成為 owner。流程:

    1. 在登入頁點「還沒有帳號?」旁的「註冊」連結,前往註冊頁。
    2. 填寫使用者名稱與密碼。
    3. 完成註冊後系統會自動登入。
    4. 你的角色會自動晉升為 owner。

    owner 第一次登入時會依序看到三個對話框:

    • 「請確認最新版使用者條款」對話框:EULA 與隱私權政策各有一個勾選欄位。先按旁邊的「閱讀 EULA 全文」或「閱讀 Privacy Policy 全文」打開全文、捲到最底,對應的勾選欄位才能勾;兩個都勾好後按「同意並繼續」。如果按「離開伺服器」會登出。
    • EULA 同意對話框:點開上方的條款連結後,「我同意」才按得下去,按下即可繼續。如果按「拒絕」會直接登出。
    • 「HakoSpace 改善計畫」對話框:詢問是否願意分享匿名使用統計,可選「參加」或「不了,謝謝」。

    後兩個對話框只在 owner 第一次登入時出現一次;第一個對話框則是每位成員第一次登入、以及條款改版後都會出現。

    如果你比較進階、想用環境變數的方式指定 owner(例如先讓多人註冊再決定誰當 owner),可以在 data/.env 設 OWNER_USERNAME=<已存在的使用者名稱>,server 啟動時會強制把該帳號提升為 owner,並把其他原本的 owner 降為 admin。注意該帳號必須先已經存在於 server,否則 server 會啟動失敗。

    伺服器名稱是其他使用者連到你 server 時會看到的顯示名稱(例如登入頁的「歡迎來到 {serverName}!」)。

    操作路徑:

    1. 用 owner 帳號登入後,進入設定 → 總覽分頁。
    2. 找到「伺服器名稱」欄位(上限 32 字元)。
    3. 輸入你想要的名稱,按儲存。

    儲存後,之後打開登入頁或重新整理頁面的人,就會看到新的伺服器名稱。


    前面幾章把 server 跑起來,這一章把 server 變得安全,建議全部完成後再對外開放給成員使用。每一節都包含「為什麼建議」與「具體操作路徑」兩部分。

    預設情況下你的 server 是開放註冊模式 —— 任何拿到網址的人都可以自己建帳號。這對一般社群來說太寬鬆,第一件要做的就是改註冊政策。

    操作路徑:設定 → 註冊管理分頁。

    HakoSpace 提供四種註冊模式:

    模式 行為
    開放 任何人都可以註冊(預設)
    僅限邀請 使用者需要邀請碼才能註冊
    關閉 停用註冊功能,登入頁會顯示「目前已關閉註冊。」
    電子郵件驗證 使用者註冊時必須提供 email 並完成驗證才能啟用帳號
    • 封閉社群(朋友、公司、私群):選「僅限邀請」,再到邀請碼區建立邀請碼,把連結發給想加入的人。
    • 公開或半公開社群:選「電子郵件驗證」。理由:擋下大量機器人註冊與一次性丟棄帳號的濫用;email 驗證是公開社群接受度最高的低門檻防線。

    「電子郵件驗證」這個選項只有在你已先設好 Email Proxy 時才會出現在註冊模式的按鈕清單中。沒有 Email Proxy 設定,server 沒辦法寄驗證信,UI 會把這個選項隱藏。

    操作路徑:設定 → 郵件代理分頁。

    HakoSpace 支援三種寄信供應商:

    1. Gmail(推薦給入門自架者):用你自己的 Gmail 帳號加上 App Password 寄信。要填的欄位:
      • 供應商:選 Gmail
      • 使用者名稱 / API Key:你的 Gmail 信箱
      • 密碼 / API Key:你產生的 App Password(不是 Gmail 主密碼)
      • 寄件人地址:建議與 Gmail 信箱相同
      • 寄件人名稱:你的伺服器顯示名稱(例如 HakoSpace - YourCommunity)
      • 網站 URL:你 server 的對外 URL,例如 https://chat.yourdomain.com:8443
    2. Resend:商用寄信 API 服務。在 resend.com 註冊帳號取得 API Key,把 API Key 填到「密碼 / API Key」欄位。
    3. 自訂 SMTP:手動填入你既有 SMTP 伺服器的主機、連接埠與認證資訊。

    填完後按下「發送測試郵件以驗證設定是否正確。」對應的測試按鈕,確認 Email Proxy 設定可用。測試通過後再回到設定 → 註冊管理,把模式切到「電子郵件驗證」。

    進階寄件選項(例如改變「SMTP 連接埠」)詳見《管理員手冊》§安全;「密碼變更驗證」(成員變更密碼時也要透過 email 確認)詳見《管理員手冊》§成員與註冊。

    稽核日誌是 HakoSpace 內建的管理操作歷史紀錄。它預設啟用,沒有開關,所以這一節不教你「啟用稽核日誌」,而是告訴你它在哪、它記了什麼、以及你應該怎麼用它。

    變更成員角色、封禁或踢出成員、授予或撤銷權限、修改伺服器名稱或註冊模式、建立或刪除頻道等管理操作,都會自動寫進稽核日誌。不論操作的是 owner、admin,還是被授予管理權限的成員,紀錄都會記下是誰做的。

    操作路徑:設定 → 稽核日誌分頁。

    你會看到一份依時間倒序排列的清單,列出最近 200 筆管理操作紀錄。每筆紀錄包含:

    • 何人操作
    • 做了什麼動作(例如變更角色、修改設定、踢出成員)
    • 對誰或對哪個資源
    • 操作時間
    • 來源 IP(若這次操作有記到)

    清單上方有篩選器,可以依動作類型篩選你關心的紀錄。

    篩選器旁還有一個「顯示系統自動清理紀錄」勾選欄位,預設不勾。勾選後,清單也會列出伺服器依保留設定自動移除較舊訊息或檔案的紀錄,操作者顯示「系統」。細節見《管理員手冊》§安全。

    當你遇到以下情況,稽核日誌可以直接給你答案:

    • 某成員角色被改但你不記得自己授權過
    • 伺服器設定看起來和你印象中不同
    • 同一個 IP 反覆出現異常操作
    • 想知道某次封禁 / 踢人是誰執行的

    平時可以每週或每月開一次看看,及早發現異常即可。

    Banned words 是訊息層級的字詞過濾機制。當啟用時,使用者送出的訊息會被即時掃描,命中清單上的字詞時會依你設定的模式處理。

    預設行為:HakoSpace 在第一次啟動時已 seed 一份預設禁用字清單(包含常見英文與中文辱罵詞),但功能本身預設關閉。要啟用它,需要去設定中明確開啟。

    操作路徑:設定 → 禁用字管理分頁。

    1. 打開「啟用禁用字」開關。
    2. 選擇處理模式:
      • 替換:訊息中的禁用字被替換為指定字元(預設 ***,可在「替換文字」欄位自訂)。
      • 阻擋:整則訊息會被擋下不送出。
    3. 檢視預設清單,按你社群文化決定是否新增或移除字詞。
    4. 每個字詞可獨立選擇匹配方式:
      • 完整詞:精確全字匹配才觸發
      • 包含:訊息中包含此字串(即使作為其他字的一部分)就觸發
    5. 按「儲存」,開關、處理模式與清單的變動才會一起存下來。
    • 啟用前先檢視預設清單,按你社群的語境補上常見的本地辱罵或騷擾字詞,移除你判斷不需要的條目。
    • 啟用後可在設定 → 禁用字管理 → 過濾紀錄頁面查看實際被過濾掉的訊息歷史,協助你調整清單與處理模式。
    • 如果你的社群偏向嚴格管理,建議從「阻擋」模式開始,後續視情況放鬆為「替換」。

    owner 帳號是 server 的最高權限,但同時也是單點故障源 —— 如果 owner 帳號的 password 忘記、email 失效、或本人短期無法操作,server 就會處於無人可管的狀態。設置至少一位 admin 可以避免這個情況:admin 能處理日常的成員管理、頻道調整、稽核檢視;對其他 admin 的操作(變更角色、封禁、踢出)則保留給 owner。

    操作路徑:設定 → 成員分頁。

    1. 先請一位你信任的成員依照 §6.1 你選的註冊模式註冊一個帳號。
    2. 用 owner 身分進入設定 → 成員,找到該成員的列。
    3. 點該成員列上的「變更角色」按鈕。
    4. 選 admin。
    • 變更角色需要「管理員」權限,admin 的角色本身就帶有這項權限。剛架好的 server 上只有 owner 具備,所以第一位 admin 由 owner 升任。
    • 之後 admin 也可以把其他 member 升為 admin(admin 只能改 member 的角色,不能改 owner 或其他 admin)。

    第一位 admin 建好後,至少有兩個帳號可以進行管理操作。實務上小社群建議 2–3 位 admin,較大社群依需求再增。

    如果只想請某人分擔部分管理工作(例如只處理違規成員),不必把他升為 admin:在設定 → 權限分頁把對應的權限授予他即可,詳見《管理員手冊》§權限。

    HakoSpace 的所有資料 —— 訊息、使用者、頻道、設定、上傳檔案 —— 都存在 data/ 目錄裡(走 Docker 的話,這個目錄位在你建立的 hako-data 儲存空間內)。這個目錄一旦損毀且沒有備份,所有對話與成員資料都無法復原。所以備份是必做的。

    操作路徑:設定 → 儀表板,往下捲到「備份」區段。

    點「建立備份」按鈕後,server 會:

    • 為資料庫產生一份乾淨的 snapshot
    • 將整個 data/ 目錄打包成 zip
    • 放置於 data/backup/hako-backup-<時間戳>.zip

    「備份」區段同時提供既有備份的列表、下載與刪除功能。

    1. 每週至少手動觸發一次備份:把它加進你的例行工作,建議排定固定的星期幾。
    2. 下載備份檔到 server 之外的地方:把 zip 檔下載到雲端硬碟或你的個人裝置。只放在 server 同一台機器上的備份,在硬碟損毀或 server 遭入侵時會跟著一起失效,等同沒備份。
    3. 升級 server 前一定先備份:升級流程本身相對安全,但這是備份的基本守則。

    走 Docker 的話請直接看 §4.1 的更新段落 —— 容器裡的內建升級是刻意關閉的,更新的方式是重新拉取映像檔。以下是單一執行檔那條路的做法。

    HakoSpace 提供內建升級流程。操作路徑:設定 → 儀表板,往下捲到「伺服器更新」區段。

    點「檢查更新」按鈕後:

    • 若已是最新版本,會顯示「已是最新版本」。
    • 若有新版本,會顯示「有新版本可用!」與版本號。接著:
      1. 按「下載更新」。server 會下載新版本並自動驗證,驗證通過後顯示「下載完成,已驗證」。
      2. 按「套用更新」,畫面會再確認一次:「將中斷所有使用者連線並重啟伺服器,是否繼續?」
      3. 按「確定套用更新」開始套用,畫面會顯示「正在更新伺服器…」。

    在 Linux 上,套用之後 server 會換上新版本並重新啟動,整個過程都在網頁上操作,不需要 SSH 進去手動處理。新版本啟動後,所有成員都會收到一則「系統更新」通知:「已從 … 更新至 …」。

    如果你已經把 HakoSpace 設為 systemd 服務(§4.5),重新啟動由 systemd 負責:server 換好新的執行檔後會自行結束,再由 systemd 把新版本啟動起來 —— 這就是 §4.5 的範例要用 Restart=always 的原因。

    若你想完全手動升級(例如要鎖定特定版本、或臨時換到預覽版),標準流程是:停掉 server → 把執行檔換成新版 → 重新啟動 server。整個 data/ 目錄會完整保留,新版 server 啟動時會直接讀取既有資料。要換上的版本,可以從官網下載頁「版本」選單列出的版本裡挑選(§4.2)。

    前面提到的「伺服器更新」區段裡有「接收預覽版更新」開關,決定「檢查更新」時要不要把預覽版也算進去,預設是關閉的。跑預覽版的 server(不論是用預覽版架設、還是手動換上預覽版)記得打開這個開關,之後的「檢查更新」才會繼續提供新的預覽版。開關關著時,「檢查更新」提供的是最新的穩定版;正在跑預覽版的話,它的版本號可能比目前低,照上面「下載更新」→「套用更新」的步驟下載並套用,就會換回穩定版。

    更新區的完整說明(含預覽版與穩定版之間的切換、自動驗證沒通過時怎麼處理、更新從哪裡下載)見《管理員手冊》§伺服器更新。


    到這一步,你的 server 已經跑起來且安全。現在可以邀請第一位成員。

    依你 §6.1 選的註冊政策,邀請方式不同:

    • 開放模式:把 server 網址(例如 https://your.domain.com:8443)給對方,對方自行前往註冊。
    • 僅限邀請:進入設定 → 註冊管理 → 邀請碼區,建立一組邀請碼。建立時可以設定最大使用次數(0 = 無限制)與過期時間(0 = 永不過期)。把 server 網址加上邀請碼一併給對方。
    • 電子郵件驗證:把 server 網址給對方即可。對方在註冊時會收到驗證信,點信中連結後帳號才會啟用。
    • 關閉模式:先切回上述任一可註冊模式,邀請完再切回關閉。

    對方完成註冊後會以 member 身分加入。如果你想把對方也升為 admin,重複 §6.4 流程即可。

    至此,從零到第一位成員加入的全部必要步驟完成。


    接下來的進階設定都收在《管理員手冊》中,可以依需要查閱:

    想了解使用者端如何操作 HakoSpace,請見《使用者指南》。