Skip to content

生产部署

构建

bash
make build

产出:

  • bin/server — Go 二进制文件
  • web/dist/ — 前端静态资源

部署检查清单

  • [ ] 修改 config.yaml 中的 jwt.secret 为安全随机值
  • [ ] 设置 server.moderelease
  • [ ] 使用 MySQL 或 PostgreSQL 替代 SQLite
  • [ ] 配置反向代理(Nginx/Caddy)启用 HTTPS
  • [ ] 敏感配置使用环境变量

生产配置示例

yaml
app:
    name: My App
server:
    host: 0.0.0.0
    port: 8080
    mode: release           # ← 重要
database:
    driver: postgres
    dsn: host=db.example.com user=app password=${DB_PASS} dbname=myapp port=5432 sslmode=require
redis:
    enabled: true
    addr: redis.example.com:6379
    password: ${REDIS_PASS}
jwt:
    secret: ${JWT_SECRET}   # ← 使用环境变量
    expire: 24

DSN 中的环境变量会在运行时通过 os.ExpandEnv 展开。

反向代理(Nginx)

nginx
server {
    listen 443 ssl;
    server_name app.example.com;

    ssl_certificate     /etc/ssl/app.crt;
    ssl_certificate_key /etc/ssl/app.key;

    location /api/ {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location / {
        root /path/to/web/dist;
        try_files $uri $uri/ /index.html;
    }
}