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
5.3 KiB
5.3 KiB
🚀 Быстрый старт развертывания на сервер
📍 Сервер: 192.168.0.103
👤 Пользователь: trevor
⚡ 3 минуты на развертывание
1️⃣ Подключитесь к серверу
ssh trevor@192.168.0.103
# Пароль: R0sebud
2️⃣ Перейдите в проект
cd ~/new_lottery_bot
3️⃣ Создайте .env файл
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→ токен из @BotFatherpassword→ пароль PostgreSQL123456789→ ваш Telegram ID
4️⃣ Запустите развертывание
chmod +x scripts/deploy_and_run.sh scripts/deploy_server.sh
./scripts/deploy_and_run.sh
Готово! Бот работает! 🎉
🔧 Альтернативные способы запуска
Вариант 1: Пошаговый запуск
# Создание виртуального окружения
python3 -m venv venv
source venv/bin/activate
# Установка зависимостей
pip3 install -r requirements.txt
# Проверка БД
python3 scripts/check_db.py
# Запуск бота
python3 main.py
Вариант 2: Только развертывание (без запуска)
chmod +x scripts/deploy_server.sh
./scripts/deploy_server.sh
Вариант 3: Screen (фоновый запуск)
# Создаем screen сессию
screen -S lottery-bot
# Внутри screen:
source venv/bin/activate
python3 main.py
# Выход (Ctrl+A затем D)
Для повторного подключения:
screen -r lottery-bot
Вариант 4: Systemd (production)
Смотрите файл docs/SERVER_DEPLOYMENT.md раздел "Системд сервис"
📋 Подготовка БД PostgreSQL
Если БД еще не создана на сервере:
# Подключитесь как админ (на сервере)
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
Проверьте подключение:
psql -h localhost -U trevor -d lottery_bot -c "SELECT 1"
✅ Проверка работы
# Если видите в логах:
# " Bot started successfully!" - всё работает! ✅
# Отправьте сообщение боту через Telegram
# Если получите ответ - бот работает! 🎉
🆘 Если возникают проблемы
"Connection refused"
# Проверьте PostgreSQL на сервере
sudo systemctl status postgresql
# Проверьте переменную DATABASE_URL в .env
cat .env | grep DATABASE_URL
"ModuleNotFoundError"
source venv/bin/activate
pip3 install -r requirements.txt
"Bot token is invalid"
# Получите новый токен от @BotFather
# Обновите переменную BOT_TOKEN в .env
nano .env
Подробные логи
# Запустите с логированием
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) |
🎯 Что дальше?
После успешного запуска:
- Откройте админ-панель:
/admin_panel(в боте) - Управляйте розыгрышами: создавайте, редактируйте, проводите
- Управляйте администраторами:
⚙️ Настройки → 👑 Управление админами - Смотрите логи:
logs/директория
🔒 Рекомендации по безопасности
- ✅ Используйте сильные пароли для PostgreSQL
- ✅ Пробросьте firewall правила (разрешить только необходимые порты)
- ✅ Регулярно делайте резервные копии БД
- ✅ Обновляйте dependencies:
pip3 install --upgrade -r requirements.txt - ✅ Используйте HTTPS/TLS для всех连ections
Вопросы? Смотрите файлы документации в папке docs/ 📚