Обновлен файл docker-compose.yml с заменой переменных окружения на значения по умолчанию для упрощения настройки. Исправлены ссылки на переменные в Makefile для соответствия новым именам. Обновлена документация в README_DOCKER.md для отражения изменений в конфигурации и обязательных значений. Эти изменения улучшают удобство настройки и документацию проекта.

This commit is contained in:
Vlad 2025-06-04 08:07:29 +03:00
parent c0a8cf1334
commit 3e1a090fc8
3 changed files with 69 additions and 46 deletions

View File

@ -66,7 +66,7 @@ test-env: ## Проверить переменные окружения
test-db: ## Тестировать подключение к БД
@echo "🗄️ Testing database connection..."
docker-compose exec $(SERVICE_NAME) python -c "import oracledb, os; conn = oracledb.connect(user=os.getenv('DB_USER'), password=os.getenv('DB_PASSWORD'), dsn=os.getenv('DB_DSN')); print('✅ Database connection successful!'); conn.close()"
docker-compose exec $(SERVICE_NAME) python -c "import oracledb, os; conn = oracledb.connect(user=os.getenv('db_user'), password=os.getenv('db_password'), dsn=os.getenv('db_dsn')); print('✅ Database connection successful!'); conn.close()"
test-bot: ## Проверить импорты бота
@echo "🤖 Testing bot imports..."
@ -91,9 +91,9 @@ backup-logs: ## Создать архив логов
@echo "💾 Creating logs backup..."
tar -czf logs_backup_$(shell date +%Y%m%d_%H%M%S).tar.gz logs/
backup-env: ## Создать бэкап переменных окружения
@echo "🔐 Creating environment backup..."
cp .env .env.backup.$(shell date +%Y%m%d_%H%M%S)
backup-config: ## Создать бэкап конфигурации
@echo "🔐 Creating configuration backup..."
cp docker-compose.yml docker-compose.yml.backup.$(shell date +%Y%m%d_%H%M%S)
# Деплой
deploy: build up ## Полный деплой (сборка + запуск)
@ -132,17 +132,28 @@ update: ## Обновить код и перезапустить
# Конфигурация
setup: ## Первоначальная настройка
@echo "⚙️ Initial setup..."
@if [ ! -f .env ]; then \
echo "📝 Creating .env file from template..."; \
cp env.example .env; \
echo "✅ Please edit .env file with your configuration"; \
else \
echo "✅ .env file already exists"; \
fi
@echo "📁 Creating directories..."
mkdir -p logs images data
chmod 755 logs images data
@echo "✅ Setup complete! Edit .env file and run 'make deploy'"
@echo "✅ Setup complete! Edit docker-compose.yml with your configuration and run 'make deploy'"
config-check: ## Проверить конфигурацию docker-compose.yml
@echo "🔍 Checking docker-compose.yml configuration..."
@if grep -q "your_bot_token_here" docker-compose.yml; then \
echo "❌ BOT_TOKEN not configured"; \
else \
echo "✅ BOT_TOKEN configured"; \
fi
@if grep -q "your_db_user" docker-compose.yml; then \
echo "❌ Database credentials not configured"; \
else \
echo "✅ Database credentials configured"; \
fi
@if grep -q "123456789" docker-compose.yml; then \
echo "⚠️ ADMIN_USER_ID using default value"; \
else \
echo "✅ ADMIN_USER_ID configured"; \
fi
# По умолчанию
.DEFAULT_GOAL := help

View File

