跳转到内容

Docker 部署

镜像的公开分发尚未开放,下面的命令在正式版本发布后即可直接使用;<镜像> 届时替换为实际地址。

在一台 Linux 主机上,先准备两个目录:

终端窗口
sudo mkdir -p /srv/gather /srv/gather/data
  • /srv/gather/server.toml —— 配置(见配置项)。
  • /srv/gather/data/ —— 数据目录(SQLite + 媒体文件),唯一需要备份的东西。

配置文件最小示例(/srv/gather/server.toml):

owner_public_key_hex = "<你的 ed25519 公钥 hex>"
server_id = "my-group"
name = "我的小组"
listen = "0.0.0.0:8443"
data_dir = "/data"
public_endpoint = "https://server.example.com"
终端窗口
docker run -d --name gather-server --restart unless-stopped \
-p 8443:8443 \
-v /srv/gather/server.toml:/etc/gather/server.toml:ro \
-v /srv/gather/data:/data \
<镜像> --config /etc/gather/server.toml
  • 镜像默认监听 0.0.0.0:8443,数据目录 /data(已在镜像内预建并归属非 root 用户)。
  • --restart unless-stopped:主机重启后自动拉起。
  • env 也可覆盖任意配置项(如 -e GATHER_SERVER_ID=...),装配顺序为 默认值 ← 配置文件 ← 环境变量。

查看日志与状态:

终端窗口
docker logs -f gather-server
curl -s http://127.0.0.1:8443/openapi.json | head -c 200 # 返回 JSON 即已启动

内网 / 本机调试若希望与主机共享网卡,可改用 --network host(仅 Linux),此时无需 -p,按 listen 直接访问。

注册处是官方提供的身份与目录服务。多数自建小组无需自建注册处,指向官方即可。若你要完全独立运行,可另起一个注册处容器,并让 server 的 registry_url 指向它。

终端窗口
docker run -d --name gather-registry --restart unless-stopped \
-p 18446:18446 \
-v /srv/gather/registry-data:/data \
<注册处镜像>
  • 注册处默认监听 0.0.0.0:18446,数据在 /data。
  • 生产发信需在配置中提供 SMTP(见配置项)。
  • 更新:拉取新镜像后 docker rm -f gather-server 再以相同命令启动;数据在卷 / 绑定目录中,不受影响。
  • 重置现场:停止容器,清空数据目录即可:
终端窗口
docker rm -f gather-server
rm -rf /srv/gather/data && mkdir -p /srv/gather/data