Manage native AmneziaWG VPN from Telegram — clients, traffic stats, backups, no SSH. Rust, single static binary for amd64/arm64.
See the code🇷🇺 Русский · 🇬🇧 English
Telegram-бот на Rust для управления клиентами AmneziaWG прямо с телефона: добавить/удалить клиента, посмотреть список и трафик — без SSH.
https://github.com/user-attachments/assets/35af60f4-c7d8-44d5-9c90-bcd06b20c864
awgram управляет нативным AmneziaWG — kernel-модулем для Linux (ставится инсталлером) — целиком из Telegram: после установки не нужны ни консоль, ни терминал. Нативный AWG заметно быстрее и экономнее контейнерных решений — особенно это ощутимо на недорогих VPS.
.conf, QR и ссылка импорта.add --allowed-ips, маршруты ставятся одной командой вместе с
созданием, иначе — отдельной правкой сразу после него.user-01 … user-10) одним действием, с выдачей конфигов альбомом..conf / QR / ссылка)
автоматически выдаются после создания.admin_ids и
назначенных ими групповых админов, вызов manage-скрипта без shell,
секреты не попадают в логи, hardened-режим (отдельный пользователь +
sudoers).socks5/socks5h/http/
https в telegram_proxies с автофейловером — для серверов, где Bot API
напрямую недоступен; подробности и альтернатива через маршрутизацию —
в docs/proxy.md.api.telegram.org — напрямую или через прокси
(docs/proxy.md).Получите токен бота у @BotFather (/newbot)
и свой числовой ID у @userinfobot.
На VPS с установленным AmneziaWG-инсталлером выполните:
curl -fsSL https://github.com/ekuraev/awgram/releases/latest/download/install.sh | bash
Ответьте на вопросы установщика (язык, режим root/hardened, токен,
ID админов) — готово: откройте бота в Telegram и нажмите /start.
Полностью автоматическая установка — флагами:
curl -fsSL https://github.com/ekuraev/awgram/releases/latest/download/install.sh \
| bash -s -- install --lang ru --mode root --token 'ТОКЕН' --admins 111111111 --yes
Токен можно не передавать флагом (тогда он не попадёт ни в argv, ни в
историю шелла) — вместо этого export AWGRAM_TOKEN='ТОКЕН' перед той же
командой без --token.
Управление после установки: awgram-setup update | config | status | uninstall.
Предрелизные сборки — awgram-setup update --channel rc; подробнее о каналах
обновлений — в docs/operations.md.
awgram — один статический бинарник (Rust, teloxide, long polling, без
webhook), который живёт на том же VPS, что и VPN. Конфигурацию AmneziaWG он
не трогает — вызывает штатный скрипт manage_amneziawg.sh (без shell, с
флагом --json) и рендерит результат в inline-меню Telegram. Доступ
ограничен владельцами из admin_ids и назначенными ими групповыми
админами; токен и содержимое .conf/QR никогда не попадают в логи.
Бот — надстройка над manage_amneziawg.sh из
bivlked/amneziawg-installer
и напрямую зависит от его --json-интерфейса.
--json-контракт), минимальная —
v5.21.0.add, remove, list, stats, regen, modify, backup,
restore, check, restart, repair-module — все с --json.add --allowed-ips (в инсталлере с v5.32.0) определяется по
справке скрипта, а не по версии; без него работает путь add + modify.Что менялось в каждой версии инсталлера и как это отразилось на боте — в docs/compat.md.
Нужен стабильный Rust не ниже 1.95 и cargo; TLS — на rustls, системный
libssl не нужен.
cargo build --release # target/release/awgram
./scripts/build-musl.sh [arm64|all] # статические Linux-бинарники в dist/ (нужен Docker)
Релизы на тег v* собирают бинарники amd64+arm64 c sha256-суммами
автоматически.
manage_amneziawg.sh, на которые опирается бот.74 commits
12 commits
Rust
93.6%
Shell
6.4%
Manage native AmneziaWG VPN from Telegram — clients, traffic stats, backups, no SSH. Rust, single static binary for amd64/arm64.
See the code🇷🇺 Русский · 🇬🇧 English
Telegram-бот на Rust для управления клиентами AmneziaWG прямо с телефона: добавить/удалить клиента, посмотреть список и трафик — без SSH.
https://github.com/user-attachments/assets/35af60f4-c7d8-44d5-9c90-bcd06b20c864
awgram управляет нативным AmneziaWG — kernel-модулем для Linux (ставится инсталлером) — целиком из Telegram: после установки не нужны ни консоль, ни терминал. Нативный AWG заметно быстрее и экономнее контейнерных решений — особенно это ощутимо на недорогих VPS.
.conf, QR и ссылка импорта.add --allowed-ips, маршруты ставятся одной командой вместе с
созданием, иначе — отдельной правкой сразу после него.user-01 … user-10) одним действием, с выдачей конфигов альбомом..conf / QR / ссылка)
автоматически выдаются после создания.admin_ids и
назначенных ими групповых админов, вызов manage-скрипта без shell,
секреты не попадают в логи, hardened-режим (отдельный пользователь +
sudoers).socks5/socks5h/http/
https в telegram_proxies с автофейловером — для серверов, где Bot API
напрямую недоступен; подробности и альтернатива через маршрутизацию —
в docs/proxy.md.api.telegram.org — напрямую или через прокси
(docs/proxy.md).Получите токен бота у @BotFather (/newbot)
и свой числовой ID у @userinfobot.
На VPS с установленным AmneziaWG-инсталлером выполните:
curl -fsSL https://github.com/ekuraev/awgram/releases/latest/download/install.sh | bash
Ответьте на вопросы установщика (язык, режим root/hardened, токен,
ID админов) — готово: откройте бота в Telegram и нажмите /start.
Полностью автоматическая установка — флагами:
curl -fsSL https://github.com/ekuraev/awgram/releases/latest/download/install.sh \
| bash -s -- install --lang ru --mode root --token 'ТОКЕН' --admins 111111111 --yes
Токен можно не передавать флагом (тогда он не попадёт ни в argv, ни в
историю шелла) — вместо этого export AWGRAM_TOKEN='ТОКЕН' перед той же
командой без --token.
Управление после установки: awgram-setup update | config | status | uninstall.
Предрелизные сборки — awgram-setup update --channel rc; подробнее о каналах
обновлений — в docs/operations.md.
awgram — один статический бинарник (Rust, teloxide, long polling, без
webhook), который живёт на том же VPS, что и VPN. Конфигурацию AmneziaWG он
не трогает — вызывает штатный скрипт manage_amneziawg.sh (без shell, с
флагом --json) и рендерит результат в inline-меню Telegram. Доступ
ограничен владельцами из admin_ids и назначенными ими групповыми
админами; токен и содержимое .conf/QR никогда не попадают в логи.
Бот — надстройка над manage_amneziawg.sh из
bivlked/amneziawg-installer
и напрямую зависит от его --json-интерфейса.
--json-контракт), минимальная —
v5.21.0.add, remove, list, stats, regen, modify, backup,
restore, check, restart, repair-module — все с --json.add --allowed-ips (в инсталлере с v5.32.0) определяется по
справке скрипта, а не по версии; без него работает путь add + modify.Что менялось в каждой версии инсталлера и как это отразилось на боте — в docs/compat.md.
Нужен стабильный Rust не ниже 1.95 и cargo; TLS — на rustls, системный
libssl не нужен.
cargo build --release # target/release/awgram
./scripts/build-musl.sh [arm64|all] # статические Linux-бинарники в dist/ (нужен Docker)
Релизы на тег v* собирают бинарники amd64+arm64 c sha256-суммами
автоматически.
manage_amneziawg.sh, на которые опирается бот.74 commits
12 commits
Rust
93.6%
Shell
6.4%