Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

206 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWG-Forge

English README

Self-hosted панель управления AmneziaWG для Docker: Go backend, встроенный Web UI и CLI для туннелей, клиентов, диагностики, backup/restore и безопасного обслуживания.

Главный экран awg-forge

Почему AWG-Forge

  • Готовый Docker-based setup: backend, Web UI, CLI и runtime-инструменты поставляются вместе.
  • Безопасный дефолт для панели: Web UI слушает 127.0.0.1, а не публичный интерфейс сервера.
  • Несколько независимых туннелей на одном VPS: разные профили, UDP-порты и egress-сценарии без ручного редактирования Docker port mappings.
  • Гибкий IPv4 egress: туннель может выходить напрямую через сервер или через Cloudflare WARP.
  • Управление и обслуживание в одном месте: повседневные действия через Web UI, диагностика и автоматизация через CLI.

Что поддерживается

  • Профили AmneziaWG: Legacy / 1.0, 1.5-oriented profile и 2.0.
  • Туннели: отдельные профили, UDP-порты, подсети, endpoint-настройки и IPv4 egress.
  • IPv6 egress пока не поддерживается; клиентские конфиги намеренно используют AllowedIPs = 0.0.0.0/0 без ::/0.
  • Egress: Server WAN или Cloudflare WARP на уровне отдельного туннеля.
  • Клиенты: создание, скачивание .conf, AmneziaWG QR, AmneziaVPN QR, vpn:// ключ, enable/disable, expiration, delete.
  • Диагностика: Doctor, firewall repair, client status, last seen, received/sent counters.
  • Maintenance Center: Doctor с контекстным firewall repair, WARP, проверкой backup/restore, трафиком, audit log и support diagnostics.

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

Интерактивная установка на Linux/VPS. Нужен Docker:

curl -fsSL https://raw.githubusercontent.com/astronaut808/awg-forge/master/install.sh -o install.sh
chmod +x install.sh
sudo ./install.sh

Скрипт проверит Docker до создания файлов, создаст /opt/awg-forge, сгенерирует .env, пароль и SESSION_SECRET, включит SQLite, создаст первый туннель в state.json, применит начальную миграцию SQLite, запустит Docker Compose и покажет команду для SSH tunnel. По умолчанию первый туннель создается на AmneziaWG 2.0.

Обновление managed installation. Используй установщик из master: он соответствует актуальному release и содержит проверки совместимости и migrations этой версии.

curl -fsSL https://raw.githubusercontent.com/astronaut808/awg-forge/master/install.sh -o install.sh
chmod +x install.sh
sudo AWG_FORGE_HOME=/opt/awg-forge ./install.sh upgrade

Для установки не в /opt/awg-forge укажи её каталог: sudo AWG_FORGE_HOME=/srv/awg-forge ./install.sh upgrade. Обычный запуск из каталога managed-инсталляции также обнаружит её и предложит Upgrade в меню.

По умолчанию Web UI слушает 127.0.0.1:51821. Открывай его через SSH tunnel:

ssh -L 51821:127.0.0.1:51821 user@server

Затем открой в браузере:

http://127.0.0.1:51821

Ручной запуск

git clone https://github.com/astronaut808/awg-forge.git
cd awg-forge
cp .env.example .env
mkdir -p data
docker compose run --rm --no-deps awg-forge init \
  --server-host vpn.example.com \
  --external-interface eth0 \
  --profile awg_2_0 \
  --tunnel-name awg20 \
  --listen-port 51830 \
  --ipv4-subnet 10.20.0.0/24
docker compose run --rm --no-deps awg-forge db migrate
docker compose up -d

Перед init замени пример host, интерфейса, порта и подсети. Команда создаёт первый постоянный туннель в data/state.json; изменение legacy tunnel-переменных в .env после этого его не обновит.

Рекомендуемый production-режим — Docker host networking. Так туннели, созданные в UI, могут использовать разные UDP-порты без изменения Docker port mappings.

Важные настройки

  • .env хранит настройки запуска контейнера и Web UI; туннели хранятся в data/state.json.
  • EXTERNAL_INTERFACE — внешний интерфейс сервера для WAN egress.
  • WEBUI_HOST=127.0.0.1 — безопасный дефолт для доступа через SSH tunnel.
  • APPLY_CONFIG=true — применять runtime-туннели и firewall rules.
  • SESSION_COOKIE_SECURE=auto|true|false — политика Secure cookie для Web UI.

Endpoint меняется для конкретного туннеля в Tunnel settings -> Server host. Если после обновления в .env остались старые tunnel-переменные вроде SERVER_HOST, LISTEN_PORT или IPV4_SUBNET, их можно удалить после проверки настроек в UI.

WARP можно выбрать при создании туннеля или включить позже в Tunnel settings -> Egress -> Cloudflare WARP. Если WARP еще не настроен, AWG-Forge автоматически зарегистрирует общий warp0.

Подробнее: Конфигурация.

Проверка после запуска

  1. Создай клиента в UI.
  2. Открой Config у клиента и импортируй через AmneziaVPN QR или скачанный .conf.
  3. Проверь IPv4 egress:
curl -4 https://ifconfig.co

Doctor:

docker exec awg-forge awg-forge doctor

Удаление

Всегда запускай актуальный uninstall.sh из master: он содержит cleanup-логику для текущих и старых версий правил.

curl -fsSL https://raw.githubusercontent.com/astronaut808/awg-forge/master/uninstall.sh | sudo bash

Dry-run перед удалением:

curl -fsSL https://raw.githubusercontent.com/astronaut808/awg-forge/master/uninstall.sh | sudo bash -s -- --dry-run --yes

Backup/restore, firewall repair, support bundle и audit log доступны в Maintenance Center и CLI. Проверка upstream refs доступна через CLI awg-forge updates.

Документация

Разработка

make ci

Локальный запуск без применения runtime-туннелей:

CONFIG_DIR=/private/tmp/awg-forge-dev \
WEBUI_HOST=127.0.0.1 \
WEBUI_PORT=51821 \
PASSWORD=test \
APPLY_CONFIG=false \
go run ./cmd/awg-forge serve

Runtime и Docker image не требуют Node/npm. Web UI собирается из web/ через Vite/Preact/TypeScript и встраивается в Go-бинарь как статические файлы.

Поддержать проект

Если проект оказался полезным, можно поддержать разработку донатом:

  • USDT (TRC20): TBQcgJ9UoGEBXBwPMcf97t3uJiTCRnVmji
  • GRAM (ex TON): UQCrUmIsUBgIJJJNKpvOO5dxpUH5r7xCz9-AJ2IHUTIckJhS

Независимость проекта

AWG-Forge — независимый open-source проект для администрирования AmneziaWG-инфраструктуры.

Проект не аффилирован с Amnezia.org, не разрабатывается и не поддерживается командой Amnezia. Название AmneziaWG используется только для обозначения совместимости с соответствующим протоколом и инструментами.

Лицензия

MIT

About

Self-hosted AmneziaWG server manager with Docker, Web UI, CLI, multi-profile tunnels, diagnostics, backups, and firewall repair.

Topics

Resources

Contributing

Security policy

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages