Добавлена документация и скрипты для работы с БД

- Удалены лишние .gitignore из подпапок (теперь один общий в корне)
- Добавлен import_db.sh для импорта базы данных
- Создана документация: docs/ARCHITECTURE.md для разработчиков
- Создана документация: docs/USER_GUIDE.md для пользователей
- Обновлен .gitignore для исключения временных файлов
This commit is contained in:
vrubelroman 2025-10-28 21:38:10 +03:00
parent 6cb5a9b99f
commit e8ced9bca7
7 changed files with 418 additions and 140 deletions

223
docs/USER_GUIDE.md Normal file
View file

@ -0,0 +1,223 @@
# Инструкция для пользователя
## Первая установка на новом сервере
### Требования
- Docker и Docker Compose установлены
- Доступ к GitHub репозиторию
### Шаг 1: Клонирование репозитория
```bash
git clone https://github.com/vrubelroman/LichessStatTgWeb.git
cd LichessStatTgWeb
```
### Шаг 2: Передача базы данных (опционально)
Если у вас есть бэкап базы данных с другого сервера:
```bash
# Скопируйте файл базы на сервер
cp /path/to/backup.db LichessClientTG_bot/data/lichess_bot.db
```
Или импортируйте через скрипт:
```bash
chmod +x import_db.sh
./import_db.sh /path/to/backup.db
```
### Шаг 3: Запуск
```bash
chmod +x start.sh
./start.sh
```
Скрипт автоматически:
- Остановит существующие контейнеры (если есть)
- Создаст бэкап базы данных
- Пересоберет Docker образы
- Запустит все три сервиса
### Шаг 4: Проверка
Откройте в браузере:
- **API документация**: http://localhost:8001/docs
- **Веб-интерфейс**: http://localhost:5000
Проверьте логи:
```bash
docker logs lichess-telegram-bot -f
```
## Обновление до новой версии
### Шаг 1: Создайте бэкап (рекомендуется)
```bash
chmod +x export_db.sh
./export_db.sh
```
Это создаст копию базы в папке `backups/`.
### Шаг 2: Обновите код
```bash
cd /path/to/LichessStatTgWeb
git pull
```
### Шаг 3: Перезапустите сервисы
```bash
./start.sh
```
**Важно:** `start.sh` **НЕ удалит** вашу базу данных. Она останется в `LichessClientTG_bot/data/`.
### Шаг 4: Проверка
Проверьте что все контейнеры запущены:
```bash
docker ps | grep lichess
```
## Работа с бэкапами
### Экспорт базы данных
```bash
./export_db.sh
```
Создает файл в `backups/export_lichess_bot_YYYYMMDD_HHMMSS.db`
### Импорт базы данных
```bash
./import_db.sh backups/export_lichess_bot_20251028_123456.db
```
Автоматически создаст бэкап текущей базы перед импортом.
## Просмотр логов
### Все сервисы
```bash
docker-compose logs -f
```
### Только бот
```bash
docker logs lichess-telegram-bot -f
```
### Только API
```bash
docker logs lichess-api -f
```
### Только веб-интерфейс
```bash
docker logs lichess-web-view -f
```
## Остановка и удаление
### Остановка без удаления данных
```bash
docker-compose down
```
База данных остается.
### Полное удаление (с данными!)
```bash
docker-compose down -v # ОПАСНО! Удалит volumes
rm -rf LichessClientTG_bot/data/ # Удалит базу данных
```
## Перенос на другой сервер
### На старом сервере:
```bash
./export_db.sh
# Скопируйте файл из backups/ на новый сервер
```
### На новом сервере:
```bash
git clone https://github.com/vrubelroman/LichessStatTgWeb.git
cd LichessStatTgWeb
chmod +x import_db.sh start.sh
./import_db.sh /path/to/backup.db
./start.sh
```
## Устранение проблем
### Порт уже занят
Ошибка: `bind: address already in use`
Решение:
```bash
# Найдите процесс на порту
sudo fuser -k 8001/tcp # Для API
sudo fuser -k 5000/tcp # Для веб-интерфейса
# Перезапустите
./start.sh
```
### Контейнер не запускается
```bash
# Проверьте логи
docker logs lichess-telegram-bot
# Удалите и пересоздайте
docker-compose down
docker-compose build --no-cache
./start.sh
```
### База данных повреждена
```bash
# Восстановите из бэкапа
./import_db.sh backups/export_lichess_bot_YYYYMMDD_HHMMSS.db
```
## Структура проекта
```
LichessStatTgWeb/
├── LichessWebServices/ # API сервис
├── LichessClientTG_bot/ # Telegram бот
│ └── data/
│ └── lichess_bot.db # База данных (НЕ в git!)
├── LichessWebView/ # Веб-интерфейс
├── backups/ # Бэкапы БД (НЕ в git!)
├── docs/ # Документация
├── docker-compose.yml # Конфигурация Docker
├── start.sh # Скрипт запуска
├── export_db.sh # Экспорт БД
└── import_db.sh # Импорт БД
```