mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-10-14 05:00:10 +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 运维手册(部署/回滚/密钥轮换/每日巡检/证书/排查)
35 lines
2.1 KiB
Plaintext
35 lines
2.1 KiB
Plaintext
# ============================================================================
|
||
# 核心依赖(与数据库、对象存储无关,任何部署方式都需要)
|
||
# 用法:pip install -r requirements/base.txt -r requirements/db/<你的数据库>.txt
|
||
# ============================================================================
|
||
agno==2.5.8 # AI agent 框架
|
||
aiosqlite==0.22.1 # AI 模块内嵌知识库固定用 sqlite(与主库类型无关),故列入核心
|
||
aiofiles==24.1.0 # 异步文件操作
|
||
alembic==1.18.4 # 数据库迁移
|
||
apscheduler==3.11.0 # 定时任务
|
||
bleach==6.4.0 # HTML 过滤
|
||
click==8.1.7 # 命令行参数解析(typer 依赖)
|
||
croniter==6.2.4 # cron 表达式校验
|
||
fastapi==0.138.2 # Web 框架
|
||
greenlet==3.5.2 # SQLAlchemy 异步必需
|
||
httpx==0.28.1 # HTTP 客户端
|
||
jinja2==3.1.6 # 模板引擎(代码生成)
|
||
loguru==0.7.3 # 日志
|
||
openai==2.46.0 # OpenAI 兼容接口
|
||
openpyxl==3.1.5 # Excel 导入导出
|
||
psutil==7.2.2 # 系统信息采集
|
||
py-ip2region==3.0.4 # IP 归属地离线查询
|
||
pydantic[email]>=2.12.5 # 数据校验 + 邮箱
|
||
pydantic-settings>=2.6.1,<3 # 配置管理
|
||
pyjwt==2.13.0 # 令牌签发校验
|
||
python-multipart==0.0.32 # 表单解析
|
||
redis==7.1.0 # 缓存 / 会话
|
||
rich==15.0.0 # 终端输出美化
|
||
sqlalchemy==2.0.51 # ORM
|
||
sqlglot[rs]==27.8.0 # SQL 解析
|
||
tinycss2==1.5.1 # bleach 依赖
|
||
typer==0.26.7 # CLI 入口(main.py)
|
||
ua-parser==1.0.2 # UA 解析
|
||
uvicorn==0.49.0 # ASGI 服务器
|
||
websockets>=16.0,<17.0 # WebSocket
|