
Template details
axum_admin
A Rust admin panel built with axum/poem, SeaORM, and Vue 3, featuring RBAC, data permissions, and system monitoring.
About this template
axum_admin is an open-source admin panel template that pairs a Rust backend built with axum/poem and SeaORM with a Vue 3 front end, delivering ready-to-use RBAC, data-permission scoping, and system monitoring modules out of the box.
What is axum_admin?
axum_admin is a full-stack admin management panel template hosted on GitHub. It takes database configuration as input and produces a complete web-based admin system with user, department, post, menu, role, and dictionary management modules. The backend runs on the Rust web frameworks axum and poem, uses SeaORM as the ORM for database operations, and the front end is a separate Vue 3 project called IUI314. The author is the GitHub user lingdu1234.
Key Features
- User, department, post, menu, role, and dictionary management — All six core modules are implemented, with departments and menus displayed as tree structures that support data permissions.
- Five data permission scopes — All permissions, department-only, department-and-subdepartments, custom permissions, and self-only, are available and can be combined with role and department switching.
- Role switching and department switching — Users can belong to multiple departments and roles, with one active department at a time and a simple switch action.
- Scheduled task management — Tasks can be added, modified, and deleted online, with execution result logs recorded.
- Login logs and online user monitoring — Login attempts including exceptions are recorded, and active user status is observable.
- API-based data caching — Caches are divided into public caches (same data for all users) and personal caches (per-user data for the same API), associated by database name, and invalidated on data updates or expiry.
- Operation logging with per-API levels — Each menu's API can be configured to log to file, database, both, or not at all, with independent settings per API.
- Backend-driven permissions — Routes are generated dynamically from backend responses, and button-level permission flags are also returned by the backend.
Who is it for?
Rust backend developers who want a pre-built admin panel instead of implementing authentication and authorization from scratch. Teams building internal tools with a need for fine-grained data permissions, such as department-scoped visibility, will find the five-scope data permission system directly useful. Developers using SeaORM or looking for a Vue 3 admin front-end pairing can study how the two projects integrate through API calls.
What can you do with axum_admin?
- Build a custom admin dashboard for a Rust + Vue project: Deploy the backend and front end, configure the database connection, and run migrations to get a working user and role management system.
- Set up fine-grained access control: Use the combination of role switching, department switching, and data permission scopes to create the exact permission combinations your organization requires.
- Integrate scheduled tasks: Add, edit, and remove scheduled tasks online and monitor their execution logs without touching code.
- Monitor system health and user activity: Track online users, login logs, and system information through the monitoring modules.
How does axum_admin work?
To get started, install the SeaORM CLI with cargo install sea-orm-cli, set the database address in the .env file, and run sea-orm-cli migrate up to apply migrations. Resets and rollbacks are available via sea-orm-cli migrate fresh and sea-orm-cli migrate down. The backend exposes API endpoints that the Vue 3 front end consumes to render pages dynamically.
FAQ
Is axum_admin free to use?
Yes, the project is open source on GitHub and can be cloned and used freely. The README does not mention any license restrictions.
Which database is supported?
SeaORM is a multi-database ORM, and the setup requires setting the database address in the .env file. The specific database engine is not stated in the README, but SeaORM typically supports MySQL, PostgreSQL, and SQLite.
Does axum_admin support button-level permissions?
Yes, the front end enforces button-level permissions using permission flags returned by the backend, and routes are generated dynamically from backend responses.












