A simple, efficient, and scalable solution to deploy and manage an OpenConnect VPN server (ocserv)
with a powerful web-based dashboard.
Easily manage users, groups, and server configurations while keeping your VPN secure and performant.
- Developer Guide: Complete guide for developers to work on the project
- Telegram Bot Guide: Instructions for setting up and customizing the Telegram bot
- Create, update, remove, block, and disconnect users with ease.
- Sync the
ocpasswdfile with the database to keep user credentials consistent. - Set traffic usage limits per user (e.g., GB or monthly quotas).
- Manage account expiration to automatically deactivate users when their subscription ends.
- Generate and manage user certificate files in .p12 format for secure client authentication and easy device import.
- Create, update, and delete user groups.
- Sync the
/etc/ocserv/groups/*files with the database to ensure consistent group configurations. - Organize users into logical groups for easier management.
- Use the
occtlCLI utility to perform various server operations efficiently.
- View real-time statistics for user traffic (RX/TX).
- Track data usage per user and per group.
- Monitor Ocserv logs in real-time directly from the web dashboard.
- Manage admin accounts: create, update, delete, and reset passwords.
- Track staff activities and administrative actions for accountability.
- Each staff member can create and manage their own Ocserv Users and Groups.
Staff members cannot view or modify users/groups created by others;
only admin users have full access.
- View detailed customer account information.
- Monitor user-specific usage summaries and traffic data.
- Multi-language support:
- English (en)
- Russian (ru)
- Simplified Chinese (zh-cn)
- Traditional Chinese (zh-tw)
- Arabic (ar)
- Persian (fa)
- Customer self-service:
- Link VPN accounts, check usage/expiry, request renewals, order new accounts, and upload payment receipts
- Low-quota warnings and multi-language support
- Admin dashboard: Manage settings, packages, requests, and linked accounts
- Customization: Override translations and bot metadata via environment variables (see docs/TELEGRAM_BOT.md)
- Branch name: legacy
- Old version: Developed using Python backend with Vue 2 frontend.
- Features: Minimal, limited functionality compared to the current version — only basic user and group management existed.
-
Docker-based:
-
Systemd-based:
-
Supported Operating Systems:
-
Programming Language:
-
- Clone the repository:
git clone https://github.com/mmtaee/ocserv-dashboard.git
cd ocserv-dashboard
chmod +x install.sh
./install.shthen select an option to continue:
- Open your web browser.
- Navigate to
https://YOUR-DOMAIN-OR-IP:3443in the browser. - Complete the administrative setup wizard.
- Start managing users, groups, and VPN settings from the dashboard.
- Open your web browser.
- Navigate to
https://YOUR-DOMAIN-OR-IP:3443/summary/in the browser. - Enter your Ocserv username and password to see insights.
- Designed with best practices for security to ensure a safe and reliable VPN environment.
- The web panel is intuitive and easy to use for both administrators and end users.
- Scalable architecture allows efficient management of multiple users and groups.
- Real-time usage tracking and monitoring built-in.
- If you encounter any issues, please refer to the documentation or contact support.
The planned features and upcoming improvements are tracked in the TODO.md file.
Check it out to see what's coming next!
We welcome community contributions to improve and expand internationalization (i18n) support! Here's how you can help:
This project has 3 main parts that need translations:
-
Web Dashboard → web/src/locales/
- One JSON file per language (e.g.,
en.json,fa.json,es.json)
- One JSON file per language (e.g.,
-
Telegram Bot (3 sub-locations):
- Bot conversation UI: services/telegram_bot/internal/i18n/locales/
- API notification messages: services/api/internal/services/telegram/i18n/default.json
- BotFather metadata: services/telegram_bot/internal/bot/metadata_locales.json
- Open the JSON file for that language in any of the locations above
- Edit the values (keep the keys exactly as they are!)
- Save and submit your changes
You need to update all 4 locations!
-
Web Dashboard:
- Copy
web/src/locales/en.json→web/src/locales/es.json - Translate all values to Spanish
- Copy
-
Telegram Bot Conversation UI:
- Copy
services/telegram_bot/internal/i18n/locales/en.json→services/telegram_bot/internal/i18n/locales/es.json - Translate all values to Spanish
- Copy
-
Telegram API Notifications:
- Open
services/api/internal/services/telegram/i18n/default.json - Add your language code (
es) to every object with the translated text
- Open
-
Telegram BotFather Metadata:
- Open
services/telegram_bot/internal/bot/metadata_locales.json - Add your language code (
es) with translatedcommands,long_description, andshort_description
- Open
-
Update supported languages list:
- Open
services/common/models/telegram_languages.go - Add your new language to the list
- Open
-
Update the Installer:
- Open install.sh
- Find the
LANGUAGES=line and add your language incode:Nameformat - Example:
LANGUAGES=en:English,it:Italiano,zh-tw:中文(繁體),zh-cn:中文(简体),ru:Русский,fa:فارسی,ar:العربية,es:Español
- Keep keys unchanged (only translate the values!)
- Use valid JSON syntax (use a JSON validator if needed)
- Maintain the same tone and style as existing translations
- Test your translations if possible!
This project is licensed under the MIT License — see the LICENSE file for details.



