Files
NeveTimePanel/daemon/README.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

6.2 KiB
Raw Blame History

MC Panel Daemon

Удаленный демон для управления серверами Minecraft. Устанавливается на отдельные физические серверы и подключается к основной панели управления.

Установка

Windows

  1. Установите Python 3.8 или выше
  2. Скопируйте папку daemon на удаленный сервер
  3. Откройте командную строку в папке daemon
  4. Запустите установку зависимостей:
    install.bat
    

Linux

  1. Установите Python 3.8 или выше
  2. Скопируйте папку daemon на удаленный сервер
  3. Установите зависимости:
    pip install -r requirements.txt
    

Настройка

  1. Скопируйте .env.example в .env:

    copy .env.example .env
    
  2. Отредактируйте .env файл:

    DAEMON_ID=daemon-1
    DAEMON_NAME=Main Server
    DAEMON_PORT=24444
    DAEMON_KEY=your-secret-key-here
    SERVERS_DIR=./servers
    
    • DAEMON_ID - уникальный ID демона
    • DAEMON_NAME - отображаемое имя демона
    • DAEMON_PORT - порт для API (по умолчанию 24444)
    • DAEMON_KEY - секретный ключ для аутентификации
    • SERVERS_DIR - директория для серверов
  3. Создайте секретный ключ:

    import secrets
    print(secrets.token_urlsafe(32))
    

Запуск

Windows

start.bat

Linux

python main.py

Как сервис (Linux)

Создайте файл /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

Подключение к панели

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

API Endpoints

Демон предоставляет следующие API endpoints:

  • GET / - Информация о демоне
  • GET /api/status - Статус демона и системы
  • GET /api/servers - Список серверов
  • POST /api/servers/{name}/start - Запустить сервер
  • POST /api/servers/{name}/stop - Остановить сервер
  • POST /api/servers/{name}/command - Отправить команду
  • GET /api/servers/{name}/stats - Статистика сервера

Безопасность

  1. Используйте сильный ключ - генерируйте случайный ключ длиной минимум 32 символа
  2. Настройте файрвол - разрешите доступ к порту демона только с IP основной панели
  3. Используйте HTTPS - в продакшене используйте reverse proxy (nginx) с SSL
  4. Регулярно обновляйте - следите за обновлениями и устанавливайте их

Пример конфигурации 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;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Структура директорий

daemon/
├── main.py              # Основной файл демона
├── requirements.txt     # Зависимости Python
├── .env                 # Конфигурация (создайте из .env.example)
├── .env.example         # Пример конфигурации
├── install.bat          # Скрипт установки (Windows)
├── start.bat            # Скрипт запуска (Windows)
├── README.md            # Эта документация
└── servers/             # Директория с серверами
    ├── server1/
    │   ├── config.json
    │   └── ...
    └── server2/
        ├── config.json
        └── ...

Формат config.json для сервера

{
  "name": "server1",
  "displayName": "My Minecraft Server",
  "startCommand": "java -Xmx2G -Xms1G -jar server.jar nogui"
}

Troubleshooting

Демон не запускается

  • Проверьте, что Python установлен: python --version
  • Проверьте, что все зависимости установлены: pip list
  • Проверьте логи в консоли

Панель не может подключиться к демону

  • Проверьте, что демон запущен
  • Проверьте файрвол и порты
  • Проверьте, что ключ в панели совпадает с DAEMON_KEY
  • Проверьте IP адрес и порт

Сервер не запускается

  • Проверьте startCommand в config.json
  • Проверьте права доступа к файлам
  • Проверьте логи сервера

Поддержка

Если у вас возникли проблемы, создайте тикет в системе поддержки панели.