2026-01-28 22:37:47 +03:00
# OpenVPN Monitor & Profiler
2026-01-09 10:30:49 +03:00
2026-01-28 22:37:47 +03:00
A modern, full-stack management solution for OpenVPN servers. It combines real-time traffic monitoring, historical analytics, and comprehensive user profile/PKI management into a unified web interface.
2026-01-09 10:30:49 +03:00
2026-02-06 09:02:59 +03:00
## 🏗️ Project Architecture
2026-01-09 10:30:49 +03:00
2026-02-06 09:02:59 +03:00
The project is modularized into four core microservices:
2026-01-09 10:30:49 +03:00
2026-02-06 09:02:59 +03:00
| Component | Directory | Service Name | Description |
| :--- | :--- | :--- | :--- |
| **User Interface ** | `APP_UI/` | `ovp-ui` | Vue 3 + Vite SPA served via Nginx. |
| **Monitoring API ** | `APP_CORE/` | `ovp-api` | Flask API for real-time stats and sessions. |
| **Data Gatherer ** | `APP_CORE/` | `ovp-gatherer` | Background service for traffic log aggregation & TSDB. |
| **Profiler ** | `APP_PROFILER/` | `ovp-profiler` | FastAPI module for PKI, Certificates, and VPN control. |
## 📦 Quick Start (Docker)
The recommended way to deploy is using Docker Compose:
1. **Clone the repository **
2. **Start all services ** :
```bash
docker-compose up -d --build
```
3. **Access the Dashboard ** : Open `http://localhost` in your browser.
## ⚙️ Configuration
The system is highly configurable via environment variables in `docker-compose.yml` . All variables follow the `OVPMON_{SECTION}_{KEY}` format.
### Key Environment Variables
| Variable | Description | Default Value |
2026-01-28 22:37:47 +03:00
| :--- | :--- | :--- |
2026-02-06 09:02:59 +03:00
| `OVPMON_API_SECRET_KEY` | JWT Secret Key | `ovpmon-secret-change-me` |
| `OVPMON_API_PORT` | Monitoring API Port | `5001` |
| `OVPMON_OPENVPN_MONITOR_DB_PATH` | Path to SQLite DB | `/app/db/openvpn_monitor.db` |
| `OVPMON_OPENVPN_MONITOR_LOG_PATH` | Path to OpenVPN status log | `/var/log/openvpn/openvpn-status.log` |
| `OVPMON_LOGGING_LEVEL` | Logging level (INFO/DEBUG) | `INFO` |
2026-01-09 10:30:49 +03:00
2026-01-28 22:37:47 +03:00
## 📚 Documentation
2026-01-09 10:30:49 +03:00
2026-02-06 09:02:59 +03:00
Detailed documentation is available in the `DOCS/` directory:
2026-01-09 10:30:49 +03:00
2026-02-06 09:02:59 +03:00
- **[Deployment Guide ](DOCS/General/Deployment.md )**: Manual setup for Linux.
- **[Security Architecture ](DOCS/General/Security_Architecture.md )**: 2FA, JWT, and Security.
- **[API Reference ](DOCS/Core_Monitoring/API_Reference.md )**: Core Monitoring endpoints.
2026-01-09 10:30:49 +03:00
2026-02-06 09:02:59 +03:00
## 🛠️ Development (Manual)
2026-01-09 10:30:49 +03:00
2026-02-06 09:02:59 +03:00
If you wish to run services manually for development:
2026-01-09 11:04:37 +03:00
2026-02-06 09:02:59 +03:00
### 1. Core API & Gatherer
2026-01-09 11:04:37 +03:00
```bash
2026-01-28 22:37:47 +03:00
cd APP_CORE
pip install -r requirements.txt
2026-02-06 09:02:59 +03:00
python3 openvpn_api_v3.py # APP_CORE API (:5001)
python3 openvpn_gatherer_v3.py # APP_CORE Gatherer
2026-01-09 11:04:37 +03:00
```
2026-02-06 09:02:59 +03:00
### 2. Profiler API
2026-01-09 11:04:37 +03:00
```bash
2026-01-28 22:37:47 +03:00
cd APP_PROFILER
pip install -r requirements.txt
2026-02-06 09:02:59 +03:00
python3 main.py # APP_PROFILER API (:8000)
2026-01-12 11:44:50 +03:00
```
2026-02-06 09:02:59 +03:00
### 3. Frontend
2026-01-12 11:44:50 +03:00
```bash
2026-01-28 22:37:47 +03:00
cd APP_UI
2026-02-06 09:02:59 +03:00
npm install && npm run dev # UI (:5173)
2026-01-12 11:44:50 +03:00
```
---
2026-01-28 22:37:47 +03:00
## ⚠️ Important Notes
2026-01-09 10:30:49 +03:00
2026-02-06 09:02:59 +03:00
1. **Permissions ** : The Profiler container requires `NET_ADMIN` capabilities and access to `/dev/net/tun` .
2. **Cleanup ** : Certificate management and legacy visualization settings have been moved or removed from the Core module.