指南
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 变更破坏一个正在运行的实例。