Files
NeveTimePanel/DAEMON_SETUP.md
arkonsadter d188cec1f0
All checks were successful
continuous-integration/drone/push Build is passing
Added Daemon system and fixed interface
2026-01-16 18:56:21 +06:00

9.0 KiB
Raw Blame History

Настройка системы демонов 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. Подключение демона к панели

  1. Откройте основную панель управления
  2. Войдите как владелец (owner) или администратор (admin)
  3. В боковом меню нажмите "Демоны" (иконка сервера)
  4. Нажмите "Добавить демон"
  5. Заполните форму:
    • Название: Main Server (или любое другое)
    • IP адрес: IP адрес сервера с демоном
    • Порт: 24444 (или ваш порт из .env)
    • Ключ демона: ваш DAEMON_KEY из .env
    • Примечания: дополнительная информация (необязательно)
  6. Нажмите "Добавить"

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)

  1. Создайте файл /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
  1. Запустите сервис:
sudo systemctl enable mcpanel-daemon
sudo systemctl start mcpanel-daemon
sudo systemctl status mcpanel-daemon

Windows (NSSM)

  1. Скачайте NSSM: https://nssm.cc/download
  2. Установите сервис:
nssm install MCPanelDaemon "C:\Python\python.exe" "C:\path\to\daemon\main.py"
nssm set MCPanelDaemon AppDirectory "C:\path\to\daemon"
nssm start MCPanelDaemon

Управление серверами на демонах

После подключения демона вы можете:

  1. Создавать серверы - при создании сервера можно будет выбрать демон
  2. Просматривать статистику - CPU, ОЗУ, диск каждого демона
  3. Управлять серверами - запуск, остановка, консоль, файлы
  4. Мониторить состояние - статус демонов обновляется автоматически

Troubleshooting

Демон показывает статус "Оффлайн"

  1. Проверьте, что демон запущен на удаленном сервере
  2. Проверьте файрвол и порты
  3. Проверьте, что ключ в панели совпадает с DAEMON_KEY
  4. Проверьте IP адрес и порт
  5. Проверьте логи демона

Ошибка "Connection error"

  • Проверьте сетевое подключение между панелью и демоном
  • Проверьте, что порт не заблокирован файрволом
  • Попробуйте подключиться вручную: curl http://IP:24444/api/status

Ошибка "Invalid daemon key"

  • Проверьте, что ключ в панели точно совпадает с DAEMON_KEY в .env
  • Убедитесь, что нет лишних пробелов или символов
  • Перезапустите демон после изменения .env

Мониторинг

Демоны автоматически отправляют информацию о:

  • Использовании CPU
  • Использовании ОЗУ
  • Использовании диска
  • Количестве серверов
  • Количестве запущенных серверов

Эта информация обновляется каждые 10 секунд в интерфейсе панели.

Масштабирование

Вы можете добавить неограниченное количество демонов:

  1. Установите демон на новый сервер
  2. Используйте уникальный DAEMON_ID для каждого демона
  3. Добавьте демон в панель
  4. Распределяйте серверы между демонами

Поддержка

Если у вас возникли проблемы:

  1. Проверьте логи демона
  2. Проверьте логи основной панели
  3. Создайте тикет в системе поддержки