mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-10-15 05:19:17 +00:00
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 运维手册(部署/回滚/密钥轮换/每日巡检/证书/排查)
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
# ============================================================================
|
||||
# MySQL 驱动(DATABASE_TYPE=mysql 时必需)
|
||||
# aiomysql / pymysql:异步与同步连接,分别对应 ASYNC_DB_URI 与 DB_URI
|
||||
# 用法:pip install -r requirements/base.txt -r requirements/db/mysql.txt
|
||||
# ============================================================================
|
||||
aiomysql>=0.2.0 # 异步驱动(ASYNC_DB_URI: mysql+aiomysql://)
|
||||
pymysql==1.2.0 # 同步驱动(DB_URI: mysql+pymysql://,迁移与后台任务用)
|
||||
@@ -0,0 +1,9 @@
|
||||
# ============================================================================
|
||||
# PostgreSQL 驱动(DATABASE_TYPE=postgres 时必需)
|
||||
# asyncpg:异步驱动,对应 ASYNC_DB_URI(postgresql+asyncpg://)
|
||||
# psycopg[binary]:同步驱动(含预编译 libpq),对应 DB_URI(postgresql+psycopg://)
|
||||
# 注意:psycopg[binary] 自带 libpq,无需在系统里额外安装 postgresql 客户端库
|
||||
# 用法:pip install -r requirements/base.txt -r requirements/db/postgres.txt
|
||||
# ============================================================================
|
||||
asyncpg==0.31.0 # 异步驱动
|
||||
psycopg[binary]==3.3.2 # 同步驱动
|
||||
@@ -0,0 +1,6 @@
|
||||
# ============================================================================
|
||||
# SQLite 驱动(DATABASE_TYPE=sqlite 时必需)
|
||||
# 适用于本地开发与单机小规模部署;AINI 的 AI 模块内嵌知识库也复用该驱动
|
||||
# 用法:pip install -r requirements/base.txt -r requirements/db/sqlite.txt
|
||||
# ============================================================================
|
||||
aiosqlite==0.22.1 # 异步驱动(sqlite+aiosqlite:///)
|
||||
Reference in New Issue
Block a user