Comments 68
Спасибо милый человек
Это лучшее что я видел на Хабр за последнее время. Можно как-то реализовать сроки действия клиентов на серверах, а также настройку резервного копирования и восстановления на каждом сервере?
Спасибо за отзыв! Сделаю.
Вот это оперативность!!! Спасибо, будем тестить.
добавил endpoints для API
POST /api/clients/{id}/set-expiration - Set client expiration date
Parameters: expires_at (Y-m-d H:i:s or null)
POST /api/clients/{id}/extend - Extend client expiration
Parameters: days (int)
GET /api/clients/expiring - Get clients expiring soon
Parameters: days (default: 7)
добавил cron в докер
# Проверить, что cron запущен
docker compose exec web ps aux | grep cron
# Посмотреть задачи cron
docker compose exec web crontab -l
# Запустить вручную
docker compose exec web php /var/www/html/bin/check_expired_clients.php
# Посмотреть логи
docker compose exec web tail -f /var/log/cron.log
а можно реализовать возможность миграции со сторонних панелей? например, брать резервные копии от панелей wg-easy и 3x-ui c их настройками (ip и порт хоста и списка клиентов) разворачивать через amneziavpnphp панель и туда уже восстанавливать настройки и клиентов из прошлых панелей
Не хватает автоотключения клиента по лимиту трафика и по времени, по времени варианты работает минут, часов, суток, месяцев, лет. И работает до определенной даты. А так конечно очень круто!
+ Скорее всего сегодня протестирую и выложу, возможность добавление сроков для клиентов, бекапы серверов
Вау, спасибо! Могли бы вы ещё добавить генерацию QR не только для приложения AmneziaVPN но и я для AmneziaWG? (В аппстор с ру регионом приложения AmneziaVPN нет а конфигом не всегда удобно)
Так же было бы замечательно если бы получилось реализовать не только скачивание конфига а и копирование ключа для авторизации в AmneziaVPN как это работает в оригинальном приложении.
Так же в голову приходит вопрос можно ли подключать уже действующие развернутые Амнезии? Возможно ли это реализовать?
Про миграции уже говорили другие пользователи.
Ещё раз больше спасибо, считаю что несколько доработок и это будет просто шикарная панель коих нет в интернетах
Да хорошие идеи, сейчас QR в формате AmneziaWG, сейчас действующие конфигурации будут перестраиваются, я пока не нашел способ бережного ) обхода, попробую решить, вообще хорошо было бы все протоколы внедрить которые есть в AmnaziaVPN
Миграцию через бэкап с приложения амнезии тоже полезно было бы
Если создать клиента и его имя будет с пробелом то потом AmneziaVPN не цепляется к нему пишет 1000 ошибку
Добавил, санитизацию имени клиента и валидацию с автозаменой в форме
Оперативно, ещё в голову пришло, когда с основными идеями управитель, если будет возможность, прикрутите в панель инфографику которая будет отображать загрузку сервера, процессор, память, сеть, диск.
Скорость каждого клиента по отдельности. Вы большой молодец!
Когда начинал делать не думал что так востребовано окажется, делал для своего проекта чтобы упростить задачу, как в поговорке "Лучший сисадмин, ленивый сисадмин!" Сделаю, это не очень сложно будет.
Круто, подскажите как обновиться на новую версию полностью автоматически, мне докер предлагает вручную исправлять расхождения в файлах
Обновилось с одной ошибкой, в файле с лимитом трафика, инфографика не заработала и бэкапы не создаются к сожалению

Сейчас накачу на чистую, может у меня что то сломалось
На чистую всё также
поправил скрипты, была проблема в старой миграции, сейчас если на чистую поставишь заработает, проверил установкой, если будут ошибки пиши в личку поправлю, посмотри readme там команда запуска скрипта метрик добавилась
Идея отличная, очень чего-то такого не хватало.
Но есть проблемки.
1) При удалении сервера панель просто вешается, поправить можно только перезапуском контейнера
2) Expiration date хоть и меняется в настройках клиента, в базу обновления не вносит и после обновления страницы сбрасывается
3) Лимит трафика даже визуально не меняется
Это то с чем столнулся
Это и правда лучшая новость за ГОД! Дай Бог тебе здоровья мил человек)!!!
А монстра в виде MySQL можно на что то менее требовательное по железу поменять?
UptimeKuma тоже перешел на MySQL, на простеньком железе где стоит WG сервер, даже эта кума тормозить начала и ложные срабатывания появились
Я в 2001 году с этим "монстром" познакомился теперь как родной стал куда же без MySQL ) Вы можете сделать Fork и нейронке дать задание перевести на SqlLite или работу с файлами, можно еще установить без Docker будет меньше ресурсов потреблять, если несколько слабых серверов, то можно вынести в облачную базу подключение
Добрый день. Подскажите примерные требования по железу для комфортной работы? Я так понял, что на qnap с целероном в докере не потянет.
Да, твой QNAP на Celeron спокойно потянет панель в Docker. Там всего-то PHP 8.2 и MySQL 8.0, которой хватит 256-512 мегов оперативки. По ресурсам это вообще легко, процессор почти не грузится.
Только учти один нюанс — сами VPN-серверы лучше поднимать на отдельных VPS, а не на этом же QNAP. Панель через SSH подключается к удалённым машинам и управляет ими, то есть QNAP у тебя будет как центр управления.
Теоретически можно и на самом QNAP VPN-сервер крутить, технически это реально. Но практика показывает, что надёжнее держать их на выделенных VPS

