Инициализация проекта

Всем привет :)
This commit is contained in:
2025-10-16 16:27:36 +07:00
commit 0e93af1d8c
23 changed files with 4058 additions and 0 deletions

93
README.md Normal file
View File

@@ -0,0 +1,93 @@
# WG_SERF - WireGuard Server Panel
Современная веб-панель для управления WireGuard VPN серверами. Всё в одном файле.
## 🎯 Что умеет
- 🌐 **Создавайте VPN серверы** - несколько серверов на одной машине (wg0, wg1...)
- 👥 **Управляйте клиентами** - добавляйте пользователей в пару кликов
- 📱 **QR коды** - клиент отсканирует и подключится за 10 секунд
- 🔀 **Проброс портов** - открывайте порты клиентам (SSH, RDP, игры)
- 📊 **Мониторинг в реальном времени** - кто онлайн, сколько трафика
- 🌓 **Темная и Светлая тема** - приятно работать ночью и днём
- ⚙️ **Автонастройка** - подсети, порты, IP - всё автоматически
## 🚀 Быстрый старт
**Скачайте и установите одной командой:**
1. Нужно зайти на сервер под root
```bash
wget https://vserf.ru/download/wgserf/wg_serf && chmod +x wg_serf && ./wg_serf
```
## 📋 Команды
```bash
wg_serf # Показать информацию и статус
wg_serf install # Установить (только один раз)
wg_serf start # Запустить
wg_serf stop # Остановить
wg_serf restart # Перезапустить
wg_serf status # Статус сервиса
wg_serf delete # Полностью удалить
```
## 🔧 Разработка
**Структура проекта:**
```
WG_Serv/
├── main.go # Точка входа + CLI
├── go.mod / go.sum
├── build/
│ └── wg_serf # Скомпилированный бинарник
└── internal/
├── server/ # HTTP + handlers + embed HTML
├── wireguard/ # Логика WireGuard + iptables
└── database/ # БД, конфиг, типы, утилиты
```
**Компиляция:**
```bash
# PowerShell (Windows)
$env:GOOS="linux"; $env:GOARCH="amd64"; go build -ldflags="-s -w" -o build/wg_serf .
# Bash (Linux/Mac)
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o build/wg_serf .
```
**Зависимости:**
- `github.com/skip2/go-qrcode` - генерация QR кодов
- Всё остальное - встроенные библиотеки Go
## 🔄 Как это работает
1. **Синхронизация:** При запуске БД синхронизируется с WireGuard (удаляет лишние интерфейсы, создает нужные)
2. **Статистика:** Обновляется каждые 5 секунд
3. **Онлайн/офлайн:** Клиент онлайн если handshake < 30 секунд (PersistentKeepalive = 10 сек)
4. **Автоперезапуск:** При сбое systemd автоматически перезапустит
5. **Пробросы портов:** Применяются автоматически через iptables
6. **Автоматический IPtables** Автоматически очищает и заполняет при старте сервера IpTables
## 📁 Файлы
После установки в `/opt/wg_serf/`:
- `wg_serf` - бинарник
- `config.json` - настройки (порт, логин, пароль)
- `db.json` - база данных (серверы, клиенты)
- `wg_serf.pid` - PID запущенного процесса
## 🛡️ Безопасность
- Cookie-based авторизация (24 часа)
- Проверка уникальности портов и подсетей
- Безопасные имена файлов
- Работает только под root
## 👨‍💻 Автор
Создано для удобного управления WireGuard VPN
**Разработчик:** [voxsel.com](https://voxsel.com/)
**Отличный WebServer для Windows:** [vserf.ru](https://vserf.ru/)