ASIC Hub VPN — это веб-интерфейс для управления вашими RPi и ASIC через WireGuard VPN. Проект позволяет централизованно отслеживать состояние ваших устройств (Online/Offline) и переходить на их страницы через единый хаб, доступный только по VPN.
- Централизованный веб-хаб для всех ASIC и RPi
- Индикаторы Online/Offline для каждого устройства
- Доступ только через VPN (WireGuard)
- Автозапуск через Docker и Docker Compose
- Простое масштабирование на любое количество устройств
/asic_hub/
├── app.py # Flask-приложение
├── Dockerfile # Docker образ
├── docker-compose.yml # Поднятие сервиса
├── requirements.txt # Python зависимости
└── .env # Переменные окружения (VPS_IP)
apt update
apt install -y wireguard iptables-persistent
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wireguard.conf
sysctl --systemСоздайте файл /etc/wireguard/wg0.conf:
[Interface]
Address = 10.50.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>
# RPi1
[Peer]
PublicKey = <RPI1_PUBLIC_KEY>
AllowedIPs = 10.50.0.10/32
# RPi2
[Peer]
PublicKey = <RPI2_PUBLIC_KEY>
AllowedIPs = 10.50.0.11/32Запуск сервиса:
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
wg showНа каждой RPi создаём /etc/wireguard/wg0.conf:
[Interface]
PrivateKey = <RPI_PRIVATE_KEY>
Address = 10.50.0.10/32
MTU = 1420
[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = <VPS_PUBLIC_IP>:51820
AllowedIPs = 10.50.0.0/24
PersistentKeepalive = 25Запуск:
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0Проверка соединения:
ping 10.50.0.10 # с VPS
ping 10.50.0.1 # с RPi- Клонируем репозиторий:
git clone <URL_репозитория> /opt/asic_hub
cd /opt/asic_hub- Создаём
.env:
VPS_IP=10.50.0.1
- Собираем и запускаем контейнер:
docker-compose build
docker-compose up -d- Открываем веб-интерфейс в браузере:
http://10.50.0.1:5000
Список ASIC/RPi настраивается в app.py:
devices = [
{"name": "RPi1 ASIC100", "url": f"http://{VPS_IP}:18081"},
{"name": "RPi1 ASIC101", "url": f"http://{VPS_IP}:18080"},
{"name": "RPi2 ASIC100", "url": f"http://{VPS_IP}:28080"},
{"name": "RPi2 ASIC101", "url": f"http://{VPS_IP}:28081"},
{"name": "RPi2 ASIC102", "url": f"http://{VPS_IP}:28082"},
{"name": "RPi2 ASIC104", "url": f"http://{VPS_IP}:28083"},
]Каждый ASIC отображается с бейджиком Online/Offline, автоматически обновляемым при загрузке страницы.
- Контейнер автоматически перезапускается после рестарта VPS (
restart: unless-stopped) - Можно масштабировать, добавляя новые устройства в список
devices - Для публичного доступа через интернет рекомендуется использовать Nginx/Traefik + HTTPS
MIT License