自托管

使用 Docker Compose 部署 UnionUser(Keygate 引擎)与 PostgreSQL:环境变量、升级、备份与许可说明。

自托管需要购买商业授权。源码不公开;你会得到容器镜像与部署支持。

环境要求

  • Linux 服务器,2 vCPU / 2 GB 内存起步
  • Docker Engine 24+ 与 Docker Compose 2.24+
  • PostgreSQL 16+(可用 Compose 内置实例)
  • 一个域名与 HTTPS 证书
  • 可选:S3 兼容对象存储,用于更新产物

最小 Compose

docker-compose.yml
services:
  keygate:
    image: <your-licensed-image>
    ports:
      - "9000:9000"
    env_file: .env
    environment:
      PORT: "9000"
      ENVIRONMENT: production
      BASE_URL: https://licenses.example.com
      DATABASE_URL: postgres://keygate:keygate@postgres:5432/keygate?sslmode=disable
      JWT_SECRET: ${JWT_SECRET:?set me}
      LICENSE_SIGNING_KEY: ${LICENSE_SIGNING_KEY:?set me}
      ADMIN_EMAILS: admin@example.com
    depends_on:
      postgres:
        condition: service_healthy
    restart: unless-stopped

  postgres:
    image: postgres:18-alpine
    environment:
      POSTGRES_USER: keygate
      POSTGRES_PASSWORD: keygate
      POSTGRES_DB: keygate
    volumes:
      - pgdata:/var/lib/postgresql
    restart: unless-stopped

volumes:
  pgdata:

关键环境变量

变量作用
BASE_URL对外访问地址,用于邮件链接与发布源 URL
DATABASE_URLPostgreSQL 连接串
JWT_SECRET会话签名密钥,长度足够且保密
LICENSE_SIGNING_KEY许可证 Ed25519 私钥;更换会导致旧 token 失效
ADMIN_EMAILS管理员邮箱,逗号分隔
SMTP_*验证码与通知邮件
STRIPE_*支付与 webhook(可选)
REDIS_URL可选,用于限流与缓存

升级与备份

  • 升级前备份 PostgreSQL 与 LICENSE_SIGNING_KEY;私钥丢失无法恢复已签发 token。
  • 镜像按版本固定 tag,不要使用浮动 latest。
  • 先在小规模副本验证迁移,再切换生产。
  • 定期导出授权与审计数据,保留到合规要求的期限。

许可与署名

AGPL v3 署名 产品界面必须保留 “Powered by Keygate”。自托管不等于获得白标或转售权;如需白标,请同时取得上游商业授权。

需要自托管报价或安全评审材料,请联系 sales@unionuser.com。