Self-Hosted 自部署
docker compose 模板、PostgreSQL 配置、Caddy 反代示例、首次管理员。
Self-Hosted 适合需要私有化、合规、内网部署的团队。底层用 PostgreSQL,支持任意用户数。
前置条件
- Linux 服务器(Ubuntu 22.04+ / Debian 12+ 推荐)
- Docker 24+ 与 Docker Compose v2
- 一个绑定到该服务器的域名(用于 HTTPS)
- 至少 2 vCPU / 4 GB RAM / 20 GB 磁盘
1. 下载部署模板
git clone https://github.com/niuniu-dev/niuniu.git
cd niuniu/relay/deploy
cp server.yaml.example server.yaml
编辑 server.yaml:
auth:
enabled: true
users:
- username: admin
password: 设置你的强密码
role: admin
storage:
driver: postgres
postgres:
dsn: "postgres://niuniu:niuniu_pwd@db:5432/niuniu_server?sslmode=disable"
2. 启动栈
docker compose up -d
第一次启动会自动初始化数据库 schema。
3. 配置 Caddy
Caddyfile:
your-domain.com {
reverse_proxy niuniu-server:3000
}
Caddy 会自动签发 HTTPS 证书。
4. 验证
curl -I https://your-domain.com/api/health
# 期望:HTTP/2 200
打开浏览器访问 https://your-domain.com,用 admin + 你设置的密码登录。
备份
每周用 pg_dump 备份数据库:
docker compose exec db pg_dump -U niuniu niuniu_server | gzip > backup-$(date +%F).sql.gz
留存 4~8 周。
升级
git pull
docker compose pull
docker compose up -d --force-recreate
升级前必备份。