Files
FastapiAdmin/docker/.env.example
T
zhangtao ce9401196a chore(deploy): 成品部署链路、依赖分组与运维基建
部署方式:服务器不再接收源码、不执行构建,改为本地构建成品后交付
- deploy-artifacts.sh:构建→备份→校验→原子替换,支持回滚、镜像/备份轮转、
  mysql 与 postgres 双变体镜像;后端以 docker save|ssh|docker load 交付
- 依赖分组:requirements/{base,storage}.txt + db/{mysql,postgres,sqlite}.txt,
  镜像按所选数据库只装对应驱动(MySQL 变体 565MB → 521MB)

编排与运行时加固
- compose:MySQL/Redis/backend 端口仅绑 127.0.0.1;密钥(SECRET_KEY、
  DATA_ENCRYPTION_KEY、DATA_ENCRYPTION_OLD_KEYS)、PROD_CORS_ORIGINS、
  FORWARDED_ALLOW_IPS、DEMO_ENABLE 一律由 docker/.env 注入
- Dockerfile:对齐依赖分组、以非 root(uid=1000) 运行;.dockerignore 排除全部真实 .env.*
- nginx:静态资源长缓存、隐藏文件拒绝、接口文档仅内网可访问、放行 ACME http-01 校验路径

工程基建
- 新增 CI:backend(uv sync + ruff + pytest)与 frontend(web type-check+vitest、app type-check)
- 新增 DEPLOYMENT.md 运维手册(部署/回滚/密钥轮换/每日巡检/证书/排查)
2026-10-04 04:26:03 +08:00

45 lines
1.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================================
# Docker 部署环境变量示例
# 用法:cp docker/.env.example docker/.env 然后改成真实值(.env 不会被提交)
# 注意:本文件会被提交到仓库,只放占位符,不要写真实口令
# ============================================================================
# ---------- 数据库(MySQL)----------
MYSQL_ROOT_PASSWORD=change_me_root_password
MYSQL_DATABASE=fastapiadmin
MYSQL_USER=fastapiadmin
MYSQL_PASSWORD=change_me_app_password
MYSQL_PORT=3306
# 说明:compose 把 MySQL 端口绑定在 127.0.0.1(只对本机开放),
# 容器之间通过 app_network 互联,不依赖宿主机端口。
# ---------- Redis ----------
REDIS_PASSWORD=change_me_redis_password
REDIS_PORT=6379
# ---------- 后端 ----------
BACKEND_PORT=8001
# 使用的后端镜像 tag:
# 3.0.0 表示「当前线上版本」(deploy-artifacts.sh 部署时写入)
# mysql-<时间戳> MySQL 驱动变体
# postgres-<时间戳> PostgreSQL 驱动变体(切换数据库时手动指定)
BACKEND_IMAGE_TAG=3.0.0
LOGGER_LEVEL=INFO
# 运行环境,对应 backend/env/.env.{dev,prod}
DEPLOY_ENV=prod
# 数据库类型(仅当使用外部数据库、不靠 compose 注入时才有意义)
# DATABASE_TYPE=mysql
# ---------- Nginx ----------
HTTP_PORT=80
HTTPS_PORT=443
# nginx 镜像版本(由 docker-compose.override.yaml 读取;留空用 1.27-alpine)
NGINX_TAG=1.27-alpine
# ---------- 项目 ----------
PROJECT_NAME=FastapiAdmin
# ---------- 部署方式 ----------
# 健康检查宽限期(秒):容器首次启动需要跑迁移,慢机器上可调大
HEALTHCHECK_START_PERIOD=40s