Files
new_lottery_bot/DEPLOY_QUICK_START.md
Andrew K. Choi e1b4465f89
Some checks failed
continuous-integration/drone/pr Build is failing
feat: Add admin management system with super admin controls
- 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
2026-02-18 13:19:26 +09:00

203 lines
5.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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