Под катом расскажу, как реализовал свою web-панель для управления Amnezia AWG (WireGuard) VPN на Ubuntu 22–24. Почему не хватило официального приложения, какие задачи решил с помощью простого PHP-интерфейса и чем это может быть полезно другим компаниям или разработчикам. Код и инструкции — в открытом доступе.

Проект на GitHub: amneziavpnphp

Зачем всё это?

Если кратко, мне понадобился автоматизированный способ выдавать VPN-доступ сотрудникам и управлять ключами не через десктопные клиенты, а через браузер и API. Многие корпоративные сценарии требуют централизованного контроля, интеграции с HR/DevOps-процессами и простоты обслуживания.

Стандартная схема Amnezia работает через приложения с автоматической настройкой серверов, но когда серверов становится больше и появляется потребность в массовой работе с пользователями, снова делать всё руками — не вариант.

Что реализовано

  • Веб-панель для установки и управления Amnezia VPN серверами через SSH. Поддерживается быстрая настройка на любых VPS с Ubuntu 22–24.

  • Управление клиентами: создание, отзыв и восстановление VPN-доступа одним кликом.

  • QR-коды для быстрого подключения через мобильные приложения.

  • REST API с JWT-авторизацией — удобно автоматизировать процессы: выдавать ключи, интегрировать в внутренние системы.

  • Мультиязычный интерфейс: есть русский, английский, испанский, немецкий, французский, китайский.

  • Мониторинг статистики по каждому клиенту.

Часть реального сценария

Пример: новая компания, удалённые сотрудники, задача — обеспечить доступ к внутренним ресурсам через VPN, сделать процесс простым для нетехнических коллег.

  • Админ разворачивает веб-панель за пару минут (Docker + докер-композ).

  • Через интерфейс заводит серверы — можно управлять сразу несколькими.

  • Добавляет пользователей, генерирует конфиги и QR-коды, рассылает ключи.

  • В любой момент может отозвать доступ или восстановить по необходимости.

  • REST API позволяет автоматизировать регистрацию — например, интегрировать в вашу HR-систему и выдавать VPN автоматически при onboard’инге новых сотрудников.

Технологии

  • PHP 8.2, Twig 3

  • Docker, Docker Compose

  • MySQL 8.0

  • MIT-лицензия — можно дорабатывать под свои задачи

Быстрый старт

  1. Клонируем репозиторий:

    git clone https://github.com/infosave2007/amneziavpnphp
    cd amnezia-web-panel
    cp .env.example .env
    docker compose up -d
  2. Доступ через браузер: http://localhost:8082

Чем это может быть полезно

  • Стартапам и компаниям с распределённой командой, которые не хотят зависеть от сторонних VPN-сервисов.

  • DevOps для быстрого прототипирования защищённых сред.

  • Разработчикам, ищущим готовое решение для интеграции через API.

  • Тем, кому важен контролируемый доступ и автомасштабирование.


Увидели баг, нужна интеграция, есть идеи по улучшению — пишите, проект живой. Рад любой обратной связи!

Комментарии (1)


  1. Bro-Bro
    07.11.2025 15:53

    Спасибо милый человек