Skip to content

部署 Center

简体中文 | English

Center 支持在 Linux 上使用 Docker Engine 和 Docker Compose 运行。官方镜像提供 linux/amd64linux/arm64,发布门禁在 512 MiB 内存限制下验证 Center。

普通部署

这种方式把 8080 端口发布到主机,适合直接访问或连接主机上已有的反向代理。

sh
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 示例:

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 示例:

dotenv
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:

sh
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 -d
dotenv
CLOUDFLARE_TUNNEL_TOKEN=你的_Tunnel_Token

Tunnel 版本的 compose.yaml 示例:

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/configconfig.dbmaster.key
  • ./data/historyhistory.db
  • ./data/logs:独立的运维日志 logs.db,可按日志保留策略清理。

master.key 用于解密代理和通知凭据,必须与对应的 config.db 一起保存。

反向代理与 TLS

IPChronicle 不申请 TLS 证书,也不修改反向代理。普通部署可以连接 Nginx、Caddy 或其他反向代理。代理需要转发原始主机名、客户端地址和协议,并允许 /api/v1/agent/sync/ 使用 WebSocket Upgrade。

最小 Nginx 配置:

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.yamlcompose.cloudflare-tunnel.yaml.env.example。 主分支可能先于下一个稳定版发生变化,实际部署命令下载当前 Latest Release 的文件。

基于 AGPL-3.0-only 发布