Skip to content

Sleek, efficient, self-hosted platform for Minecraft server management. Focused on usability and performance, it enables administrators to manage files, monitor servers, and configure settings.

License

Notifications You must be signed in to change notification settings

PIN0L33KZ/obsidian-panel

Repository files navigation

Logo

Obsidian Panel

A modern, lightweight, and self-hosted Minecraft server management panel.

Release Version


☝🏼 - Program Description

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.


📔 - Version Information

Current version: 0.1.0.2 Release date: 08/04/2025

Latest Updates:

  • First Beta release to the public

⚠️ - Software Requirements

  • Web Server (Apache2, Nginx, XAMMP or Lighttpd)
  • PHP 8.2 (or higher)
  • GNU Screen (Terminal Multiplexer)
  • Java Runtime Environment (OpenJDK or Adoptium)

🚀 - Installation Guide

Note

This Installation Guide is based on Debian 12 (Bookworm) and the APT-Package Manager.

Update your Linux Server

Refresh your repository list and upgrade installed packages:

sudo apt update; \
sudo apt upgrade -y

Install Web Server

Note

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 apache2

Enable required Apache2 modules

Tip

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 ssl

Restart the Apache2 Web Server to enable all Modules:

systemctl restart apache2

Install PHP and required extensions

Install PHP 8.2 and its required extensions:

sudo apt install php8.2 php8.2-gd -y

Install and configure Server Firewall

Note

This Guide uses UFW as Firewall, feel free to choose a different Firewall Service.

Install UFW (Uncomplicated Firewall):

sudo apt install ufw -y

Allow 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 reload

Setup Apache2 Web Server

Warning

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_server

Create virtual host configuration:

vim /etc/apache2/sites-available/obsidian-panel.conf

Insert 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 apache2

Download and install Obsidian Panel

Warning

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 WEBROOT

Set directory permissions:

chown www-data /var/www/<domain> -R; \
chmod 755 /var/www/<domain> -R

Configure your Obsidian Panel

Copy the sample config file:

cp data/config-sample.php data/config.php

Edit 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.php

Follow the setup wizard in your Browser to create your Administrator Account.

Clean up

Remove the installation wizard to enhance security:

rm /var/www/<domain>/public_html_install.php

About

Sleek, efficient, self-hosted platform for Minecraft server management. Focused on usability and performance, it enables administrators to manage files, monitor servers, and configure settings.

Topics

Resources

License

Stars

Watchers

Forks

Languages