feat: Add admin management system with super admin controls
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
This commit is contained in:
2026-02-18 13:19:26 +09:00
parent d263730cf2
commit e1b4465f89
12 changed files with 1817 additions and 2 deletions

202
DEPLOY_QUICK_START.md Normal file
View File

@@ -0,0 +1,202 @@
# 🚀 Быстрый старт развертывания на сервер
📍 Сервер: `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/` 📚