Files
OpenVPN-Monitoring-Simple/DOCS/Profiler_Management/API_Reference.md
2026-01-28 22:37:47 +03:00

2.2 KiB

OpenVPN Profiler API Reference

This module (APP_PROFILER) is built with FastAPI and provides management capabilities.

Base URL: http://<your-server>:8000/api

Authentication

All endpoints (except initial setup) require a Bearer Token. Header: Authorization: Bearer <JWT_TOKEN>

Note: The token is shared with the Core Monitoring API.


1. User Profiles

Manage OpenVPN Client profiles (.ovpn configs and certificates).

GET /profiles

List all user profiles.

  • Response: Array of profile objects (id, username, status, expiration_date, etc.).

POST /profiles

Create a new user profile.

  • Body: {"username": "jdoe"}
  • Action: Generates keys, requests certificate, builds .ovpn file.

DELETE /profiles/{id}

Revoke a user profile.

  • Action: Revokes certificate in CRL and marks profile as revoked in DB.

GET /profiles/{id}/download

Download the .ovpn configuration file for a user.

  • Response: File stream (application/x-openvpn-profile).

2. System Configuration

Manage global settings for the server and PKI.

GET /config

Get current configuration.

  • Query Params: section (optional: 'server' or 'pki')
  • Response: { "server": {...}, "pki": {...} }

PUT /config/server

Update OpenVPN Server settings (e.g., protocol, port, DNS).

  • Body: JSON object matching SystemSettings schema.

PUT /config/pki

Update PKI settings (e.g., Key Size, Certificate Expiry).

  • Body: JSON object matching PKISetting schema.

POST /system/init

Initialize the PKI infrastructure (InitCA, GenDH, BuildServerCert).

  • Note: Only runs if PKI is empty.

DELETE /system/pki

DANGER: Completely wipes the PKI directory.


3. Server Management

POST /server/configure

Generate the server.conf file based on current database settings.

  • Response: {"message": "Server configuration generated", "path": "/etc/openvpn/server.conf"}

POST /server/process/{action}

Control the OpenVPN system service.

  • Path Param: action (start, stop, restart)
  • Response: Status of the command execution.

GET /server/process/stats

Get telemetry for the OpenVPN process.

  • Response: { "status": "running", "cpu_percent": 1.2, "memory_mb": 45.0 }