Analysis updated 2026-05-18
Provision new VPN clients across many servers through one API instead of manual SSH sessions.
Let a dashboard or billing system create, extend, or remove VPN client subscriptions automatically.
Download ready-to-import AmneziaWG config files and QR codes for each client.
Track connection status of VPN servers and clients from a single control plane.
| taphix/amneziawg-api | code-leafy/g2rayxcodeleafy | ayghri/i-have-adhd | |
|---|---|---|---|
| Stars | 60 | 60 | 61 |
| Language | Shell | Shell | Shell |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 3/5 | 3/5 | 1/5 |
| Audience | developer | developer | vibe coder |
Figures from each repo's GitHub metadata at analysis time.
Requires an existing AmneziaWG installation on each managed server plus SSH key access from the control plane.
AmneziaWG is a VPN tool similar to WireGuard that encrypts internet traffic. When you run AmneziaWG on multiple servers, the normal approach is to log into each server separately and run shell commands. This project adds a single HTTP control layer on top so that other software, dashboards, or billing systems can manage those VPN servers through a standard web API instead. The core idea is straightforward: this application runs on one machine (the control plane), holds SSH credentials to reach your VPN servers, and translates API calls into shell commands on the remote machines. When you ask it to create a new VPN client, it connects to the target server over SSH, runs the management script there, collects the resulting config file and QR code, and stores them locally so you can download them through the API. The API covers the main tasks: registering a VPN server by providing its address and SSH key path, creating a client with a name and expiration date, listing active clients with their connection status, extending a subscription, removing a client, and downloading the generated config file or QR image. All requests require a bearer token you set in an environment file. A per-server command queue prevents two operations from conflicting on the same host at the same time. The project runs as a Python application using FastAPI and SQLite for storage. You can start it directly with a virtual environment or use the included Docker Compose file, which is designed to sit behind a reverse proxy. The README covers both paths and includes working example curl commands for every API endpoint. One thing this project does not do is install AmneziaWG on your servers. You need a working AmneziaWG setup on each remote machine before this control plane is useful. The project is licensed under MIT.
An HTTP control plane that manages AmneziaWG VPN clients across multiple remote servers over SSH.
Mainly Shell. The stack also includes Python, FastAPI, SQLite.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.