mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-10-14 21:07:40 +00:00
部署方式:服务器不再接收源码、不执行构建,改为本地构建成品后交付
- 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 运维手册(部署/回滚/密钥轮换/每日巡检/证书/排查)
64 lines
1.1 KiB
Plaintext
64 lines
1.1 KiB
Plaintext
# ============================================
|
|
# FastapiAdmin .dockerignore
|
|
# 用于优化 Docker 构建上下文,提升构建速度
|
|
# ============================================
|
|
|
|
# Python 缓存
|
|
__pycache__
|
|
*.pyc
|
|
*.pyo
|
|
*.pyd
|
|
.pytest_cache
|
|
.mypy_cache
|
|
.ruff_cache
|
|
|
|
# 虚拟环境
|
|
venv
|
|
.venv
|
|
# 环境变量文件:必须排除所有真实密钥文件(.env 只能匹配到名为 .env 的文件,
|
|
# 匹配不到 .env.prod / .env.dev / .env.test —— 它们含真实口令与 API Key)
|
|
.env
|
|
**/.env
|
|
**/.env.*
|
|
!**/.env.example
|
|
|
|
# 编辑器/IDE
|
|
.vscode
|
|
.idea
|
|
*.swp
|
|
*.swo
|
|
|
|
# 操作系统
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# 版本控制
|
|
.git
|
|
.gitignore
|
|
.gitattributes
|
|
|
|
# 日志
|
|
logs
|
|
*.log
|
|
|
|
# 数据库
|
|
*.db
|
|
*.sqlite3
|
|
|
|
# 前端工程(后端镜像不需要)
|
|
frontend
|
|
|
|
# 部署脚本
|
|
deploy.sh
|
|
deploy.bat
|
|
|
|
# 文档
|
|
README.md
|
|
README.en.md
|
|
LICENSE
|
|
|
|
# 数据库迁移(构建镜像时不包含,启动时动态执行)
|
|
# 取消注释以加速构建:backend/alembic/versions
|
|
# 用户上传文件(本地存储源根目录)不进镜像;static/image、static/swagger 是程序资源必须保留
|
|
backend/static/upload
|