Add interactive install.sh for server deployment

This commit is contained in:
tgvpn
2026-05-21 01:22:54 +03:00
parent fd22714c9b
commit 30866bb244
5 changed files with 352 additions and 6 deletions
+59
View File
@@ -7,6 +7,7 @@ Telegram-бот на Go для управления VPN через панель
## Содержание
- [Требования](#требования)
- [Установщик (рекомендуется)](#установщик-на-сервере)
- [Быстрый старт](#быстрый-старт-docker-compose)
- [PostgreSQL](#postgresql)
- [Развёртывание на VPS](#развёртывание-на-vps-linux)
@@ -29,6 +30,63 @@ Telegram-бот на Go для управления VPN через панель
---
## Установщик на сервере
Интерактивный скрипт запросит все параметры, создаст `.env` и запустит Docker.
### Требования на сервере
- Linux (Ubuntu 22.04/24.04, Debian 12)
- `curl`, `git` (для клонирования)
- Права `sudo` (для установки Docker при необходимости)
### Установка одной командой
Если репозиторий уже на сервере:
```bash
cd tgvpn
chmod +x install.sh
./install.sh
```
Или скачайте скрипт и укажите каталог `/opt/tgvpn`:
```bash
sudo mkdir -p /opt/tgvpn
cd /opt/tgvpn
git clone <URL-вашего-репозитория> .
chmod +x install.sh
./install.sh
```
### Что спрашивает установщик
| Блок | Параметры |
|------|-----------|
| Telegram | `BOT_TOKEN`, `TELEGRAM_ADMIN_ID`, `BOT_DEBUG` |
| Remnawave | URL панели, API token, Caddy token, subscription URL |
| PostgreSQL | пользователь, база, пароль (можно сгенерировать случайный) |
| VPN | срок по умолчанию, UUID сквадов (опционально) |
| Система | каталог установки, URL git (если не из текущей папки) |
После завершения: `docker compose up -d --build`, проверка `docker compose ps`.
### Переменные окружения для PostgreSQL в compose
В `.env` должны совпадать `POSTGRES_PASSWORD` и пароль в `DATABASE_URL`:
```env
POSTGRES_USER=tgvpn
POSTGRES_PASSWORD=ваш_сильный_пароль
POSTGRES_DB=tgvpn
DATABASE_URL=postgres://tgvpn:ваш_сильный_пароль@db:5432/tgvpn?sslmode=disable
```
Установщик заполняет это автоматически.
---
## Быстрый старт (Docker Compose)
### 1. Клонирование
@@ -645,6 +703,7 @@ tgvpn/
│ │ └── migrations/ # SQL-миграции (001_init.sql)
│ └── remnawave/ # API панели (users, squads)
├── Dockerfile # multi-stage сборка
├── install.sh # интерактивный установщик на сервер
├── docker-compose.yml # bot + PostgreSQL (volume pgdata)
├── .env.example # шаблон переменных
├── .dockerignore