Настройка веб-панели управления для Bedrock сервера
Содержание
- 1 Настройка веб-панели управления для Bedrock сервера
- 1.1 1. Подготовка системы
- 1.2 2. Установка веб-сервера
- 1.3 3. Установка Pterodactyl Panel (опционально) =
- 1.4 4. Создание простой веб-панели на PHP =
- 1.5 5. Настройка Nginx =
- 1.6 6. Расширенная панель с WebSocket =
- 1.7 7. Безопасность =
- 1.8 8. Интеграция с RCON (если доступно) =
- 1.9 9. Устранение неполадок =
- 1.10 Заключение
Настройка веб-панели управления для Bedrock сервера
1. Подготовка системы
- Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
- Убедитесь, что Bedrock сервер установлен на Ubuntu 24.04 LTS.
- Установите необходимые пакеты для веб-сервера.
- Рекомендуется использовать Nginx или Apache.
2. Установка веб-сервера
Установка Nginx
1. Обновите систему:
sudo apt update sudo apt upgrade -y
2. Установите Nginx:
sudo apt install -y nginx
3. Запустите и включите автозапуск:
sudo systemctl start nginx sudo systemctl enable nginx
4. Проверьте статус:
sudo systemctl status nginx
Установка PHP (для панелей на PHP)
1. Установите PHP и необходимые модули:
sudo apt install -y php-fpm php-cli php-curl php-json php-mbstring php-xml php-zip
2. Проверьте версию PHP:
php -v
Установка Node.js (для панелей на Node.js)
1. Установите Node.js:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs
2. Проверьте установку:
node -v npm -v
3. Установка Pterodactyl Panel (опционально) =
Подготовка
1. Установите необходимые пакеты:
sudo apt install -y mariadb-server redis-server
2. Настройте базу данных:
sudo mysql_secure_installation
Установка панели
1. Скачайте и установите Pterodactyl:
cd /var/www sudo git clone https://github.com/pterodactyl/panel.git cd panel
2. Установите зависимости:
sudo composer install --no-dev --optimize-autoloader
\# Примечание: Pterodactyl - сложная панель, требует полной настройки
4. Создание простой веб-панели на PHP =
Создание структуры
1. Создайте директорию:
sudo mkdir -p /var/www/bedrock-panel sudo chown -R www-data:www-data /var/www/bedrock-panel
2. Создайте базовый файл:
sudo nano /var/www/bedrock-panel/index.php
3. Добавьте содержимое:
<?php
\# Простая веб-панель для Bedrock сервера
$server_dir = '/opt/bedrock';
$service_name = 'minecraft-bedrock';
\# Функция выполнения команд
function executeCommand($command) {
$output = [];
$return_var = 0;
exec($command, $output, $return_var);
return ['output' => $output, 'return' => $return_var];
}
\# Получение статуса сервера
function getServerStatus() {
global $service_name;
$status = executeCommand("systemctl is-active $service_name");
return trim($status['output'][0]) === 'active';
}
\# Получение информации о процессе
function getServerInfo() {
global $service_name;
$pid = trim(shell_exec("pgrep bedrock_server"));
if (empty($pid)) {
return null;
}
$memory_mb = intval(trim(shell_exec("ps -o rss= -p $pid"))) / 1024;
$cpu = trim(shell_exec("ps -o %cpu= -p $pid"));
return [
'pid' => $pid,
'memory' => round($memory_mb, 2),
'cpu' => $cpu
];
}
\# Обработка действий
$action = $_GET['action'] ?? '';
if ($action === 'start') {
executeCommand("sudo systemctl start $service_name");
header('Location: index.php');
exit;
} elseif ($action === 'stop') {
executeCommand("sudo systemctl stop $service_name");
header('Location: index.php');
exit;
} elseif ($action === 'restart') {
executeCommand("sudo systemctl restart $service_name");
header('Location: index.php');
exit;
}
$status = getServerStatus();
$info = getServerInfo();
?>
<!DOCTYPE html>
<html>
<head>
<title>Bedrock Server Panel</title>
<meta charset="utf-8">
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
.status { padding: 10px; margin: 10px 0; border-radius: 5px; }
.status.running { background: #d4edda; color: #155724; }
.status.stopped { background: #f8d7da; color: #721c24; }
.button { padding: 10px 20px; margin: 5px; text-decoration: none; border-radius: 5px; display: inline-block; }
.button.start { background: #28a745; color: white; }
.button.stop { background: #dc3545; color: white; }
.button.restart { background: #ffc107; color: black; }
.info { background: #f8f9fa; padding: 15px; border-radius: 5px; margin: 10px 0; }
</style>
</head>
<body>
<h1>Bedrock Server Control Panel</h1>
<div class="status <?php echo $status ? 'running' : 'stopped'; ?>">
Status: <strong><?php echo $status ? 'RUNNING' : 'STOPPED'; ?></strong>
</div>
<?php if ($info): ?>
<div class="info">
<h3>Server Information</h3>
<p>PID: <?php echo $info['pid']; ?></p>
<p>Memory: <?php echo $info['memory']; ?> MB</p>
<p>CPU: <?php echo $info['cpu']; ?>%</p>
</div>
<?php endif; ?>
<div>
<?php if (!$status): ?>
<a href="?action=start" class="button start">Start Server</a>
<?php else: ?>
<a href="?action=stop" class="button stop">Stop Server</a>
<a href="?action=restart" class="button restart">Restart Server</a>
<?php endif; ?>
</div>
</body>
</html>
Настройка прав доступа
1. Настройте sudo для веб-сервера:
sudo nano /etc/sudoers.d/bedrock-panel
2. Добавьте правила:
www-data ALL=(ALL) NOPASSWD: /bin/systemctl start minecraft-bedrock www-data ALL=(ALL) NOPASSWD: /bin/systemctl stop minecraft-bedrock www-data ALL=(ALL) NOPASSWD: /bin/systemctl restart minecraft-bedrock www-data ALL=(ALL) NOPASSWD: /bin/systemctl status minecraft-bedrock
5. Настройка Nginx =
Создание конфигурации
1. Создайте конфигурационный файл:
sudo nano /etc/nginx/sites-available/bedrock-panel
2. Добавьте конфигурацию:
server {
listen 80;
server_name your-domain.com;
root /var/www/bedrock-panel;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
3. Активируйте сайт:
sudo ln -s /etc/nginx/sites-available/bedrock-panel /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
Настройка SSL (опционально)
1. Установите Certbot:
sudo apt install -y certbot python3-certbot-nginx
2. Получите сертификат:
sudo certbot --nginx -d your-domain.com
6. Расширенная панель с WebSocket =
Установка Node.js приложения
1. Создайте директорию:
sudo mkdir -p /opt/bedrock-panel cd /opt/bedrock-panel
2. Инициализируйте npm проект:
sudo npm init -y
3. Установите зависимости:
sudo npm install express ws body-parser
4. Создайте приложение:
sudo nano app.js
5. Добавьте базовый код:
const express = require('express');
const WebSocket = require('ws');
const { spawn } = require('child_process');
const app = express();
const port = 3000;
app.use(express.json());
app.use(express.static('public'));
\# API для управления сервером
app.post('/api/server/start', (req, res) => {
const proc = spawn('sudo', ['systemctl', 'start', 'minecraft-bedrock']);
proc.on('close', (code) => {
res.json({ success: code === 0 });
});
});
app.post('/api/server/stop', (req, res) => {
const proc = spawn('sudo', ['systemctl', 'stop', 'minecraft-bedrock']);
proc.on('close', (code) => {
res.json({ success: code === 0 });
});
});
app.get('/api/server/status', (req, res) => {
const proc = spawn('systemctl', ['is-active', 'minecraft-bedrock']);
let output = '';
proc.stdout.on('data', (data) => {
output += data.toString();
});
proc.on('close', (code) => {
res.json({
status: output.trim() === 'active' ? 'running' : 'stopped'
});
});
});
app.listen(port, () => {
console.log(`Bedrock panel running on port ${port}`);
});
6. Создайте systemd сервис для панели:
sudo nano /etc/systemd/system/bedrock-panel.service
7. Добавьте конфигурацию:
[Unit] Description=Bedrock Web Panel After=network.target [Service] Type=simple User=root WorkingDirectory=/opt/bedrock-panel ExecStart=/usr/bin/node app.js Restart=always [Install] WantedBy=multi-user.target
8. Запустите панель:
sudo systemctl daemon-reload sudo systemctl enable bedrock-panel sudo systemctl start bedrock-panel
7. Безопасность =
Настройка файрвола
1. Откройте порты:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 3000/tcp
Аутентификация
1. Добавьте базовую аутентификацию в Nginx:
sudo apt install -y apache2-utils sudo htpasswd -c /etc/nginx/.htpasswd admin
2. Обновите конфигурацию Nginx:
sudo nano /etc/nginx/sites-available/bedrock-panel
3. Добавьте аутентификацию:
location / {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
try_files $uri $uri/ =404;
}
4. Перезагрузите Nginx:
sudo systemctl reload nginx
8. Интеграция с RCON (если доступно) =
Подключение к консоли сервера
1. Для Bedrock сервера используйте прямое подключение через screen/tmux или специальные библиотеки для RCON
9. Устранение неполадок =
Проблемы с доступом
1. Проверьте права доступа:
sudo chown -R www-data:www-data /var/www/bedrock-panel sudo chmod -R 755 /var/www/bedrock-panel
2. Проверьте логи Nginx:
sudo tail -f /var/log/nginx/error.log
3. Проверьте логи PHP:
sudo tail -f /var/log/php8.3-fpm.log
Заключение
Настройка веб-панели управления для Bedrock сервера на Ubuntu 24.04 позволяет удобно управлять сервером через браузер. Вы можете использовать простую PHP панель или более сложные решения в зависимости от ваших потребностей.
Для размещения ваших Bedrock серверов с веб-панелью на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для высоконагруженных Bedrock серверов
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних серверов
Наши специалисты помогут с настройкой веб-панелей для Bedrock серверов!