mysql конечно больше всего ест. Это гиговая vps, а на qnap памяти ещё больше, так что нормально будет жить.
Вау, спасибо! Планируется ли поддержка XRay? Если нет, то какие причины? Жаль, что Амнезия не поддерживает отдельные для юзеров ключи для x-ray, но держать все в одной панели было бы удобно.
сделать можно, нужен полный сценарий последовательности запуска команд с приложения например для Amnezia для Android, документация или исходные коды с примером установки на любом языке
Спасибо огромное за панель. А сложно добавить LDAP синхронизацию по группам доступа? Было бы очень удобно
Присоединяюсь к вопросу про LDAP. По сути это единственное, что тормозит массовое внедрение WG у меня в конторе. Например генерация конфигов для пользователей состоящих в определенной группе.
Не понял как задать порт вручную.. ну и если получится с Xray - порт и SNI (маскировка).
Проект крут, вы молодец!
Очень интересный проект, спасибо! У меня есть боль в невозможности легкого переноса с одного сервера на другой, возможно ли такое реализовать?
А как бы менять параметры что по умолчанию выставляются?

Напишите куда бы добавить такие настройки в .env или в настройках к каждому серверу перед активацией
перед созданием нового клиента лучше добавить возможность прописать вручную, добавить кнопку random, для генерации
Ну на самом деле удобно задавать и общие настройки сервера, и настройки конкретного клиента (опционально, если их надо персонализировать для конкретного пользователя, иначе настройки сервера).
А целом по большей части полезно Jc , Jmin, Jmax, S1, S2 менять
А с родного приложения amnesia еще не научили бекапы импортировать?
Добавлю в список задач в телеграмм канал
Можно сделать чтобы ключ выдавался не только в виде QR и файла конфига, а еще в виде текстовой версии?
Еще было бы полезно менять AllowedIPs перед генерацией конфигов для сервера и для клиента. Спасибо за труд!
Спасибо за крутой проект! Подскажите, при добавлении сервера, пока нельзя подключиться по ключу?
А есть возможность докрутить другие протоколы Амнезии помимо WG? Они сейчас даже больше нужны чем WG
Дай бог тебе здоровья человечище.
Встану в очередь за другими протоколами. От души автор. Поклон тебе
У меня под докер виртуалка kvm64 в proxmox. с mysql не взлетело.
amnezia-panel-db | Fatal glibc error: CPU does not support x86-64-v2
пришлось заменить на mariadb:10.6 и подправить ./migrations/000_create_user.sql
добавил сервер с уже установленной и настроенной амнезией. настройки не подхватились, что печально. есть еще сервера уже настроенные. как добавить, сохранив настройки и юзеров?
ну и при попытке бэкапа бага такая же. установка чистая, не обновлялся, с нуля ставил https://habr.com/ru/articles/964144/#comment_29081636
Прошу прощения за глупый вопрос, а можно ли это юзать на windows? Например просто установив docker? Или нужна полноценная виртуалка на linux?
Возможно не по адресу, но никак не могу заставить показывать русскую локализацию. Добавлял в dockerfile:
RUN apt-get update && apt-get install -y locales &&
sed -i '/ru_RU.UTF-8/s/^# //g' /etc/locale.gen &&
locale-gen
ENV LANG=ru_RU.UTF-8
ENV LC_ALL=ru_RU.UTF-8
После этого сделал docker build -tamneziavpnphp-web:latest .
и docker compose up -d.
Перезагружал контейнер и всё равно русского языка нет. Извиняюсь, вопрос вероятно максимально тупой.
Очень крутой проект! Не забрасывайте







PHP-веб-панель для Amnezia VPN: ускоряем корпоративную автоматизацию