A modern, responsive admin panel built with React + Vite for managing mail services, domains, organizations, and more.
π¬ Join our community on Discord: discord.gg/29zTxvque β ask questions, report bugs, share ideas, and get involved.
| Project | Description |
|---|---|
| Phoenix-Admin-API | Backend API |
- Dashboard - Overview of system metrics and statistics
- Organization Management - Manage organizations and hierarchies
- CRM Module - Services, Purchase Orders, and Invoicing
- Mail Manager - Domains, Mailboxes, Cautions, Disclaimers, and Departments
- Policy Management - Incoming/Outgoing policies and rules
- Logs & Monitoring - Audit logs, mail flow logs, and login attempts
- Server Management - Server stats, migrations, and domain migrations
- User Management - Admin users and permission templates
- AI Support - Built-in AI chat assistant for help and guidance
- Multi-language Support - Internationalization with i18n
- Dark/Light Theme - Responsive theme switching
- Permission-based Access - Role-based access control
- Frontend Framework: React 19
- Build Tool: Vite
- State Management: Jotai
- Data Fetching: TanStack Query (React Query)
- Styling: Tailwind CSS
- Form Handling: React Hook Form + Yup validation
- Routing: React Router v7
- Icons: Lucide React
- UI Components: Custom components with Tailwind
- Select Components: React Select
- Internationalization: react-i18next
Before running this project, make sure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn or pnpm
git clone https://github.com/Yukthi-Systems/Phoenix-Admin-UI
cd Phoenix-Admin-UInpm install
# or
yarn install
# or
pnpm installCopy .env.example to .env and fill in your own values:
cp .env.example .envVITE_API_URL=
VITE_WSS_URL=
VITE_DNS_URL=
VITE_DNS_API_KEY=
VITE_BASE_ORG=
VITE_APP_NAME=
VITE_APP_VERSION=
VITE_BUILD_DATE=
VITE_API_VERSION=
VITE_ENVIRONMENT=
VITE_COPYRIGHT=
VITE_RUM_CLIENT_TOKEN=
VITE_RUM_SITE=npm run dev
# or
yarn dev
# or
pnpm devThe application will be available at http://localhost:5173
To create a production build:
npm run build
# or
yarn build
# or
pnpm buildTo preview the production build:
npm run preview
# or
yarn preview
# or
pnpm previewsrc/
βββ api/ # API service functions
βββ components/ # Reusable UI components
β βββ common/ # Common components (buttons, inputs, etc.)
β βββ shared/ # Shared components (header, sidebar, etc.)
β βββ ui/ # Base UI components
βββ constants/ # Application constants
βββ hooks/ # Custom React hooks
βββ pages/ # Page components
βββ store/ # Jotai atoms and state management
βββ utils/ # Utility functions
βββ App.jsx # Main App component
βββ main.jsx # Application entry point
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run format- Format code with Prettier
- Jotai: Atomic state management for user info, profiles, and UI state
- TanStack Query: Server state management with caching and synchronization
- Tailwind CSS: Utility-first CSS framework
- CSS Custom Properties: Theme variables for dark/light mode
- Responsive Design: Mobile-first approach
- React Hook Form: Performant forms with easy validation
- Yup: Schema validation for form inputs
- React Select: Enhanced select components with search and styling
- JWT-based Authentication: Secure user authentication
- Role-based Access Control: Permission-based feature access
- Atomic User State: Centralized user information management
- AI Chat Assistant: Built-in help system with markdown support
- Context-aware Help: Page-specific guidance and documentation
Contributions are welcome! See CONTRIBUTING.md for the full workflow (fork, branch naming, commit conventions, PR checklist).
Found a bug or have a feature request? Open an issue.
This project uses ESLint for code linting. Run npm run lint to check for issues.
- Use functional components with hooks
- Follow Tailwind CSS utility patterns
- Use Jotai atoms for global state
- Use React Query for server state
- Keep components small and focused
Build fails with module not found
# Clear node_modules and reinstall
rm -rf node_modules package-lock.json
npm installDevelopment server won't start
# Check if port 5173 is available
lsof -ti:5173
# Kill the process if needed
kill -9 [PID]API connection issues
- Verify your
VITE_API_URLin.env - Check if backend server is running
- Verify CORS settings on backend
Join our Discord server to chat with maintainers and other contributors, ask questions, and stay up to date with the project.
This project is licensed under the GNU General Public License v3.0.
Built with β€οΈ by Yukthi Systems