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
.ovpnfile.
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
SystemSettingsschema.
PUT /config/pki
Update PKI settings (e.g., Key Size, Certificate Expiry).
- Body: JSON object matching
PKISettingschema.
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 }