mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-10-14 21:07:40 +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:
+22
-8
@@ -32,11 +32,7 @@ dependencies = [
|
||||
"ua-parser==1.0.2", # 解析 User-Agent 获取 OS/浏览器
|
||||
"uvicorn==0.49.0", # uvicorn web 框架
|
||||
"websockets>=16.0,<17.0", # websocket 通信
|
||||
"aiosqlite==0.22.1",
|
||||
"aiomysql>=0.2.0",
|
||||
"asyncpg==0.31.0",
|
||||
"psycopg[binary]==3.3.2",
|
||||
"pymysql==1.2.0",
|
||||
"aiosqlite==0.22.1", # 内嵌知识库(app/modules/ai/chat)固定使用 sqlite,故列入核心
|
||||
"openai==2.46.0",
|
||||
"pydantic[email]>=2.12.5",
|
||||
"cryptography==50.0.0", # Fernet 对称加密(存储源密码加密)
|
||||
@@ -47,10 +43,28 @@ dependencies = [
|
||||
"cos-python-sdk-v5==1.9.44",
|
||||
]
|
||||
|
||||
# 数据库驱动按需安装:uv sync --extra mysql / --extra postgres / --extra sqlite
|
||||
# 默认(不指定 extra)只装核心依赖,启动时会提示缺少对应驱动
|
||||
[project.optional-dependencies]
|
||||
mysql = ["aiomysql>=0.2.0"]
|
||||
postgres = ["asyncpg==0.31.0"]
|
||||
sqlite = ["aiosqlite==0.22.1"]
|
||||
mysql = [
|
||||
"aiomysql>=0.2.0", # 异步驱动(ASYNC_DB_URI)
|
||||
"pymysql==1.2.0", # 同步驱动(DB_URI)
|
||||
]
|
||||
postgres = [
|
||||
"asyncpg==0.31.0", # 异步驱动(ASYNC_DB_URI)
|
||||
"psycopg[binary]==3.3.2", # 同步驱动(DB_URI,自带 libpq)
|
||||
]
|
||||
sqlite = [
|
||||
"aiosqlite==0.22.1",
|
||||
]
|
||||
# 一个进程同时支持三种库(体积最大,适合本地开发)
|
||||
all-db = [
|
||||
"aiomysql>=0.2.0",
|
||||
"pymysql==1.2.0",
|
||||
"asyncpg==0.31.0",
|
||||
"psycopg[binary]==3.3.2",
|
||||
"aiosqlite==0.22.1",
|
||||
]
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
|
||||
Reference in New Issue
Block a user