Infrastructure

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.

Install with Docker v1.1.4
Web · Docker

The Docker image, Compose bundle and installation guide are available below.

INTERFACE · DEMONSTRATION DATA
BUILT FOR YOUR TASKS

Less clutter.
More useful things.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

TAKE A CLOSER LOOK

In action.

Traffic monitoring · Demonstration data
Sign-in and language selection · English interface
DOCKER & COMPOSE

Install with Docker

Selected version
v1.1.4 Latest
Supported platforms linux/amd64
Pull the image
docker pull registry.kadnikoff.ru/amnezia-vpn-manager:1.1.4@sha256:d670db9e1ae3f17ab1deb9594a04e635a3506679cd2aef9ede51ea0f77bf8a10
Archive checksum SHA-256f189bce82d838c10da39deabba5f7ccd4b79ebefbd5a8bb8af5d56d13d0e1ceb

Installation guide

English

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:

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
Download file
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
Download file
# 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
Download file
# 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.
Image viewer

Loading image…