指南
Docker 自架
在你自己的基礎設施上執行社群版。
社群版(AGPL-3.0)是一個完整的聊天平台,你可以在任何能執行 Docker 的地方執行它。企業版附加元件位於一個獨立的私有儲存庫中,由授權金鑰保護。
前置條件
- Docker 24+ 與 docker compose v2
- 最低 2 vCPU、4 GB 記憶體(建議 8 GB)
- 一個指向你伺服器的網域(用於 TLS)
安裝
git clone https://github.com/singlink/singlink
cd singlink
cp .env.example .env
# edit .env: AUTH_SECRET, DATABASE_URL, REDIS_URL, S3_*
docker compose up -d預設情況下,這會啟動 Postgres(帶 pgvector)、Redis、MinIO、web、ws 和 worker。 執行 docker compose ps 來確認全部五個容器都處於健康狀態。
初始設定
docker compose exec web pnpm db:migrate deploy
docker compose exec web pnpm db:seed # optional demo tenant反向代理
在前面放一個 nginx(或 Caddy)。/api/* 和 /v1/ws 都需要 打到同一個來源以共享 cookie。WS endpoint 需要 upgrade 標頭:
location /v1/ws {
proxy_pass http://ws:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400s;
}備份
- Postgres —— 每天
pg_dump;它包含除 S3 附件 以外的所有內容 - S3 / MinIO —— 使用儲存桶版本控制或
rclone sync到另一個區域 - Redis —— 暫時性(佇列),無需備份;工作會在重啟時重放
升級
git fetch && git checkout v0.x.y
docker compose pull
docker compose up -d
docker compose exec web pnpm db:migrate deploy遷移是向前相容的;我們不會在沒有大版本號升級的情況下,用破壞性的 schema 變更破壞一個正在執行的實例。