Skip to content

部署指南

HealthGuard 设计为可私有化部署,数据完全存储在你的基础设施上。

前提条件

方式一:Docker Compose 部署(推荐)

1. 下载部署模板

bash
# 克隆主项目
git clone https://github.com/Claud-Lu/healthguard.git
cd healthguard/deploy

2. 配置环境变量

复制示例配置文件并修改:

bash
cp .env.example .env

关键配置项:

变量说明默认值
COLLECTOR_PORTCollector 服务端口3100
DASHBOARD_PORTDashboard 服务端口5175
DATABASE_URL数据库连接字符串sqlite://./data/healthguard.db
JWT_SECRET用户认证密钥必填,请修改为随机字符串

3. 启动服务

bash
docker compose up -d

启动后访问:

服务地址
Dashboardhttp://localhost:5175
Collector APIhttp://localhost:3100

4. 更新与重启

bash
# 拉取最新镜像
docker compose pull

# 重启服务
docker compose up -d

方式二:本地源码运行

适用于二次开发或调试:

bash
git clone https://github.com/Claud-Lu/healthguard.git
cd healthguard
yarn install
yarn dev:local

详细步骤请参考 快速开始

数据库配置

SQLite(默认,适合单机)

无需额外配置,数据保存在容器内的 ./data/healthguard.db

建议挂载数据卷以持久化:

yaml
volumes:
  - ./data:/app/data

PostgreSQL(生产推荐)

修改 .env

bash
DATABASE_URL=postgresql://user:password@postgres:5432/healthguard

并在 docker-compose.yml 中添加 PostgreSQL 服务:

yaml
services:
  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: healthguard
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:

HTTPS 配置

使用 Nginx 反向代理

nginx
server {
  listen 443 ssl http2;
  server_name healthguard.your-domain.com;

  ssl_certificate /path/to/cert.pem;
  ssl_certificate_key /path/to/key.pem;

  location / {
    proxy_pass http://localhost:5175;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }

  location /api/ {
    proxy_pass http://localhost:3100;
    proxy_set_header Host $host;
  }
}

使用 Cloudflare Tunnel(零配置 HTTPS)

bash
cloudflared tunnel --no-autoupdate run --token <YOUR_TOKEN>

备份策略

  • SQLite:定期备份 .db 文件
  • PostgreSQL:使用 pg_dump 或设置 WAL 归档

常见问题

Q: 如何查看日志?

bash
docker compose logs -f collector
docker compose logs -f dashboard

Q: 如何重置数据?

bash
docker compose down -v
rm -rf ./data

Q: Collector 端口冲突? 修改 .env 中的 COLLECTOR_PORT,然后 docker compose up -d

Released under the MIT License.