部署 Center
简体中文 | English
Center 支持在 Linux 上使用 Docker Engine 和 Docker Compose 运行。官方镜像提供 linux/amd64 和 linux/arm64,发布门禁在 512 MiB 内存限制下验证 Center。
普通部署
这种方式把 8080 端口发布到主机,适合直接访问或连接主机上已有的反向代理。
mkdir ipchronicle
cd ipchronicle
curl --proto '=https' --tlsv1.2 -fLO \
"https://github.com/ipchronicle/ipchronicle/releases/latest/download/compose.yaml"
curl --proto '=https' --tlsv1.2 -fL \
"https://github.com/ipchronicle/ipchronicle/releases/latest/download/default.env.example" \
-o .env
docker compose up -d浏览器打开 http://服务器地址:8080。默认登录账号为 admin / admin,可以在 账户页面修改用户名和密码。
compose.yaml 示例:
services:
center:
image: ghcr.io/ipchronicle/ipchronicle-center:latest
restart: unless-stopped
environment:
IPCHRONICLE_ADMIN_USERNAME: ${IPCHRONICLE_ADMIN_USERNAME:-admin}
IPCHRONICLE_ADMIN_PASSWORD: ${IPCHRONICLE_ADMIN_PASSWORD:-admin}
ports:
- "${IPCHRONICLE_HTTP_PORT:-8080}:8080"
volumes:
- ./data/config:/var/lib/ipchronicle/config
- ./data/history:/var/lib/ipchronicle/history
- ./data/logs:/var/lib/ipchronicle/logs.env 示例:
IPCHRONICLE_HTTP_PORT=8080
IPCHRONICLE_ADMIN_USERNAME=admin
IPCHRONICLE_ADMIN_PASSWORD=admin
CLOUDFLARE_TUNNEL_TOKEN=启动用户名和密码只在 config.db 中还没有管理员账户时生效。
Cloudflare Tunnel
在 Cloudflare Zero Trust 创建 Tunnel,把 Public Hostname 的服务地址设置为 http://center:8080。随后下载 Tunnel 版本的 Compose,在 .env 中填写 token:
mkdir ipchronicle
cd ipchronicle
curl --proto '=https' --tlsv1.2 -fL \
"https://github.com/ipchronicle/ipchronicle/releases/latest/download/compose.cloudflare-tunnel.yaml" \
-o compose.yaml
curl --proto '=https' --tlsv1.2 -fL \
"https://github.com/ipchronicle/ipchronicle/releases/latest/download/default.env.example" \
-o .env
docker compose up -dCLOUDFLARE_TUNNEL_TOKEN=你的_Tunnel_TokenTunnel 版本的 compose.yaml 示例:
services:
center:
image: ghcr.io/ipchronicle/ipchronicle-center:latest
restart: unless-stopped
environment:
IPCHRONICLE_ADMIN_USERNAME: ${IPCHRONICLE_ADMIN_USERNAME:-admin}
IPCHRONICLE_ADMIN_PASSWORD: ${IPCHRONICLE_ADMIN_PASSWORD:-admin}
volumes:
- ./data/config:/var/lib/ipchronicle/config
- ./data/history:/var/lib/ipchronicle/history
- ./data/logs:/var/lib/ipchronicle/logs
networks:
- ipchronicle_network
cftunnel:
image: cloudflare/cloudflared:latest
restart: unless-stopped
environment:
TUNNEL_TOKEN: ${CLOUDFLARE_TUNNEL_TOKEN:?CLOUDFLARE_TUNNEL_TOKEN is required}
command:
- tunnel
- --no-autoupdate
- run
networks:
- ipchronicle_network
networks:
ipchronicle_network:
name: ipchronicle_network该配置创建名为 ipchronicle_network 的 Docker 网络,Center 不向主机发布端口。
数据目录
两种部署都把持久数据保存在安装目录下:
./data/config:config.db和master.key;./data/history:history.db;./data/logs:独立的运维日志logs.db,可按日志保留策略清理。
master.key 用于解密代理和通知凭据,必须与对应的 config.db 一起保存。
反向代理与 TLS
IPChronicle 不申请 TLS 证书,也不修改反向代理。普通部署可以连接 Nginx、Caddy 或其他反向代理。代理需要转发原始主机名、客户端地址和协议,并允许 /api/v1/agent/sync/ 使用 WebSocket Upgrade。
最小 Nginx 配置:
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}外部访问地址在 设置 > 系统 中管理。自动模式采用当前浏览器来源,自定义值 用于 Agent 安装命令和通知链接。HTTP 可以使用,界面会显示安全提示。
源码示例
可以查看主分支中的 compose.yaml、 compose.cloudflare-tunnel.yaml 和 .env.example。 主分支可能先于下一个稳定版发生变化,实际部署命令下载当前 Latest Release 的文件。