# ============================================================================ # 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 # ---------- 安全相关(生产必填,禁止留空或用示例值)---------- # 令牌签名密钥:openssl rand -hex 32 # 注意:更换该值会使所有已签发令牌失效(用户需重新登录) SECRET_KEY=change_me_generate_with_openssl_rand_hex_32 # 落库敏感数据(存储源口令、接口密钥)的加密主密钥:openssl rand -hex 32 # 留空时由 SECRET_KEY 派生;轮换步骤见 DEPLOYMENT.md 第 3 节 DATA_ENCRYPTION_KEY= # 轮换前的旧主密钥(逗号分隔),仅用于解密历史密文,验证后可清空 DATA_ENCRYPTION_OLD_KEYS= # 生产跨域白名单(逗号分隔);不配置时不再回落通配 PROD_CORS_ORIGINS=https://service.fastapiadmin.com # 只信任该网段内的反向代理传来的 X-Forwarded-*(切勿使用 *) FORWARDED_ALLOW_IPS=10.255.178.0/24 # 演示模式:true 时禁止写操作;生产需要可写请改为 false DEMO_ENABLE=true # ---------- Nginx ---------- HTTP_PORT=80 HTTPS_PORT=443 # nginx 镜像版本(由 docker-compose.override.yaml 读取;留空用 1.27-alpine) NGINX_TAG=1.27-alpine # ---------- 项目 ---------- PROJECT_NAME=FastapiAdmin