Pull to refresh

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 ошибку

Добавил, санитизацию имени клиента и валидацию с автозаменой в форме

Оперативно, ещё в голову пришло, когда с основными идеями управитель, если будет возможность, прикрутите в панель инфографику которая будет отображать загрузку сервера, процессор, память, сеть, диск.

Скорость каждого клиента по отдельности. Вы большой молодец!

Когда начинал делать не думал что так востребовано окажется, делал для своего проекта чтобы упростить задачу, как в поговорке "Лучший сисадмин, ленивый сисадмин!" Сделаю, это не очень сложно будет.

Круто, подскажите как обновиться на новую версию полностью автоматически, мне докер предлагает вручную исправлять расхождения в файлах

Обновилось с одной ошибкой, в файле с лимитом трафика, инфографика не заработала и бэкапы не создаются к сожалению

Такая же ошибка, после обновления через update.sh
при обновлении была ошибка

было исправлено, теперь

# Amnezia VPN Panel - Auto Update Script

# Version: 2.0

# Usage: ./update.sh [--force] [--skip-backup] [--rollback]

Сейчас накачу на чистую, может у меня что то сломалось

поправил скрипты, была проблема в старой миграции, сейчас если на чистую поставишь заработает, проверил установкой, если будут ошибки пиши в личку поправлю, посмотри 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, документация или исходные коды с примером установки на любом языке

Просто пушка бомба, огромнейшее человеческое спасибо от всего коллектива, решили многие проблемы данным решением в нынешних условиях . Разместите куда донаты кидать , думаю многие отблагодарят, P.S. мы очень благодарны !

🙏 Очень рад таким комментариям, буду дальше развивать проект, сделал ссылку на  Tribute для донатов

Спасибо огромное за панель. А сложно добавить LDAP синхронизацию по группам доступа? Было бы очень удобно

Присоединяюсь к вопросу про LDAP. По сути это единственное, что тормозит массовое внедрение WG у меня в конторе. Например генерация конфигов для пользователей состоящих в определенной группе.

Можно сделать, нужны ли дополнительные требования (например, Active Directory, OpenLDAP, конкретные группы)?

Меня интересует конкретно AD, но я уверен, что многим пользователям будет интересна эта опция интеграции вне зависимости от конкретной реализации LDAP. А генерить конфиги или отключать можно на основании присутствия пользователя в определенной группе, например "VPN"

Не понял как задать порт вручную.. ну и если получится с 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

также хотелось бы иметь возможность менять настройки сервера как в нативном приложении (порты, адреса, обфускация)

Сейчас занимаюсь, осталось отладить X-Ray протокол и доделать AI правку и генерацию протокола
Сейчас занимаюсь, осталось отладить X-Ray протокол и доделать AI правку и генерацию протокола

Список протоколов которые будут в следующей версии, вы сможете создать и протестировать свои, будет классно если сделать библиотеку протоколов и сервис обмена своими вариантами

Прошу прощения за глупый вопрос, а можно ли это юзать на 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.
Перезагружал контейнер и всё равно русского языка нет. Извиняюсь, вопрос вероятно максимально тупой.


Sign up to leave a comment.

Articles