Some checks failed
continuous-integration/drone/pr Build is failing
- Implemented two-level admin hierarchy (super admin from .env and assigned admins) - Only super admins (from ADMIN_IDS in .env) can manage admin assignments - Added admin management menu to settings (visible only for super admins) - Admins can add/remove other admins through the bot interface - Protected super admins from deletion - Added CLI tool for admin management (scripts/manage_admins.py) - Added database check script (scripts/check_db.py) - Added deployment scripts for server setup - Added comprehensive documentation on admin management system - Added backup and server deployment guides
203 lines
5.3 KiB
Markdown
203 lines
5.3 KiB
Markdown
# 🚀 Быстрый старт развертывания на сервер
|
||
|
||
📍 Сервер: `192.168.0.103`
|
||
👤 Пользователь: `trevor`
|
||
|
||
## ⚡ 3 минуты на развертывание
|
||
|
||
### 1️⃣ Подключитесь к серверу
|
||
|
||
```bash
|
||
ssh trevor@192.168.0.103
|
||
# Пароль: R0sebud
|
||
```
|
||
|
||
### 2️⃣ Перейдите в проект
|
||
|
||
```bash
|
||
cd ~/new_lottery_bot
|
||
```
|
||
|
||
### 3️⃣ Создайте .env файл
|
||
|
||
```bash
|
||
cat > .env << 'EOF'
|
||
BOT_TOKEN=your_bot_token_here
|
||
DATABASE_URL=postgresql://trevor:password@localhost:5432/lottery_bot
|
||
ADMIN_IDS=123456789
|
||
LOG_LEVEL=INFO
|
||
EOF
|
||
```
|
||
|
||
**Замените:**
|
||
- `your_bot_token_here` → токен из @BotFather
|
||
- `password` → пароль PostgreSQL
|
||
- `123456789` → ваш Telegram ID
|
||
|
||
### 4️⃣ Запустите развертывание
|
||
|
||
```bash
|
||
chmod +x scripts/deploy_and_run.sh scripts/deploy_server.sh
|
||
./scripts/deploy_and_run.sh
|
||
```
|
||
|
||
**Готово! Бот работает!** 🎉
|
||
|
||
---
|
||
|
||
## 🔧 Альтернативные способы запуска
|
||
|
||
### Вариант 1: Пошаговый запуск
|
||
|
||
```bash
|
||
# Создание виртуального окружения
|
||
python3 -m venv venv
|
||
source venv/bin/activate
|
||
|
||
# Установка зависимостей
|
||
pip3 install -r requirements.txt
|
||
|
||
# Проверка БД
|
||
python3 scripts/check_db.py
|
||
|
||
# Запуск бота
|
||
python3 main.py
|
||
```
|
||
|
||
### Вариант 2: Только развертывание (без запуска)
|
||
|
||
```bash
|
||
chmod +x scripts/deploy_server.sh
|
||
./scripts/deploy_server.sh
|
||
```
|
||
|
||
### Вариант 3: Screen (фоновый запуск)
|
||
|
||
```bash
|
||
# Создаем screen сессию
|
||
screen -S lottery-bot
|
||
|
||
# Внутри screen:
|
||
source venv/bin/activate
|
||
python3 main.py
|
||
|
||
# Выход (Ctrl+A затем D)
|
||
```
|
||
|
||
Для повторного подключения:
|
||
```bash
|
||
screen -r lottery-bot
|
||
```
|
||
|
||
### Вариант 4: Systemd (production)
|
||
|
||
Смотрите файл [docs/SERVER_DEPLOYMENT.md](docs/SERVER_DEPLOYMENT.md) раздел "Системд сервис"
|
||
|
||
---
|
||
|
||
## 📋 Подготовка БД PostgreSQL
|
||
|
||
Если БД еще не создана на сервере:
|
||
|
||
```bash
|
||
# Подключитесь как админ (на сервере)
|
||
sudo -u postgres psql
|
||
|
||
# Создайте БД и пользователя
|
||
CREATE USER trevor WITH PASSWORD 'secure_password';
|
||
CREATE DATABASE lottery_bot OWNER trevor;
|
||
GRANT ALL PRIVILEGES ON DATABASE lottery_bot TO trevor;
|
||
GRANT ALL PRIVILEGES ON SCHEMA public TO trevor;
|
||
\q
|
||
```
|
||
|
||
Проверьте подключение:
|
||
```bash
|
||
psql -h localhost -U trevor -d lottery_bot -c "SELECT 1"
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Проверка работы
|
||
|
||
```bash
|
||
# Если видите в логах:
|
||
# " Bot started successfully!" - всё работает! ✅
|
||
|
||
# Отправьте сообщение боту через Telegram
|
||
# Если получите ответ - бот работает! 🎉
|
||
```
|
||
|
||
---
|
||
|
||
## 🆘 Если возникают проблемы
|
||
|
||
### "Connection refused"
|
||
```bash
|
||
# Проверьте PostgreSQL на сервере
|
||
sudo systemctl status postgresql
|
||
|
||
# Проверьте переменную DATABASE_URL в .env
|
||
cat .env | grep DATABASE_URL
|
||
```
|
||
|
||
### "ModuleNotFoundError"
|
||
```bash
|
||
source venv/bin/activate
|
||
pip3 install -r requirements.txt
|
||
```
|
||
|
||
### "Bot token is invalid"
|
||
```bash
|
||
# Получите новый токен от @BotFather
|
||
# Обновите переменную BOT_TOKEN в .env
|
||
nano .env
|
||
```
|
||
|
||
### Подробные логи
|
||
```bash
|
||
# Запустите с логированием
|
||
python3 main.py 2>&1 | tee logs/bot.log
|
||
|
||
# Или если используете systemd
|
||
sudo journalctl -u lottery-bot -f
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 Дополнительная информация
|
||
|
||
| Файл | Назначение |
|
||
|------|-----------|
|
||
| `docs/SERVER_DEPLOYMENT.md` | Полный гайд развертывания |
|
||
| `docs/ADMIN_MANAGEMENT_SYSTEM.md` | Управление администраторами |
|
||
| `scripts/deploy_server.sh` | Автоматическое развертывание |
|
||
| `scripts/deploy_and_run.sh` | Развертывание + запуск |
|
||
| `scripts/check_db.py` | Проверка БД перед запуском |
|
||
| `scripts/manage_admins.py` | Управление админами (CLI) |
|
||
|
||
---
|
||
|
||
## 🎯 Что дальше?
|
||
|
||
После успешного запуска:
|
||
|
||
1. **Откройте админ-панель**: `/admin_panel` (в боте)
|
||
2. **Управляйте розыгрышами**: создавайте, редактируйте, проводите
|
||
3. **Управляйте администраторами**: `⚙️ Настройки → 👑 Управление админами`
|
||
4. **Смотрите логи**: `logs/` директория
|
||
|
||
---
|
||
|
||
## 🔒 Рекомендации по безопасности
|
||
|
||
- ✅ Используйте сильные пароли для PostgreSQL
|
||
- ✅ Пробросьте firewall правила (разрешить только необходимые порты)
|
||
- ✅ Регулярно делайте резервные копии БД
|
||
- ✅ Обновляйте dependencies: `pip3 install --upgrade -r requirements.txt`
|
||
- ✅ Используйте HTTPS/TLS для всех连ections
|
||
|
||
---
|
||
|
||
**Вопросы?** Смотрите файлы документации в папке `docs/` 📚
|