A modern, lightweight, and self-hosted Minecraft server management panel.
Obsidian Panel is a modernised continuation of the original MCHostPanel project by Alan Hardman, first introduced in 2016. It provides a sleek, efficient, and self-hosted platform for managing Minecraft servers. Featuring a redesigned web interface focused on usability and performance, it allows administrators to manage files, monitor server performance, and configure game settings with ease, all within a secure and streamlined environment.
Current version: 0.1.0.2 Release date: 08/04/2025
Latest Updates:
- First Beta release to the public
- Web Server (Apache2, Nginx, XAMMP or Lighttpd)
- PHP 8.2 (or higher)
- GNU Screen (Terminal Multiplexer)
- Java Runtime Environment (OpenJDK or Adoptium)
Note
This Installation Guide is based on Debian 12 (Bookworm) and the APT-Package Manager.
Refresh your repository list and upgrade installed packages:
sudo apt update; \
sudo apt upgrade -yNote
This Guide uses Apache2 as Web Server but feel free to choose another option.
Install and enable the Apache2 Web Server:
sudo apt install apache2 -y; \
sudo systemctl enable apache2; \
sudo systemctl start apache2Tip
The SSL Module is optional and only required if you want your Obsidian Panel Instance to be accessed via HTTPS.
Activate necessary modules:
a2enmod rewrite headers sslRestart the Apache2 Web Server to enable all Modules:
systemctl restart apache2Install PHP 8.2 and its required extensions:
sudo apt install php8.2 php8.2-gd -yNote
This Guide uses UFW as Firewall, feel free to choose a different Firewall Service.
Install UFW (Uncomplicated Firewall):
sudo apt install ufw -yAllow the communication to the following ports:
Warning
Please replace <NwA> with your local network address e.g. 192.168.178.0 and replace <SM> with your subnet prefix e.g. /24 for 255.255.255.0
sudo ufw allow from <NwA>/<SM> to any port 22 comment 'SSH'; \
sudo ufw allow in 80/tcp comment 'Webpanel HTTP'; \
sudo ufw allow in 443/tcp comment 'Webpanel HTTPS'Enable and reload your Firewall:
sudo ufw enable; \
sudo ufw reloadWarning
Please replace the following placeholder:
<domain> = your hostname or domain name
<rootMail> = E-Mail address of your root account
<sslCert> = SSL Certificate File (*.crt or *.pem)
<sslKey> = SSL Key File (*.key or *.pem)
Create directory structure:
mkdir -p /var/www/<domain>/public_html; \
mkdir /var/www/<domain>/logs; \
mkdir /var/www/<domain>/public_serverCreate virtual host configuration:
vim /etc/apache2/sites-available/obsidian-panel.confInsert the following configuration:
Tip
This configuration template rewrites http requests on port 80 to https requests on port 443.
<VirtualHost *:80>
ServerName <domain>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin <rootMail>
ServerName <domain>
DocumentRoot /var/www/<domain>/public_html/
SSLEngine on
SSLCertificateFile <sslCert>
SSLCertificateKeyFile <sslKey>
ErrorLog /var/www/<domain>/logs/error.log
CustomLog /var/www/<domain>/logs/access.log combined
<Directory /var/www/<domain>/public_html/>
Options +Indexes +FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Strict-Transport-Security "max-age=31536000"
</VirtualHost>Enable your configuration and reload the Apache2 Web Server:
a2ensite obsidian-panel.conf; \
systemctl reload apache2Warning
Please replace <domain> with your hostname or domain name e.g. panel.pinoleekz.de
Download the latest Obsidian Panel version from my GitHub, extract all files and delete unnecessary files:
WEBROOT="/var/www/<domain>/public_html"; \
wget -O "$WEBROOT/obsidian-panel.zip" "https://github.com/PIN0L33KZ/obsidian-panel/releases/download/v.1.0.2/obsidian-panel_initial-release-1.0.2.zip" && \
unzip "$WEBROOT/obsidian-panel.zip" -d "$WEBROOT" && \
rm "$WEBROOT/obsidian-panel.zip" && \
mv "$WEBROOT/obsidian-panel-main/"* "$WEBROOT" && \
rm -r "$WEBROOT/obsidian-panel-main"; \
unset WEBROOTSet directory permissions:
chown www-data /var/www/<domain> -R; \
chmod 755 /var/www/<domain> -RCopy the sample config file:
cp data/config-sample.php data/config.phpEdit the following line in data/config.php to reflect your Server’s IP-Address:
Warning
Use 127.0.0.1 if the Panel and the Minecraft Server are running on the same Machine
define('KT_LOCAL_IP', '127.0.0.1');Open your Obsidian Panel instance via your Browser:
https://<domain>/install.phpFollow the setup wizard in your Browser to create your Administrator Account.
Remove the installation wizard to enhance security:
rm /var/www/<domain>/public_html_install.php