Add detailed update instructions to README

This commit is contained in:
tgvpn
2026-05-21 00:50:40 +03:00
parent f360d53614
commit feb1095de0
+97 -4
View File
@@ -39,6 +39,7 @@ TELEGRAM_ADMIN_ID=123456789
REMNAWAVE_PANEL_NAME=Панель 1 REMNAWAVE_PANEL_NAME=Панель 1
REMNAWAVE_PANEL_URL=https://panel.example.com REMNAWAVE_PANEL_URL=https://panel.example.com
REMNAWAVE_API_TOKEN=токен_из_панели REMNAWAVE_API_TOKEN=токен_из_панели
REMNAWAVE_SUBSCRIPTION_URL=https://sub.example.com
``` ```
> **Важно:** файл `.env` не попадает в git и не копируется в образ. Compose передаёт переменные в контейнер при старте. > **Важно:** файл `.env` не попадает в git и не копируется в образ. Compose передаёт переменные в контейнер при старте.
@@ -152,21 +153,113 @@ sudo systemctl enable docker
sudo systemctl start docker sudo systemctl start docker
``` ```
### Шаг 7. Обновление версии бота ### Шаг 7. Обновление
См. раздел [Обновление бота](#обновление-бота) ниже.
---
## Обновление бота
Инструкция для уже работающей установки: подтянуть код из git, пересобрать контейнер и убедиться, что бот запустился.
### Перед обновлением
1. Убедитесь, что `.env` сохранён на сервере (он не в git).
2. Посмотрите, не появились ли новые переменные в `.env.example`:
```bash
cd /opt/tgvpn # или каталог, куда клонировали проект
git fetch origin
git diff HEAD origin/main -- .env.example
```
Если в `.env.example` есть новые строки — добавьте их в свой `.env` вручную.
### Обновление на VPS (Docker)
```bash ```bash
cd /opt/tgvpn cd /opt/tgvpn
git pull
# 1. Скачать изменения
git pull origin main
# 2. Пересобрать и перезапустить (простой даунтайм ~10–30 сек)
docker compose up -d --build docker compose up -d --build
docker compose logs --tail=30 bot
# 3. Проверить логи
docker compose ps
docker compose logs --tail=50 bot
``` ```
Старый образ можно удалить (опционально): В логах должны быть строки вида: `бот @имя_бота запущен` и `администратор ID …`.
Проверка в Telegram (от аккаунта админа):
- `/start` — бот отвечает
- `/admin check` — проверка панели Remnawave
### Обновление на Windows (Docker Desktop)
```powershell
cd tgvpn
git pull origin main
docker compose up -d --build
docker compose logs --tail=50 bot
```
### Обновление без Docker (локально)
```bash
cd tgvpn
git pull origin main
go build -o bot .
# остановите старый процесс бота, затем:
./bot
```
### Если изменили только `.env`
Пересборка не нужна — достаточно пересоздать контейнер:
```bash
docker compose up -d --force-recreate
```
### Откат на предыдущую версию
```bash
cd /opt/tgvpn
git log --oneline -5 # найти нужный коммит
git checkout <хеш_коммита> # например: git checkout f360d53
docker compose up -d --build
```
Вернуться на актуальную ветку:
```bash
git checkout main
git pull origin main
docker compose up -d --build
```
### Очистка старых образов Docker (опционально)
После нескольких обновлений на диске копятся неиспользуемые слои:
```bash ```bash
docker image prune -f docker image prune -f
``` ```
### Частые проблемы при обновлении
| Симптом | Решение |
|---------|---------|
| `git pull` конфликтует с локальными правками | `git stash``git pull``git stash pop` или сбросить локальные изменения: `git checkout -- .` |
| Бот не стартует после pull | `docker compose logs bot` — часто не хватает новой переменной в `.env` |
| Старый код в контейнере | Обязательно `--build`: `docker compose up -d --build` |
| Нет доступа к git | Проверьте SSH/HTTPS-доступ к `git.evilfox.cc` |
--- ---
## Развёртывание на Windows ## Развёртывание на Windows