2026-02-07 15:11:33 +03:00
2026-02-07 15:11:33 +03:00
2026-01-28 22:37:47 +03:00
2026-01-09 01:05:50 +03:00
2026-02-07 14:30:45 +03:00

OpenVPN Monitor & Profiler

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.

🏗️ Project Architecture

The project is modularized into four core microservices:

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:
    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
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

📚 Documentation

Detailed documentation is available in the DOCS/ directory:

🛠️ Development (Manual)

If you wish to run services manually for development:

1. Core API & Gatherer

cd APP_CORE
pip install -r requirements.txt
python3 openvpn_api_v3.py      # APP_CORE API (:5001)
python3 openvpn_gatherer_v3.py # APP_CORE Gatherer

2. Profiler API

cd APP_PROFILER
pip install -r requirements.txt
python3 main.py                # APP_PROFILER API (:8000)

3. Frontend

cd APP_UI
npm install && npm run dev     # UI (:5173)

⚠️ Important Notes

  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.
Description
No description provided
Readme 511 KiB
Languages
Python 44.6%
Vue 37.5%
CSS 13.4%
JavaScript 2.5%
Jinja 0.9%
Other 1.1%