Full-stack rapid development platform powered by FastAPI + Vue3 + TypeScript. Web, H5, and Mini Program — all in one project.
English | 简体中文
Web
Mobile (H5 / Mini Program / App from one codebase)
| You Need | FastapiAdmin | Django Admin | Frontend-Only |
|---|---|---|---|
| 🎯 Ready-to-use admin system | ✅ | ❌ UI only | |
| ⚡ FastAPI async high-performance backend | ✅ | ❌ Sync-first | ❌ No backend |
| 🔐 RBAC menu/button/data level permissions | ✅ | ❌ Basic | ❌ |
| 🤖 Code generator (table → full CRUD) | ✅ | ❌ | ❌ |
| 📱 Mobile (H5 + Mini Program) included | ✅ | ❌ | ❌ |
| 🐳 Docker one-click deploy (Nginx + SSL) | ✅ | ❌ | ❌ |
👉 Full comparison: Why FastapiAdmin?
| URL | Account | |
|---|---|---|
| 💻 Web | service.fastapiadmin.com/web | admin / 123456 |
| 📱 Mobile | service.fastapiadmin.com/app | admin / 123456 |
| 📖 Official Docs | service.fastapiadmin.com | No login |
# 1. Clone
git clone https://github.com/fastapiadmin/FastapiAdmin.git
# 2. Configure environments
cp backend/env/.env.example backend/env/.env.dev
cp frontend/web/.env.development.example frontend/web/.env.development
# 3. Start backend (auto-creates tables + seed data on first run)
cd backend && uv sync && uv run main.py run --env=dev
# 4. Start frontend
cd ../frontend/web && pnpm install && pnpm run dev
# ✅ Open http://127.0.0.1:5173, login with admin/123456| Requirements | |
|---|---|
| Python ≥ 3.12 | Node.js ≥ 20 + pnpm |
| MySQL 8.0+ / PostgreSQL 14+ | Redis 6.x / 7.x |
cp docker/.env.example docker/.env # Fill in MySQL / Redis passwords
./deploy.sh # Build images and start the full stack (Nginx + SSL included)For ports, SSL certificates and frontend builds, see the Docker deployment guide.
FastapiAdmin/ # Monorepo full-stack project
├─ backend/ # FastAPI backend (Pydantic 2.0 + SQLAlchemy + Alembic)
├─ frontend/
│ ├── web/ # Vue3 Web (Element Plus + TypeScript)
│ ├── app/ # UniApp Mobile (H5 + Mini Program + App)
│ └── docs/ # VitePress documentation
├─ docker/ # Docker Compose deploy (Nginx + SSL)
├─ deploy.sh # One-click deploy script
└─ LICENSE # MIT
200+ REST endpoints · MySQL / PostgreSQL / SQLite · SFTP / S3 / OSS / COS / OBS storage adapters · Trim modules with a single
ENABLED_MODULESentry
| Module | Capabilities |
|---|---|
| 📊 Dashboard | Workbench, Analytics |
| ⚙️ System Management | Users, Roles, Menus, Departments, Positions, Dicts, Config, Notices, Tickets, Versions |
| 👀 Monitoring | Online users, Server monitoring, Cache monitoring |
| 📝 Logs | Operation audit |
| 🧰 Dev Tools | API Docs |
| Module | Capabilities | Toggle |
|---|---|---|
| 🧩 Task Management | Scheduled tasks + visual workflow orchestration (built-in business nodes) | task |
| 🔧 Code Generator | Table → full frontend/backend code | generator |
| 📁 Storage | Unified file / object storage (SFTP / S3 / OSS / COS / OBS) | storage |
| 🤖 AI Chat | Agno-powered agent conversations | ai |
| 💬 Internal Chat | Text-only private / group chat between users (WebSocket real-time push + unread badge) | chat |
Extension modules can be enabled/disabled on demand via ENABLED_MODULES in backend/app/config/setting.py — just remove an item from the list; no code or menu deletion needed. The corresponding REST endpoints, WebSocket endpoints and initialization logic will not be loaded automatically:
# e.g. Disable internal chat and AI assistant, keep the rest
ENABLED_MODULES = ["generator", "task", "storage"]- Chat scope: Internal chat is positioned as lightweight internal communication — text-only messages. No file transfer, recall, read receipts, or multi-device sync (IM features). For strong IM needs, integrate mature products such as WeCom / DingTalk / Feishu. It can be disabled anytime by removing
chatfromENABLED_MODULES. - Single-instance deployment: Real-time features (internal chat WebSocket, scheduled task scheduler) rely on in-memory connections and local scheduling within a single instance — please deploy as a single instance. For horizontal scaling, integrate Redis Pub/Sub or a message queue yourself.
- Key security: Configure all third-party keys (AI, cloud storage, etc.) in the
backend/env/.env.*environment variables. Never commit them to the repository or store them in the database. - Database migrations: Manage schema changes with Alembic migrations in production (
uv run alembic upgrade head);create_allis only a fallback for first-time initialization.
| Login | Code Generator | AI Assistant |
|---|---|---|
![]() |
![]() |
![]() |
- 🌐 Official Docs — Full guides, architecture, custom development
- 📁 Sub-project READMEs: backend · web · mobile · Docker
Issues and PRs are welcome! See Contributing Guide.
Thank you to all contributors who have contributed code to FastapiAdmin.
If you find this project useful, please give it a ⭐️ Star!
- Backend: FastAPI · Pydantic · SQLAlchemy · APScheduler
- Frontend: Vue3 · TypeScript · Vite · Element Plus
- Mobile: UniApp · Wot Design Uni
- AI: Agno









