基于 FastAPI + Vue3 + TypeScript 的企业级全栈底座:类型共享、权限完整、三端同源
简体中文 | English
Web 端
移动端(H5 / 小程序 / App 同一套代码)
三端共享同一套品牌 Token:Logo、主色、圆角、间距、深色层级与危险操作语义保持一致。
| 你需要的 | FastapiAdmin | Django Admin | 纯前端模板 |
|---|---|---|---|
| 🎯 开箱即用的后台系统 | ✅ | ❌ 只有 UI | |
| ⚡ FastAPI 异步高性能后端 | ✅ | ❌ 同步为主 | ❌ 无后端 |
| 🔐 RBAC 菜单/按钮/数据三级权限 | ✅ | ❌ 基础 | ❌ |
| 🤖 代码生成器(选表 → 出前后端代码) | ✅ | ❌ | ❌ |
| 📱 移动端(H5 + 小程序)一体 | ✅ | ❌ | ❌ |
| 🐳 Docker 一键部署(含 Nginx + SSL) | ✅ | ❌ | ❌ |
👉 详细技术选型对比:为什么选择 FastapiAdmin?
- 需要在 1–4 周内交付可用的企业后台、运营系统或客户项目;
- 团队希望 前后端类型共享,减少接口联调与重复建模;
- 同一业务要同时覆盖 Web 管理端 + 移动端 / 小程序;
- 需要代码生成、RBAC、审计日志、定时任务等“底座能力”,而不是从零搭。
- 需要完整 IM(文件、撤回、已读回执、多端同步)的场景;
- 一开始就要求多实例水平扩展的实时聊天 / 调度场景(当前按单实例设计)。
| 端 | 地址 | 账号 |
|---|---|---|
| 💻 Web 端 | service.fastapiadmin.com/web | admin / 123456 |
| 📱 移动端 | service.fastapiadmin.com/app | admin / 123456 |
| 📖 官方文档 | service.fastapiadmin.com | 无需登录 |
# 1. 克隆
git clone https://gitee.com/fastapiadmin/FastapiAdmin.git
# 2. 配置环境
cp backend/env/.env.example backend/env/.env.dev
cp frontend/web/.env.development.example frontend/web/.env.development
# 3. 启动后端(首次自动建表 + 初始化数据)
cd backend && uv sync && uv run main.py run --env=dev
# 4. 启动前端
cd ../frontend/web && pnpm install && pnpm run dev
# ✅ 浏览器打开 http://127.0.0.1:5173,用 admin/123456 登录首次启动会自动建表并写入演示数据;后端默认
8001,前端默认5173。生产环境请使用 Alembic 迁移与独立密钥。
| 环境要求 | |
|---|---|
| Python ≥ 3.12 | Node.js ≥ 20.0 + pnpm |
| MySQL 8.0+ / PostgreSQL 14+ | Redis 6.x / 7.x |
cp docker/.env.example docker/.env # 填写 MySQL / Redis 密码
./deploy.sh # 自动构建镜像并启动全栈(含 Nginx + SSL)端口、SSL 证书、前端构建等细节见 Docker 部署文档。
FastapiAdmin/ # Monorepo 全栈工程
├─ backend/ # FastAPI 后端(Pydantic 2.0 + SQLAlchemy + Alembic)
├─ frontend/
│ ├── web/ # Vue3 Web 前端(Element Plus + TypeScript)
│ ├── app/ # UniApp 移动端(H5 + 小程序 + App)
│ └── docs/ # VitePress 文档网站
├─ docker/ # Docker Compose 一键部署(Nginx + SSL)
├─ deploy.sh # 一键部署脚本
└─ LICENSE # MIT 开源协议
| 层 | 技术 |
|---|---|
| 后端 | FastAPI · Pydantic 2 · SQLAlchemy 2 · Alembic · Redis |
| Web | Vue 3 · TypeScript · Vite · Element Plus · Pinia · Tailwind |
| 移动端 | UniApp · Vue 3 · Wot Design Uni |
| AI | Agno · 可切换模型供应商 |
| 部署 | Docker Compose · Nginx · SSL |
200+ REST 接口 · MySQL / PostgreSQL / SQLite 三方言 · SFTP / S3 / OSS / COS / OBS 五种存储协议 ·
ENABLED_MODULES一行开关裁剪模块
| 模块 | 包含能力 |
|---|---|
| 📊 仪表盘 | 工作台、数据分析 |
| ⚙️ 系统管理 | 用户 / 角色 / 菜单 / 部门 / 岗位 / 字典 / 参数 / 公告 / 工单 / 版本 |
| 👀 监控管理 | 在线用户 / 服务器监控 / 缓存监控 |
| 📝 日志管理 | 操作日志审计 |
| 🧰 开发工具 | 接口文档 |
| 模块 | 包含能力 | 裁剪开关 |
|---|---|---|
| 🧩 任务管理 | 定时任务调度 + 可视化工作流编排(内置业务节点) | task |
| 🔧 代码生成器 | 选表 → 生成前后端全量代码 | generator |
| 📁 数据存储 | 统一文件 / 对象存储(SFTP / S3 / OSS / COS / OBS) | storage |
| 🤖 AI 对话 | 基于 Agno 的智能体对话 | ai |
| 💬 内部聊天 | 系统内用户纯文字私聊 / 群聊(WebSocket 实时推送 + 未读角标) | chat |
扩展模块可通过 backend/app/config/setting.py 中的 ENABLED_MODULES 按需启用 / 停用——移除列表项即可,无需删除任何代码或菜单,对应的 REST 接口、WebSocket 端点与初始化逻辑将自动不加载:
# 例如:停用内部聊天与 AI 对话,保留其余扩展模块
ENABLED_MODULES = ["generator", "task", "storage"]- 聊天边界:内部聊天定位为轻量内部沟通,仅支持纯文字消息,不含文件传输、撤回、已读回执、多端同步等 IM 能力;如有强 IM 需求,请对接企业微信 / 钉钉 / 飞书等成熟产品。随时可在
ENABLED_MODULES中移除chat停用。 - 单实例部署:实时功能(内部聊天 WebSocket、定时任务调度器)基于单实例内存连接与本地调度实现,请以单实例方式部署。如需水平扩展,请自行引入 Redis Pub/Sub 或消息队列。
- 密钥安全:所有第三方密钥(AI、云存储等)请配置在
backend/env/.env.*环境变量中,切勿提交到仓库或写入数据库。 - 数据库迁移:正式环境请使用 Alembic 迁移(
uv run alembic upgrade head)管理表结构变更,create_all仅用于首次初始化的兜底。
| 登录 + 拼图验证 | 代码生成 | AI 助手 |
|---|---|---|
![]() |
![]() |
![]() |
截图来自当前版本:浅色主题、真实接口数据与最新品牌视觉。
Q:启动后登录提示验证码错误?
A:确认后端 Redis 正常,并完成页面拼图验证;开发环境账号为 admin / 123456。
Q:可以只用 Web 端吗?
A:可以。frontend/web 可独立启动;移动端工程独立,不影响 Web。
Q:如何裁剪模块?
A:修改 backend/app/config/setting.py 的 ENABLED_MODULES,接口与初始化逻辑会自动卸载。
Q:生产环境数据库怎么初始化?
A:使用 uv run alembic upgrade head,不要依赖 create_all。
欢迎提交 Issue / PR!详见 贡献指南。
感谢以下所有给 FastapiAdmin 贡献过代码的 开发者。
如果你觉得项目有用,请给一个 ⭐️ Star 支持!
- 后端:FastAPI · Pydantic · SQLAlchemy · APScheduler
- 前端:Vue3 · TypeScript · Vite · Element Plus
- 移动端:UniApp · Wot Design Uni
- AI:Agno









