{"id":43499624,"url":"https://github.com/eylandoo/openvpn_webpanel_manager","last_synced_at":"2026-02-03T11:14:16.149Z","repository":{"id":291759564,"uuid":"978683618","full_name":"eylandoo/openvpn_webpanel_manager","owner":"eylandoo","description":"A powerful, self-hosted web panel for managing OpenVPN servers, users, resellers (sub-admins), and multi-node deployments with a feature-rich UI and full API support.","archived":false,"fork":false,"pushed_at":"2025-12-29T20:41:13.000Z","size":368,"stargazers_count":171,"open_issues_count":3,"forks_count":36,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-31T04:18:41.837Z","etag":null,"topics":["cisco","eylan","eylanpanel","ipsec","l2tp","multi-node","openvpn","openvpn-management","reseller-panel","security","self-hosted","user-management","vpn","vpn-manager","vpn-panel","vpn-server"],"latest_commit_sha":null,"homepage":"https://eylandoo.github.io","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eylandoo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-06T11:06:44.000Z","updated_at":"2025-12-31T02:34:47.000Z","dependencies_parsed_at":"2025-05-06T12:31:13.002Z","dependency_job_id":"fb05d22f-49a3-41f4-8f9b-5d3a2012dd69","html_url":"https://github.com/eylandoo/openvpn_webpanel_manager","commit_stats":null,"previous_names":["eylandoo/openvpn_webpanel_manager"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/eylandoo/openvpn_webpanel_manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eylandoo%2Fopenvpn_webpanel_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eylandoo%2Fopenvpn_webpanel_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eylandoo%2Fopenvpn_webpanel_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eylandoo%2Fopenvpn_webpanel_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eylandoo","download_url":"https://codeload.github.com/eylandoo/openvpn_webpanel_manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eylandoo%2Fopenvpn_webpanel_manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29044101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T10:09:22.136Z","status":"ssl_error","status_checked_at":"2026-02-03T10:09:16.814Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cisco","eylan","eylanpanel","ipsec","l2tp","multi-node","openvpn","openvpn-management","reseller-panel","security","self-hosted","user-management","vpn","vpn-manager","vpn-panel","vpn-server"],"created_at":"2026-02-03T11:14:15.577Z","updated_at":"2026-02-03T11:14:16.143Z","avatar_url":"https://github.com/eylandoo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OVPN Manager: A High-Performance Multi-Protocol Web Panel\n\n[![Python](https://img.shields.io/badge/Python-3.9+-blue?logo=python)](https://www.python.org/)\n[![Flask](https://img.shields.io/badge/Flask-2.x-black?logo=flask)](https://flask.palletsprojects.com/)\n[![Tailwind CSS](https://img.shields.io/badge/UI-Tailwind_CSS-38B2AC?logo=tailwind-css)](https://tailwindcss.com/)\n[![License: All Rights Reserved](https://img.shields.io/badge/License-All_Rights_Reserved-blue)](LICENSE)\n\n**OVPN Manager 3.0.0** is a comprehensive, self-hosted web panel built on Flask, engineered for high scalability and stability. It centralizes the management of not just OpenVPN, but also **Cisco AnyConnect (Ocserv)**, **L2TP/IPsec**, and now **WireGuard (wg1)**.  \nThis major update transforms the panel into a high-performance solution for managing users, resellers, and multi-node deployments across diverse VPN protocols.\n\nThe panel is designed for administrators demanding granular control over user access, traffic, and server resources with a focus on core architecture stability.\n\n### 📸 Dashboard Preview\n\n![OVPN Manager Dashboard](https://uploadkon.ir/uploads/803c11_25eylanpanel.png)\n---\n\n## ✨ Key Features (v3.0.0 Update)\n\n### 🛡️ Multi-Protocol \u0026 Core Stability\n* **Multi-Protocol Support**: Full integration and management for:\n    * **OpenVPN** (UDP/TCP)\n    * **Cisco AnyConnect (Ocserv)**\n    * **L2TP/IPsec**\n    * **WireGuard (wg1)**\n* **Database Scalability**: Added core support for **PostgreSQL** alongside SQLite. Includes a **Smart Migration Engine** to securely and automatically transfer all existing user data from SQLite to PostgreSQL for high-load environments.\n* **Persistent Security Key**: Implemented a security fix to store the `SECRET_KEY` persistently, enhancing session security and preventing forced admin logouts after service restarts.\n* **Concurrency Fixes**: Major architectural upgrade with the implementation of `DB_WRITE_LOCK` and `GLOBAL_SYNC_LOCK` to eliminate deadlocks and database corruption under high traffic/activity.\n\n### User Management\n* **Create Users**: Add single or bulk users.\n* **Protocol-Specific Passwords**: Set unique passwords for L2TP and Cisco for each user.\n* **WireGuard User Data**: Automatically manage WireGuard (wg1) user requirements (keys/IP) alongside other protocols.\n* **Detailed Limits**: Set specific limits for each user:\n    * **Data Limit**: Assign quotas in GB or MB.\n    * **Connection Limit**: Define the maximum number of simultaneous connections (per protocol).\n    * **Expiry Date**: Set fixed expiration dates or flexible durations.\n* **Real-time Control**: Activate or deactivate users instantly.\n* **Traffic Monitoring**: View live and cumulative data usage (Upload/Download) for each user.\n* **Subscription Page**: Each user gets a unique, token-based subscription page showing their stats, QR code, and download links.\n\n### Sub-Admin (Reseller) System\n* **Create Sub-Admins**: Main admin can create sub-admin (reseller) accounts.\n* **Assign Quotas**: Set limits for each sub-admin, including maximum number of users they can create and a total data quota they can assign.\n* **Independent Management**: Sub-admins manage their own users within the limits you've set.\n\n### Multi-Node Support\n* **Centralized Control**: Manage and sync users across multiple servers (nodes) for OpenVPN, Cisco, L2TP, and WireGuard from a single main panel.\n* **Node Health Monitoring**: View the live status of all connected nodes.\n* **Protocol Provisioning**: New nodes are intelligently configured to support all enabled protocols automatically during setup.\n* **Tunnel Visibility**: Granular control to show/hide specific protocol configurations (OpenVPN, Cisco, L2TP, WireGuard) for users connected to a particular tunnel.\n\n### Server \u0026 Panel Administration\n* **Scheduler Upgrade**: Switched from `GeventExecutor` to **`ThreadPoolExecutor`** for background jobs, significantly improving the stability and responsiveness of the panel under load.\n* **Enhanced SSL Management**: Includes a re-written SSL engine with advanced support for SNI (Server Name Indication) and automated \"Double-Tap Restart\" to ensure smooth certificate renewal and application.\n* **Backup \u0026 Restore**: Create full backups, now including configurations and user data for all supported protocols (OpenVPN, Cisco, L2TP, WireGuard).\n* **Advanced Configuration**: Directly edit configuration files for the main server and each node, including `server.conf`, `ocserv.conf`, IPsec settings, and WireGuard configuration as applicable.\n* **Customization**: Change the panel port, set a custom admin URL path, and switch between dark and light themes.\n\n### API\n* **Full Automation**: A secure, key-based RESTful API allows for programmatic management of users, including creation, editing, deletion, and status retrieval.\n* **Documentation**: Full API documentation is available at [**eylandoo.github.io**](https://eylandoo.github.io).\n---\n\n## 🛠️ Architecture \u0026 Tech Stack\n\nThe panel is a robust Flask application acting as the central management brain.\n\n* **Backend**: **Flask**, **Gevent** (for WSGI), **SQLAlchemy** (for database ORM)\n* **Database**: **PostgreSQL** (Recommended for scale) or **SQLite**\n* **Core Management**: Interacts directly with `systemctl` and dedicated scripts for managing **OpenVPN**, **Ocserv**, **Libreswan (L2TP/IPsec)**, and **WireGuard (wg1)** services.\n* **Frontend**: **Tailwind CSS**, **Font Awesome**, Vanilla JavaScript\n* **Scheduling**: **APScheduler** utilizing **ThreadPoolExecutor** for high-stability background tasks.\n\n---\n\n## 🚀 Installation Guide\n\nThe installation process is fully automated using a management script.\n\n### *Prerequisites*\n* A server running **Ubuntu 22.04 (x86_64)**. The installer will not work on other versions.\n* Root (`sudo`) access to the server.\n\n### *Step 1: Run the Installer*\nConnect to your server via SSH and run the single command below. This will download the main management script and start the installation menu.\n\n```bash\nwget -q -O /root/vpn_manager.sh https://raw.githubusercontent.com/eylandoo/openvpn_webpanel_manager/main/vpn_manager.sh \u0026\u0026 chmod +x /root/vpn_manager.sh \u0026\u0026 /root/vpn_manager.sh\n```\n\n### Step 2: Install VPN Cores\nAfter running the command, an interactive menu will appear.\n\n1. Select the **Install OpenVPN Core**, **Install Cisco AnyConnect**, **Install L2TP/IPsec** , or **Install Wireguard** option(s).\n2. Follow the prompts to configure the desired protocols.\n3. The script will handle all installations automatically.\n\n### Step 3: Install the Web Panel\nOnce the necessary cores are installed, you will return to the main menu.\n\n1. Select the **Install OpenVPN Web Panel** option.\n2. The script will ask for the following details:\n   * **Admin Username**: The username for logging into the web panel.\n   * **Admin Password**: The password for the web panel.\n   * **Panel Port**: The port on which the web panel will be accessible.\n3. The installer will then set up all dependencies, download the panel application, and configure the services.\n\n### Step 4: Access Your Panel\nAfter the installation is complete, the script will display the access details for your new web panel, including the URL, username, and password.\n\n---\n\n## 🔧 Post-Installation Management\nYou can manage your installation at any time by running the manager script again:\n\n```bash\nvpn_manager\n```\nThis will open the main menu where you can:\n\n* Uninstall the Web Panel or any of the installed VPN Cores (OpenVPN, Cisco, L2TP).\n* View your panel's login information.\n* Access the **Panel Settings** to change the username, password, or port.\n* Update the web panel to the latest version.\n\n## 📞 Contact \u0026 Support\n* **7-Day Trial:** To receive a 7-day trial license, please visit our Telegram bot: [@eylan_licensebot](https://t.me/eylan_licensebot)\n* **Purchase \u0026 Inquiries:** For purchasing a full license or setup assistance, please get in touch via Telegram: [@eylandooo](https://t.me/eylandooo)\n* **Telegram Channel:** [@eylanpanel](https://t.me/eylanpanel)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feylandoo%2Fopenvpn_webpanel_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feylandoo%2Fopenvpn_webpanel_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feylandoo%2Fopenvpn_webpanel_manager/lists"}