Этот репозиторий-шаблон позволяет быстро поднять VPN-сервер (AmneziaWG или стандартный WireGuard через wg-easy) и Telegram-бота для мониторинга: статус, активные подключения, графики нагрузки (CPU/MEM/NET), алерты, speedtest. Дополнительно можно включить Xray (VLESS Reality) на 443/tcp.
- Подготовьте
.envна сервере (скопируйте изenv.exampleи заполните):
cp env.example .env
vi .env
Обязательные переменные: публичный IP сервера (WG_HOST), токен Telegram-бота (TELEGRAM_BOT_TOKEN).
- Если используете AmneziaWG: выставьте
AWG_ENABLED=true. При необходимости изменитеAWG_PORT(по умолчанию 443/udp) и параметры джиттера (AWG_JC,AWG_JMIN,AWG_JMAX,AWG_S1,AWG_S2). - Если используете стандартный WireGuard: оставьте
AWG_ENABLED=false, настройтеWG_*и UI пароль дляwg-easy.
- Выполните установку (Ubuntu 22.04):
sudo bash scripts/setup.sh
Скрипт:
- установит Docker и зависимости;
- применит sysctl и UFW (откроет 22/tcp, 51820/udp, 51821/tcp; если
AWG_ENABLED=true— откроетAWG_PORT/udp); - подготовит Xray-конфиг (если
XRAY_ENABLED=true) и поднимет сервисы.
- В Telegram напишите боту
/start. Бот запомнит ваш chat_id (или укажитеTELEGRAM_ALLOWED_CHAT_IDв.env).
- Этот шаблон не запускает сам AWG-контейнер, а оставляет его установку гибкой (вне compose). Включите
AWG_ENABLED=true, скрипт не будет стартоватьwg-easyи не будет делать редирект 443→51820/udp. - Откройте в фаерволе
AWG_PORT(делаетsetup.sh). - Бот команда
/peersподдерживает AWG: еслиAWG_ENABLED=true, сначала пытаетсяdocker exec $AWG_CONTAINER wg show, затем fallback наwg showв хосте.
Рекомендованные параметры (если соединение нестабильно):
- Jc от 3 до 5; Jmin=40; Jmax=70; при необходимости S1/S2 от 2 до 10.
- В
.envустановитеXRAY_ENABLED=true.scripts/setup.shсгенерирует ключи Reality, UUID и конфигdata/xray/config.json(TCP + Reality, flowxtls-rprx-vision). - После запуска выведите ссылку:
bash scripts/print_vless.sh
wg-easy— еслиAWG_ENABLED=false(WG + UI);vpn-bot— Telegram-бот:/status,/peers,/graph [часы],/speedtest,/helpи заявка на Xray;xray— приXRAY_ENABLED=true(VLESS Reality наXRAY_PORT).
Данные:
- конфиги WireGuard:
./data/wg-easy - конфиг Xray:
./data/xray/config.json - база метрик SQLite:
./data/bot/metrics.sqlite
См. .env.example для полного списка. Ключевые:
WG_HOST— публичный IP/домен сервераAWG_ENABLED— включить режим AmneziaWG (по умолчанию false)AWG_PORT— порт UDP для AWG (по умолчанию 443)AWG_JC,AWG_JMIN,AWG_JMAX,AWG_S1,AWG_S2— параметры джиттераXRAY_ENABLED,XRAY_PORT,REALITY_*,XRAY_UUID— параметры Xray (Reality)TELEGRAM_BOT_TOKEN— токен бота;TELEGRAM_ALLOWED_CHAT_ID— (опционально) разрешённый chat_id
./scripts/run.sh up # поднять сервисы (wg-easy+bot или только bot при AWG)
./scripts/run.sh down # остановить
./scripts/run.sh restart # перезапуск
./scripts/run.sh logs # логи бота
git pull
./scripts/run.sh pull && ./scripts/run.sh up
- Установите сильный
WG_EASY_PASSWORD(если используете UI); - Ограничьте доступ к боту
TELEGRAM_ALLOWED_CHAT_ID; - Держите
.envприватным.