eaa21585de
- pets-be/Dockerfile:多阶段单镜像,node 构建管理后台 → Go 编译内嵌 (go:embed)→ alpine 运行。一个容器同时提供 /api 与 /admin,50MB, 非 root、内置 tzdata 保证按东八区计算每日任务 - deploy/docker-compose.yml:只有一个 app 容器,MySQL/MinIO 用外部现成的, 容器内 9090 映射宿主机 4000 - deploy/.env.example:全部配置项(MySQL/MinIO/微信/AI/管理员) - .gitea/workflows/deploy.yml:push 或合并到 main 触发,runner 构建镜像 → save 打包 → scp 到服务器 → docker load + compose up -d → 健康检查 - 修复容器化阻塞问题:config.Load 原本强制要求 config.yaml(而它不进 git), 且 viper 未登记默认值的 key 环境变量绑不上。现补全默认值并把配置文件 改为可选,纯 .env 即可启动 - 服务端口统一改为 9090 验证:镜像构建通过;本地起完整栈 ping/admin/登录/建表 seed/图片上传全通; 对接真实 MySQL 9.4(sundynix_pet)建表 19 张并 seed 成功。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
44 lines
1.3 KiB
YAML
44 lines
1.3 KiB
YAML
server:
|
|
port: 9090
|
|
mode: debug # debug | release
|
|
|
|
mysql:
|
|
host: 127.0.0.1
|
|
port: 3306
|
|
user: root
|
|
password: root
|
|
database: pets
|
|
charset: utf8mb4
|
|
|
|
minio:
|
|
endpoint: 127.0.0.1:9000
|
|
access_key: sundynix
|
|
secret_key: sundynix
|
|
bucket: pets
|
|
use_ssl: false
|
|
public_base_url: http://127.0.0.1:9000 # 拼接可访问的对象 URL
|
|
|
|
jwt:
|
|
secret: change-me-to-a-long-random-string # 生产用 PETS_JWT_SECRET 覆盖
|
|
|
|
wechat:
|
|
app_id: your-wechat-app-id
|
|
app_secret: your-wechat-app-secret # 敏感凭证:生产用 PETS_WECHAT_APP_SECRET 环境变量覆盖
|
|
|
|
auth:
|
|
dev_login: true # 仍保留 Mock 登录便于本地 curl 调试;上线可置 false 只留微信登录
|
|
|
|
admin:
|
|
username: sundynix
|
|
password: change-me # 启动时若无同名管理员则 seed 此账号
|
|
|
|
ai:
|
|
enabled: false # false 时全部走规则化文案(不烧 token);接大模型改 true
|
|
provider: openai # openai 兼容协议,适配 DeepSeek/Qwen(兼容模式)/Gemini(兼容端点)等
|
|
base_url: https://api.deepseek.com # 换供应商只改这里 + model
|
|
api_key: your-ai-api-key # 敏感:生产用 PETS_AI_API_KEY 环境变量覆盖
|
|
model: deepseek-chat
|
|
temperature: 0.6
|
|
max_tokens: 1024
|
|
timeout_sec: 30
|