feat: Add admin management system with super admin controls
Some checks failed
continuous-integration/drone/pr Build is failing
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:
202
DEPLOY_QUICK_START.md
Normal file
202
DEPLOY_QUICK_START.md
Normal 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/` 📚
|
||||
Reference in New Issue
Block a user