A modern, beautiful web interface for managing WireGuard VPN servers with comprehensive backend integration. Built with React, TypeScript, and a powerful Python Flask backend.
- 🎨 Beautiful UI: Modern glassmorphism design with smooth animations
- 🔐 Secure Authentication: JWT-based authentication system
- 👥 Client Management: Create, edit, delete, and monitor WireGuard clients
- 🖥️ Server Control: Comprehensive WireGuard server management
- ⚙️ Interface Configuration: Manage multiple WireGuard interfaces (wg0, wg1, etc.)
- 📊 Real-time Statistics: Live bandwidth monitoring and analytics
- 🔑 API Management: Generate and manage API tokens
- ⏰ Auto Reset: Scheduled server resets with configurable intervals
- 🛠️ Installation Wizard: Guided setup for first-time users
- 📱 Responsive Design: Works perfectly on desktop, tablet, and mobile
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/AmiRCandy/Candy-Panel/main/setup.sh)"- Panel Default Port : 3446
- API Default Port : 3446
- Node.js 20+ and npm
- Python 3.8+
- WireGuard installed on your server
- Clone the repository
git clone https://github.com/AmiRCandy/Candy-Panel.git
cd candy-panel- Install dependencies
npm install- Configure environment
cp .env.example .env- Start development server
npm run dev- Navigate to backend directory
cd backend- Install Python dependencies
pip install fastapi uvicorn sqlite3 subprocess psutil- Start the backend server
python main.py- Access the application
- Frontend:
http://localhost:3445 - Backend API:
http://localhost:3445
- Frontend:
- React 18 with TypeScript
- Vite for fast development and building
- Tailwind CSS for styling
- Framer Motion for animations
- React Router for navigation
- Flask for high-performance API
- SQLite for database management
- Pydantic for data validation
- WireGuard integration for VPN management
For installing Telegram BOT you must enter your api_id , api_hash , so put them in var and export on env:
export TELEGRAM_API_ID=1
export TELEGRAM_API_HASH=ab12The backend automatically creates a SQLite database and initializes default settings on first run.
- Access the application at
http://localhost:3446 - Run the installation wizard to configure your server
- Set up admin credentials and server settings
- Create your first WireGuard interface
- Add clients and start managing your VPN
- Navigate to the Clients page
- Click "Add Client" to create a new VPN user
- Configure traffic limits, expiration dates, and notes
- Download the configuration file or share it with users
- Monitor client usage and connection status in real-time
- Go to the Settings page to configure global settings
- Set DNS servers, MTU values, and reset schedules
- Enable/disable auto-backup functionality
- Monitor server statistics and performance
- JWT Authentication: Secure token-based authentication
- Row Level Security: Database-level access control
- API Token Management: Granular API access control
- Auto Session Timeout: Configurable session management
- Secure Key Generation: Cryptographically secure WireGuard keys
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- WireGuard for the amazing VPN technology
- shadcn/ui for the beautiful UI components
- FastAPI for the excellent Python framework
- React and Vite for the frontend tools (Frontend built by BoltAI)
- 📧 Email: amirhosen.1385.cmo@gmail.com
- 💬 Discord: Join our community
- 🐛 Issues: GitHub Issues
- 📖 Documentation: Wiki
- 📖 X (Twiiter): AmiR
- Telegram bot integration for automated sales
- IPV6 Support
- Advanced analytics and reporting
- Docker containerization
- Manual Port for panel and api
- Automatic tunnel installation
- Theme customization
Thanks to @Byte-Aura for help with planning and testing.
Built with 💜 for WireGuard Enthusiasts