@ -11,19 +11,27 @@
## 🚀 Быстрый старт
### 1. Подготовка переменных окружения
### 1. Настройка конфигурации
Скопируйте файл с примером и настройте переменные:
Отредактируйте файл `docker-compose.yml` и замените значения по умолчанию на ваши:
```bash
cp env.example .env
nano .env
```yaml
environment:
# Telegram Bot настройки
- BOT_TOKEN=your_actual_bot_token_here # Замените на токен от @BotFather
- BOT_NAME=SalvageDB Bot
- ADMIN_USER_ID=your_telegram_user_id # Замените на ваш Telegram ID
# База данных Oracle
- db_user=your_actual_db_user # Замените на пользователя БД
- db_password=your_actual_db_password # Замените на пароль БД
- db_dsn=your_db_host:1521/service_name # Замените на DSN вашей БД
```
Обязательно настройте следующие переменные:
**Обязательно замените:**
- `BOT_TOKEN` - токен от @BotFather
- `DB_USER`, `DB_PASSWORD`, `DB_DSN` - настройки Oracle DB
- `ADMIN_USER_ID` - ваш Telegram ID для админ-функций
- `db_user`, `db_password`, `db_dsn` - настройки Oracle DB
### 2. Создание необходимых директорий
@ -31,7 +39,7 @@ nano .env
# Создаем директории для данных
mkdir -p logs images data
# Устанавливаем права доступа
# Устанавливаем права доступа (Linux/macOS)
chmod 755 logs images data
```
@ -53,10 +61,10 @@ docker-compose logs -f salvagedb-bot
```
salvagedb_bot/
├── Dockerfile # Конфигурация Docker образа
├── docker-compose.yml # Orchestration конфигурация
├── docker-compose.yml # Orchestration конфигурация (содержит все настройки)
├── docker-entrypoint.sh # Скрипт инициализации
├── .dockerignore # Исключения для Docker
├── env.example # Пример переменных окружения
├── env.example # Пример переменных (справочно)
├── requirements.txt # Python зависимости
├── main.py # Основной код бота
├── db.py # Модуль работы с БД
@ -68,21 +76,25 @@ salvagedb_bot/
## 🔧 Конфигурация
### Переменные окружения
### Переменные окружения в docker-compose.yml
Все настройки находятся в файле `docker-compose.yml` в секции `environment`:
| Переменная | Описание | Значение по умолчанию |
|-----------|----------|----------------------|
| `BOT_TOKEN` | Токен Telegram бота | **Обязательно** |
| `BOT_TOKEN` | Токен Telegram бота | `your_bot_token_here` ⚠️ |
| `BOT_NAME` | Имя бота | `SalvageDB Bot` |
| `ADMIN_USER_ID` | ID администратора | **Обязательно** |
| `ADMIN_USER_ID` | ID администратора | `123456789` ⚠️ |
| `DECODE_PRICE` | Цена декодирования VIN | `1` |
| `CHECK_PRICE` | Цена проверки повреждений | `10` |
| `IMG_PRICE` | Цена доступа к фото | `100` |
| `DB_USER` | Пользователь Oracle DB | **Обязательно** |
| `DB_PASSWORD` | Пароль Oracle DB | **Обязательно** |
| `DB_DSN` | DSN строка Oracle DB | **Обязательно** |
| `db_user` | Пользователь Oracle DB | `your_db_user` ⚠️ |
| `db_password` | Пароль Oracle DB | `your_db_password` ⚠️ |
| `db_dsn` | DSN строка Oracle DB | `localhost:1521/XEPDB1` ⚠️ |
| `DEBUG` | Режим отладки | `0` |
| `TIMEZONE` | Часовой пояс | `UTC` |
| `TZ` | Часовой пояс | `UTC` |
**⚠️ Обязательно замените** отмеченные значения на реальные!
### Volumes
@ -150,7 +162,7 @@ docker inspect salvagedb-telegram-bot
### Рекомендации
1. **Переменные окружения:**
- Никогда не коммитьте `.env` файл
- Замените все placeholder значения в docker-compose.yml
- Используйте сильные пароли для БД
- Ограничьте доступ к токену бота
@ -174,7 +186,7 @@ docker-compose exec salvagedb-bot python -c "import oracledb; print(oracledb.ver
docker-compose exec salvagedb-bot python -c "
import oracledb
import os
conn = oracledb.connect(user=os.getenv('DB_USER'), password=os.getenv('DB_PASSWORD'), dsn=os.getenv('DB_DSN'))
conn = oracledb.connect(user=os.getenv('db_user'), password=os.getenv('db_password'), dsn=os.getenv('db_dsn'))
print('Connection successful!')
conn.close()
"
@ -190,14 +202,14 @@ print('Bot token length:', len(os.getenv('BOT_TOKEN', '')))
"
# Проверка aiogram
docker-compose exec salvagebot-bot python -c "import aiogram; print('aiogram version:', aiogram.__version__)"
docker-compose exec salvagedb-bot python -c "import aiogram; print('aiogram version:', aiogram.__version__)"
```
### Логи отладки
```bash
# Включить DEBUG режим
echo "DEBUG=1" >> .env
# Включить DEBUG режим (отредактировать docker-compose.yml)
# Изменить: DEBUG=1
docker-compose restart
# Просмотр подробных логов
@ -225,7 +237,7 @@ docker-compose logs -f salvagedb-bot
При возникновении проблем:
1. Проверьте логи: `docker-compose logs salvagedb-bot`
2. Убедитесь в правильности переменных окружения
2. Убедитесь в правильности переменных в docker-compose.yml
3. Проверьте подключение к Oracle DB
4. Проверьте валидность токена бота

View File

@ -11,24 +11,24 @@ services:
# Переменные окружения
environment:
# Telegram Bot настройки
- BOT_TOKEN=${BOT_TOKEN}
- BOT_NAME=${BOT_NAME:-SalvageDB Bot}
- ADMIN_USER_ID=${ADMIN_USER_ID}
- BOT_TOKEN=your_bot_token_here
- BOT_NAME=SalvageDB Bot
- ADMIN_USER_ID=123456789
# Цены на услуги (в Telegram Stars)
- DECODE_PRICE=${DECODE_PRICE:-1}
- CHECK_PRICE=${CHECK_PRICE:-10}
- IMG_PRICE=${IMG_PRICE:-100}
- DECODE_PRICE=1
- CHECK_PRICE=10
- IMG_PRICE=100
# База данных Oracle
- db_user=${DB_USER}
- db_password=${DB_PASSWORD}
- db_dsn=${DB_DSN}
- db_user=your_db_user
- db_password=your_db_password
- db_dsn=localhost:1521/XEPDB1
# Настройки приложения
- DEBUG=${DEBUG:-0}
- DEBUG=0
- PYTHONUNBUFFERED=1
- TZ=${TIMEZONE:-UTC}
- TZ=UTC
# Монтируем volumes для логов и изображений
volumes: