- Blazing Fast — Built on
uvfor near-instant CLI response times - Smart Init — Auto-detects and installs dependencies (
uv sync/pnpm install), auto-installsuvif missing - One-Click Deploy — Deploy the full stack (Backend + Frontend + PostgreSQL + Redis + Nginx SSL) with a single
hohu deploy - Source Build — Build Docker images from your modified source code with
hohu build, then deploy - Database Migrations — Run migrations and seed data via
hohu migrate - Context-Aware — Run commands from any subdirectory via
.hohuproject config - i18n — Full Chinese & English support with automatic system language detection
- Polished UX — Rich-formatted output with interactive prompts via Questionary
hohu-admin is an enterprise-grade full-stack admin management platform built for the AI era. It provides a complete set of production-ready backend infrastructure out of the box — user authentication, RBAC permission control, distributed ID generation, database migration, log monitoring, and API documentation — so developers can focus on business innovation instead of repetitive boilerplate.
- Async High Performance — Full async pipeline (FastAPI + SQLAlchemy 2.0 async + PostgreSQL)
- Distributed Snowflake ID — Time-ordered, high-performance primary keys with automatic
BigInt→ string serialization - RBAC Permission Model — User-Role-Menu based access control with button-level granularity
- Dual Auth Support — OAuth2 form login (Swagger UI) + JSON login (SPA), with Redis token blacklist
- Unified API Response — Consistent
{code, message, data}envelope across all endpoints - Auto Case Conversion — Backend
snake_case↔ FrontendcamelCasevia Pydanticalias_generator
| Project | Description | Tech Stack |
|---|---|---|
| hohu-admin | Backend API | FastAPI, SQLAlchemy 2.0 (async), PostgreSQL, Redis |
| hohu-admin-web | Admin dashboard | Vue 3, NaiveUI, UnoCSS, Pinia, TypeScript |
| hohu-admin-app | Mobile app | uni-app, Vue 3, Wot Design Uni, alova |
# uv (recommended)
uv tool install hohu
# pip
pip install hohu# uv
uv tool upgrade hohu
# pip
pip install --upgrade hohuhohu create my-projectConfirm each component (Backend / Frontend / App) interactively. Defaults to hohu-admin if no name is given.
cd my-project
hohu initAutomatically detects project config and installs all dependencies.
Windows Users: If
hohu initfails withEPERM: operation not permitted, symlink, try the following:
- Enable Developer Mode in Windows Settings: Settings → Update & Security → For developers → Developer Mode. This allows symlink creation without admin privileges.
- Run your terminal as Administrator.
- Check your antivirus software (e.g., 360, Huorong) — some may block symlink creation. Try adding the project directory to the exclusion list or temporarily disabling real-time protection.
hohu langhohu dev launches all services in a single terminal with merged, color-coded log output.
hohu dev # Start all components
hohu dev -o be # Backend only
hohu dev -s app # Frontend + Backend, skip App
hohu dev -t mp # App in WeChat Mini Program mode| Option | Short | Description | Default |
|---|---|---|---|
--app-target |
-t |
App runtime: h5 / mp / app |
h5 |
--only |
-o |
Only start specified components (repeatable) | all |
--skip |
-s |
Skip specified components (repeatable) | none |
Component aliases (case-insensitive): be / backend, fe / frontend, app
| Prefix | Color | Service |
|---|---|---|
[Backend] |
green | FastAPI |
[Frontend] |
cyan | Vite / pnpm |
[App] |
yellow | Uni-app |
Press Ctrl+C for graceful shutdown — all child processes are terminated cleanly.
Build Docker images from local source code. After building, run hohu deploy to deploy with the locally built images.
hohu build # Build all components
hohu build --only=backend # Build backend only
hohu build --only=frontend # Build frontend only
hohu build --no-cache # Build without cache
hohu build --tag=v1.0.0 # Custom image tag
hohu build --reset # Reset to official GHCR imagesAutomatically initializes .hohu/deploy/ (config, .env, secrets) on first run — no need to run hohu deploy init separately. Switch back to official images anytime with hohu build --reset.
Deploy the full stack to a Linux server with Docker Compose. Includes PostgreSQL, Redis, Nginx (SSL termination), and the application services.
Source build deploy:
hohu build # Build images (auto-initializes deploy config)
hohu deploy # DeployOfficial image deploy:
hohu deploy init # Initialize deployment config and generate .env
hohu deploy # Pull images and deployEdit .hohu/deploy/.env to set passwords, SECRET_KEY, and SSL certificate path before deploying.
hohu deploy # One-click deploy (pull → migrate → start)
hohu deploy init # Initialize deployment directory and .env
hohu deploy pull # Pull latest images and restart
hohu deploy ps # Show service status
hohu deploy logs # View logs (-f to follow)
hohu deploy restart # Restart services
hohu deploy down # Stop all services
hohu migrate # Run database migrations onlyhohu deploy --init # Also seed database (create admin user and menus)
hohu deploy --no-migrate # Skip database migrationsBy default, PostgreSQL and Redis run as Docker containers. To use your own instances, edit .hohu/deploy/.env:
# Disable built-in PostgreSQL
ENABLE_POSTGRES=false
DATABASE_URL=postgresql+asyncpg://user:password@your-pg-host:5432/dbname
# Disable built-in Redis
ENABLE_REDIS=false
REDIS_HOST=your-redis-host
REDIS_PASSWORD=your-redis-passwordWhen disabled, the corresponding containers won't start and the application connects to your external instances.
Internet → Nginx (SSL) → hohu-admin-web → hohu-admin-api → PostgreSQL + Redis
Place your certificate files in .hohu/deploy/ssl/:
ssl/
├── fullchain.pem
└── privkey.pem
For Let's Encrypt, point SSL_CERT_PATH in .env to the certbot output directory.
| Command | Description |
|---|---|
hohu create [NAME] |
Create project and clone repo templates |
hohu init |
Install all sub-project dependencies |
hohu dev |
Start development server |
hohu build |
Build Docker images from local source code |
hohu deploy |
One-click Docker deployment |
hohu deploy init |
Initialize deployment directory and .env |
hohu deploy pull |
Pull latest images and restart |
hohu deploy ps |
Show service status |
hohu deploy logs |
View service logs |
hohu deploy restart |
Restart services |
hohu deploy down |
Stop all services |
hohu migrate |
Run database migrations and initialization |
hohu lang |
Switch display language (zh / en / auto) |
hohu info |
View current CLI configuration |
hohu --version |
Show version |
hohu --help |
Show help |
| Layer | Tool |
|---|---|
| CLI Framework | Typer |
| Terminal UI | Rich + Questionary |
| Package Manager | uv |
| Deployment | Docker Compose + Nginx |
| Backend | FastAPI |
| Frontend | Vue 3 |
| App | Uni-app |
Issues and Pull Requests are welcome!
- Fork the repo
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -m 'Add my-feature' - Push:
git push origin feature/my-feature - Open a Pull Request