A lightweight, self-hosted subscription management panel for VLESS over WebSocket + TLS.
Built entirely in a single Python file, powered by FastAPI and SQLite.
- ✨ Key Features
- 🚀 Quick Start & Deployment
- ☁️ Deployment Platforms
- 📁 Repository Architecture
- 💸 Bandwidth & Pricing Guide
- ⚖️ Strict Disclaimer
- 🙏 Acknowledgements
- Robust Authentication: JWT-based sessions with HTTP‑only, secure cookies.
- Anti‑Brute Force: Rate limiting applied to logins and API interactions.
- Strict Passwords: Enforced policy (min 8 chars, uppercase, lowercase, numbers).
- Audit Logging: Logs all login attempts (Success/Fail, IP, User‑Agent).
- Full Lifecycle: Create, edit, toggle, and safely delete VLESS configs.
- Granular Control: Per‑user traffic limits (GB), expiration days, and max concurrent connections.
- Advanced Routing: Custom Path, SNI, Host, and TLS Fingerprints per inbound.
- Bulk Operations: Batch activate, deactivate, reset, or delete configs.
- Immutable Core: The default
SulgXinbound is systematically protected against accidental deletion.
- Live Speed Engine: Highly accurate Download/Upload charts with adaptive spike‑filtering.
- Dynamic Metrics: 24‑hour real‑time traffic bars (timezone‑aware) and distribution doughnuts.
- System Health: Live CPU, Memory, and Disk monitoring with
loadavgfallbacks.
- IP Management: Add, edit, and bulk‑import IPv4/IPv6 addresses dynamically attached to subscriptions.
- Safe Scanner: Scan port 443 across 24 predefined cloud providers (Cloudflare, AWS, Azure, etc.).
- Anti‑Crash: Safely handles massive CIDR ranges (e.g.,
/14) by capping at 4,096 IPs to prevent browser freezing. Automatically excludes public DNS (8.8.8.8).
- Bilingual (EN/FA): Fully translatable templates.
- Event Alerts: Panel Logins, Expired Users, Errors, and 90% Quota warnings.
- Live Preview: Real‑time JSON template rendering in the dashboard.
Note
SulgX will run on any platform that supports ASGI Python applications (Uvicorn/Gunicorn) and standard WebSocket connections.
- Go to the main repository on GitHub: https://github.com/SulgX/SulgX-Panel
- Click the Fork button at the top right of the page.
- In the window that appears, select your own account as the destination and wait for the fork to complete.
- You now have a complete copy of the project under your GitHub account, which you can modify as you wish.
Choose one of the three recommended platforms below and sign up (you can often sign in directly with your GitHub account and grant access):
- Render ← Main recommendation, no credit card required
- Railway ← Modern interface, free initial credit
- Dockfly ← Minimal and simple
🔹 Deploy on Render
- In the Render dashboard, click New + and select Web Service.
- In the GitHub connection section, find your forked repository (
SulgX-Panel) and click Connect. - Render automatically reads the
render.yamlfile. Confirm the service name and branch. - Scroll down to the Environment Variables section and enter the following variables:
ADMIN_PASSWORDSECRET_KEYDOMAIN
(Values should follow the environment variables table later in this section.)
- Click Create Web Service. After a few minutes, your service's public URL will be generated (e.g.,
sulgx-test.onrender.com).
🔹 Deploy on Railway
- In Railway, click New Project and select Deploy from GitHub repo.
- Choose your forked repository.
- Railway automatically detects the
Procfile. To add environment variables, go to the Variables tab and addADMIN_PASSWORD,SECRET_KEY, andDOMAINwith appropriate values. - The build starts automatically, and you'll receive a public domain.
[!TIP] 🗝️ Railway users: Add Railway's IP range to the Clean IP list for accurate scanning.
🔹 Deploy on Dockfly
- In Dockfly, create a New Project, set the source to GitHub, and select your forked repository.
- In the Environment section, add the same three variables.
- If the start command doesn't run automatically, enter the following manually:
gunicorn -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:$PORT- Click Deploy.
You must set the following environment variables in your provider's dashboard:
| Variable | Example Value | Description |
|---|---|---|
ADMIN_PASSWORD |
StrongPass!123 |
Required for panel access (min 8 chars, upper & lowercase, numbers). |
SECRET_KEY |
random_long_string |
Used to secure JWT login cookies. |
DOMAIN |
sulgx.up.railway.app |
Your public domain. Highly recommended for correct link generation. |
DB_PATH |
/tmp/panel.db |
Where the SQLite DB is stored. Use /data/panel.db if using persistent volumes. |
Use this exact command on all platforms (if needed manually):
gunicorn -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:$PORTSulgX is built to run flawlessly across cloud PaaS providers. No Dockerfile or complex setup required.
| Platform | Free Tier Limit | WebSocket | Sleep Mode | Credit Card Req? | Deployment Method |
|---|---|---|---|---|---|
| Render | 750 hours / month | ✅ | Yes (Delay) | No | Auto via render.yaml |
| Railway | $5 Initial Credit | ✅ | No | No | Auto via Procfile |
| Dockfly | 1 Project (256MB) | ✅ | No | No | Manual Start Command |
🌍 Click to view other compatible platforms
| Platform | Free Tier | WebSocket | Sleep Mode | Card Req? |
|---|---|---|---|---|
| Koyeb | 1 Eco Service | ✅ | No | No |
| Fly.io | Up to 3 Small VMs | ✅ | No | Yes (Verification) |
| Heroku | Eco ($5/mo) | ✅ | Yes | Yes |
| DigitalOcean | $5/mo Base | ✅ | No | Yes |
| Oracle Cloud | Always Free ARM | ✅ | No | Yes (Verification) |
The repository is kept intentionally minimal. Everything required for production is included:
| File | Type | Purpose |
|---|---|---|
main.py |
Core | The beating heart of SulgX. Contains FastAPI backend, WebSocket tunnels, and embedded HTML/JS frontend. |
requirements.txt |
Config | Strictly pinned Python dependencies ensuring build stability. |
Procfile |
Deploy | Standardized startup instructions for Heroku, Railway, and Render. |
render.yaml |
Deploy | Infrastructure‑as‑Code blueprint for instant 1‑click deployments on Render. |
sulgx-config.toml |
Docs | Reference guide containing the required Environment Variables for manual setups. |
.gitignore |
Git | Keeps the repository clean by excluding logs, caches, and local .db files. |
Important
SulgX Panel is 100% Free. However, your cloud provider will charge you for the bandwidth your users consume.
| Hosting Platform | Included Free Bandwidth | Cost Per Extra GB (Approx.) |
|---|---|---|
| Render | 5 GB / month | $0.10 / GB |
| Railway | Pay as you go | $0.10 / GB |
| Koyeb | 5 GB / month | $0.04 to $0.10 / GB |
| Fly.io | Varies by region | $0.02 / GB |
| Oracle Cloud | 10 TB / month | Standard Cloud Rates |
Monitor your cloud provider's billing dashboard to avoid unexpected charges. Use the Panel's monthly limits to control usage.
Warning
READ CAREFULLY BEFORE DEPLOYING
- Free & Non‑Commercial: This software is provided 100% free of charge. It is NOT for sale.
- No Commercial VPNs: Do NOT use this panel to sell VPN subscriptions. It is designed strictly for personal, educational, and experimental purposes.
- No Platform Abuse: Do not abuse the free tiers of cloud providers by creating multiple accounts with temporary emails.
- Reporting: If you see someone selling access to this specific panel or abusing infrastructure, please report it to the respective hosting provider.
- Zero Liability: The developer assumes absolutely zero liability for any damages, billing overages, or Terms of Service violations incurred. You are solely responsible for your traffic.
A massive thank you to the platforms and communities that make free internet tools possible:


