Amnezia VPN Manager.
Your VPN infrastructure in one clear dashboard.
An ASP.NET Core MVC and .NET 10 web panel for managing hosts, AmneziaWG instances, devices, and VPN profiles. Host checks, SSH deployment, existing configuration import, traffic monitoring, and an audit log share one application. The current local version supports Russian and English interfaces.
Web · Docker
The Docker image, Compose bundle and installation guide are available below.
Less clutter.
More useful things.
Hosts and SSH keys
Add hosts after checking access, SSH fingerprints, Docker, and networking readiness. Generate or import keys, store them encrypted, and assign them to hosts. Missing prerequisites can be prepared with separate user approval.
AmneziaWG deployment
Guided AWG 1.5, 2.0, and 3.1 instance creation with public IP and UDP port selection. Background progress, runtime verification, and retry when setup fails.
Devices and VPN profiles
Multiple VPN profiles per device, with server-verified access issuance and revocation. Import existing instances and .conf, .vpn, and vpn:// client configurations; download the selected profile’s configuration or QR code.
Traffic monitoring
Transfer rates, recent handshakes, and daily, monthly, and yearly statistics. Device and owner rankings, grouping several devices under one person, and automatically refreshed readings.
Users and audit history
Separate global administrator and managed user permissions. Sign-in and resource-change history filtered by account, object type, and date; inventory and history persisted in SQLite.
Russian and English interfaces
Switch languages on sign-in and application pages with a remembered preference. Forms, validation, operation progress, statistics, and audit views are translated; VPN configuration and QR contents remain unchanged.
In action.
Install with Docker
linux/amd64 docker pull registry.kadnikoff.ru/amnezia-vpn-manager:1.1.4@sha256:d670db9e1ae3f17ab1deb9594a04e635a3506679cd2aef9ede51ea0f77bf8a10
Archive checksum SHA-256
f189bce82d838c10da39deabba5f7ccd4b79ebefbd5a8bb8af5d56d13d0e1cebInstallation guide
EnglishAmnezia VPN Manager 1.1.4
Install and run Amnezia VPN Manager with Docker on Linux amd64.
Installation
You need Docker Engine and Docker Compose.
Save compose.yaml and .env.example from this page in a separate folder,
or extract the Docker Compose bundle into it. Run the following commands
from that folder.
Copy .env.example to .env:
cp .env.example .env
Open .env and set your own long, random AVM_AUTH_PASSWORD.
The application will not start with an empty password.
You can also change the username in AVM_AUTH_USERNAME.
Start the application and check its status:
docker compose up -d
docker compose ps
Open the application
Open http://127.0.0.1:5097 and sign in with the credentials from .env.
If you installed the application on a VPS, run this on your computer:
ssh -N -L 5097:127.0.0.1:5097 USER@SERVER
Replace USER and SERVER with your server's username and address.
Keep the SSH tunnel running and open http://127.0.0.1:5097
in your computer's browser.
For permanent access through a domain, configure an HTTPS reverse proxy. By default, the application is accessible only on the computer running it.
Keep your data
Application data is stored in the inventory_data volume; encryption keys
are stored in keyring_data. Keep both volumes when upgrading or backing up.
The docker compose down command preserves them. The -v flag deletes data.
After installation, add your servers, SSH keys, VPN profiles and users in the application.
Installation files
Select and copy a fragment, copy the entire file, or download it. Save the example settings as .env and set your own password.
compose.yamlFile contents
name: amnezia-vpn-manager
services:
web:
image: registry.kadnikoff.ru/amnezia-vpn-manager:1.1.4@sha256:d670db9e1ae3f17ab1deb9594a04e635a3506679cd2aef9ede51ea0f77bf8a10
restart: unless-stopped
ports:
- "127.0.0.1:5097:8080"
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_FORWARDEDHEADERS_ENABLED: "true"
Inventory__DatabasePath: /app/data/inventory.db
Inventory__KeyRingPath: /app/keys
Inventory__SeedDemoData: "false"
Auth__Username: ${AVM_AUTH_USERNAME:-admin}
Auth__Password: ${AVM_AUTH_PASSWORD:?Set your own AVM_AUTH_PASSWORD in .env}
Auth__FirstName: ${AVM_AUTH_FIRST_NAME:-System}
Auth__LastName: ${AVM_AUTH_LAST_NAME:-Administrator}
Monitoring__TimeZone: ${AVM_TIME_ZONE:-Europe/Saratov}
volumes:
- inventory_data:/app/data
- keyring_data:/app/keys
read_only: true
tmpfs:
- /tmp:size=64m,mode=1777
cap_drop: [ALL]
security_opt: [no-new-privileges:true]
mem_limit: 512m
pids_limit: 256
healthcheck:
test:
- CMD
- bash
- -ec
- >-
exec 3<>/dev/tcp/127.0.0.1/8080;
printf 'GET /Account/Login HTTP/1.0\r\nHost: localhost\r\n\r\n' >&3;
read -r line <&3;
[[ "$$line" == *" 200 "* ]]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
volumes:
inventory_data:
keyring_data:
.env.exampleFile contents
# Copy to .env and set your own long random password before starting.
AVM_AUTH_USERNAME=admin
AVM_AUTH_PASSWORD=
AVM_AUTH_FIRST_NAME=System
AVM_AUTH_LAST_NAME=Administrator
AVM_TIME_ZONE=Europe/Saratov
README.mdFile contents
# Amnezia VPN Manager 1.1.4
Install and run Amnezia VPN Manager with Docker on Linux amd64.
## Installation
You need Docker Engine and Docker Compose.
Save `compose.yaml` and `.env.example` from this page in a separate folder,
or extract the Docker Compose bundle into it. Run the following commands
from that folder.
Copy `.env.example` to `.env`:
```bash
cp .env.example .env
```
Open `.env` and set your own long, random `AVM_AUTH_PASSWORD`.
The application will not start with an empty password.
You can also change the username in `AVM_AUTH_USERNAME`.
Start the application and check its status:
```bash
docker compose up -d
docker compose ps
```
## Open the application
Open <http://127.0.0.1:5097> and sign in with the credentials from `.env`.
If you installed the application on a VPS, run this on your computer:
```bash
ssh -N -L 5097:127.0.0.1:5097 USER@SERVER
```
Replace `USER` and `SERVER` with your server's username and address.
Keep the SSH tunnel running and open <http://127.0.0.1:5097>
in your computer's browser.
For permanent access through a domain, configure an HTTPS reverse proxy.
By default, the application is accessible only on the computer running it.
## Keep your data
Application data is stored in the `inventory_data` volume; encryption keys
are stored in `keyring_data`. Keep both volumes when upgrading or backing up.
The `docker compose down` command preserves them. The `-v` flag deletes data.
After installation, add your servers, SSH keys, VPN profiles and users
in the application.