Add detailed update instructions to README
This commit is contained in:
@@ -39,6 +39,7 @@ TELEGRAM_ADMIN_ID=123456789
|
||||
REMNAWAVE_PANEL_NAME=Панель 1
|
||||
REMNAWAVE_PANEL_URL=https://panel.example.com
|
||||
REMNAWAVE_API_TOKEN=токен_из_панели
|
||||
REMNAWAVE_SUBSCRIPTION_URL=https://sub.example.com
|
||||
```
|
||||
|
||||
> **Важно:** файл `.env` не попадает в git и не копируется в образ. Compose передаёт переменные в контейнер при старте.
|
||||
@@ -152,21 +153,113 @@ sudo systemctl enable 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
|
||||
cd /opt/tgvpn
|
||||
git pull
|
||||
|
||||
# 1. Скачать изменения
|
||||
git pull origin main
|
||||
|
||||
# 2. Пересобрать и перезапустить (простой даунтайм ~10–30 сек)
|
||||
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
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user