| from fastapi import FastAPI |
| from fastapi.responses import HTMLResponse |
|
|
| app = FastAPI() |
|
|
| @app.get("/", response_class=HTMLResponse) |
| async def home(): |
| html_content = """ |
| <html> |
| <head> |
| <title>IKEv2 VPN Server Management</title> |
| </head> |
| <body> |
| <h1>Pure Python IKEv2 Server Status</h1> |
| <p>The IKEv2 server process is running alongside this Web UI.</p> |
| <p><strong>IKEv2 Status:</strong> Running (Managed by Supervisord)</p> |
| <p><strong>Web UI Port:</strong> TCP 8000 (Uvicorn)</p> |
| <p><strong>VPN Ports:</strong> UDP 500 & 4500 (pvpn)</p> |
| <h2>Connection Details</h2> |
| <ul> |
| <li><strong>PSK:</strong> MySecretPSK123</li> |
| <li><strong>URL:</strong> Your public URL</li> |
| </ul> |
| <hr> |
| <p>In a full implementation, this UI would show logs, connection counts, and allow configuration changes.</p> |
| </body> |
| </html> |
| """ |
| return html_content |
|
|
| @app.get("/status") |
| async def status(): |
| |
| return {"status": "ok", "service": "Web UI", "vpn_server": "running (assumed)"} |
|
|
|
|