All checks were successful
continuous-integration/drone/push Build is passing
9.0 KiB
9.0 KiB
Настройка системы демонов MC Panel
Что такое демоны?
Демоны (Daemons) - это удаленные серверы, на которых можно запускать Minecraft серверы. Система демонов позволяет:
- Распределять серверы по разным физическим машинам
- Масштабировать инфраструктуру
- Управлять серверами на разных локациях из одной панели
- Балансировать нагрузку между серверами
Быстрый старт
1. Установка демона на удаленный сервер
Windows:
# 1. Скопируйте папку daemon на удаленный сервер
# 2. Откройте командную строку в папке daemon
# 3. Установите зависимости
install.bat
# 4. Настройте .env файл
copy .env.example .env
notepad .env
# 5. Запустите демон
start.bat
Linux:
# 1. Скопируйте папку daemon на удаленный сервер
# 2. Установите зависимости
cd daemon
pip install -r requirements.txt
# 3. Настройте .env файл
cp .env.example .env
nano .env
# 4. Запустите демон
python main.py
2. Настройка .env файла демона
# Уникальный ID демона
DAEMON_ID=daemon-1
# Отображаемое имя
DAEMON_NAME=Main Server
# Порт для API
DAEMON_PORT=24444
# Секретный ключ (сгенерируйте случайный)
DAEMON_KEY=your-secret-key-here
# Директория для серверов
SERVERS_DIR=./servers
Важно: Сгенерируйте надежный ключ:
import secrets
print(secrets.token_urlsafe(32))
3. Подключение демона к панели
- Откройте основную панель управления
- Войдите как владелец (owner) или администратор (admin)
- В боковом меню нажмите "Демоны" (иконка сервера)
- Нажмите "Добавить демон"
- Заполните форму:
- Название: Main Server (или любое другое)
- IP адрес: IP адрес сервера с демоном
- Порт: 24444 (или ваш порт из .env)
- Ключ демона: ваш DAEMON_KEY из .env
- Примечания: дополнительная информация (необязательно)
- Нажмите "Добавить"
4. Проверка подключения
После добавления демон должен отображаться со статусом "Онлайн" (зеленый индикатор).
Вы увидите:
- Статус демона (онлайн/оффлайн)
- Использование CPU, ОЗУ и диска
- Количество серверов на демоне
Архитектура
┌─────────────────┐
│ Основная панель │ (порт 8000)
│ (Frontend + │
│ Backend) │
└────────┬─────────┘
│
│ HTTP API
│
┌────┴────┬────────┬────────┐
│ │ │ │
┌───▼───┐ ┌──▼───┐ ┌──▼───┐ ┌──▼───┐
│Daemon1│ │Daemon2│ │Daemon3│ │... │
│(24444)│ │(24444)│ │(24444)│ │ │
└───┬───┘ └──┬───┘ └──┬───┘ └──────┘
│ │ │
┌───▼───┐ ┌──▼───┐ ┌──▼───┐
│Server1│ │Server2│ │Server3│
│Server2│ │Server3│ │Server4│
└───────┘ └──────┘ └──────┘
Безопасность
1. Файрвол
Настройте файрвол, чтобы разрешить доступ к порту демона только с IP основной панели:
Windows (PowerShell):
New-NetFirewallRule -DisplayName "MC Panel Daemon" -Direction Inbound -LocalPort 24444 -Protocol TCP -Action Allow -RemoteAddress "IP_ПАНЕЛИ"
Linux (ufw):
sudo ufw allow from IP_ПАНЕЛИ to any port 24444
Linux (iptables):
sudo iptables -A INPUT -p tcp -s IP_ПАНЕЛИ --dport 24444 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 24444 -j DROP
2. HTTPS (рекомендуется для продакшена)
Используйте reverse proxy (nginx) с SSL сертификатом:
server {
listen 443 ssl http2;
server_name daemon.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:24444;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
3. Сильные ключи
- Используйте случайные ключи длиной минимум 32 символа
- Не используйте одинаковые ключи для разных демонов
- Храните ключи в безопасности
Запуск как сервис
Linux (systemd)
- Создайте файл
/etc/systemd/system/mcpanel-daemon.service:
[Unit]
Description=MC Panel Daemon
After=network.target
[Service]
Type=simple
User=mcpanel
WorkingDirectory=/path/to/daemon
ExecStart=/usr/bin/python3 /path/to/daemon/main.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
- Запустите сервис:
sudo systemctl enable mcpanel-daemon
sudo systemctl start mcpanel-daemon
sudo systemctl status mcpanel-daemon
Windows (NSSM)
- Скачайте NSSM: https://nssm.cc/download
- Установите сервис:
nssm install MCPanelDaemon "C:\Python\python.exe" "C:\path\to\daemon\main.py"
nssm set MCPanelDaemon AppDirectory "C:\path\to\daemon"
nssm start MCPanelDaemon
Управление серверами на демонах
После подключения демона вы можете:
- Создавать серверы - при создании сервера можно будет выбрать демон
- Просматривать статистику - CPU, ОЗУ, диск каждого демона
- Управлять серверами - запуск, остановка, консоль, файлы
- Мониторить состояние - статус демонов обновляется автоматически
Troubleshooting
Демон показывает статус "Оффлайн"
- Проверьте, что демон запущен на удаленном сервере
- Проверьте файрвол и порты
- Проверьте, что ключ в панели совпадает с DAEMON_KEY
- Проверьте IP адрес и порт
- Проверьте логи демона
Ошибка "Connection error"
- Проверьте сетевое подключение между панелью и демоном
- Проверьте, что порт не заблокирован файрволом
- Попробуйте подключиться вручную:
curl http://IP:24444/api/status
Ошибка "Invalid daemon key"
- Проверьте, что ключ в панели точно совпадает с DAEMON_KEY в .env
- Убедитесь, что нет лишних пробелов или символов
- Перезапустите демон после изменения .env
Мониторинг
Демоны автоматически отправляют информацию о:
- Использовании CPU
- Использовании ОЗУ
- Использовании диска
- Количестве серверов
- Количестве запущенных серверов
Эта информация обновляется каждые 10 секунд в интерфейсе панели.
Масштабирование
Вы можете добавить неограниченное количество демонов:
- Установите демон на новый сервер
- Используйте уникальный DAEMON_ID для каждого демона
- Добавьте демон в панель
- Распределяйте серверы между демонами
Поддержка
Если у вас возникли проблемы:
- Проверьте логи демона
- Проверьте логи основной панели
- Создайте тикет в системе поддержки