An open API service indexing awesome lists of open source software.

https://github.com/pin0l33kz/obsidian-panel

A modern, lightweight, self-hosted Minecraft server management panel.
https://github.com/pin0l33kz/obsidian-panel

minecraft panel self-hosted server server-panel web web-panel

Last synced: 27 days ago
JSON representation

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

Awesome Lists containing this project

README

          


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**](https://github.com/Alanaktion/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.3.0** 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:

```bash
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:

```bash
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:

```bash
a2enmod rewrite headers ssl
```

Restart the Apache2 Web Server to enable all Modules:

```bash
systemctl restart apache2
```

### Install PHP and required extensions

Install PHP 8.2 and its required extensions:

```bash
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):

```bash
sudo apt install ufw -y
```

Allow the communication to the following ports:

> [!WARNING]
> Please replace `` with your local network address e.g. `192.168.178.0` and replace `` with your subnet prefix e.g. `/24` for `255.255.255.0`

```bash
sudo ufw allow from / 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:

```bash
sudo ufw enable; \
sudo ufw reload
```

### Setup Apache2 Web Server

> [!WARNING]
> Please replace the following placeholder:
>
> `` = your hostname or domain name
>
> `` = E-Mail address of your root account
>
> `` = SSL Certificate File (\*.crt or \*.pem)
>
> `` = SSL Key File (\*.key or \*.pem)

Create directory structure:

```bash
mkdir -p /var/www//public_html; \
mkdir /var/www//logs; \
mkdir /var/www//public_server
```

Create virtual host configuration:

```bash
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.

```bash

ServerName
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]

ServerAdmin
ServerName
DocumentRoot /var/www//public_html/

SSLEngine on
SSLCertificateFile
SSLCertificateKeyFile

ErrorLog /var/www//logs/error.log
CustomLog /var/www//logs/access.log combined

/public_html/>
Options +Indexes +FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex index.php

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"

```

Enable your configuration and reload the Apache2 Web Server:

```bash
a2ensite obsidian-panel.conf; \
systemctl reload apache2
```

### Download and install Obsidian Panel

> [!WARNING]
> Please replace `` 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:

```bash
WEBROOT="/var/www//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:

```bash
chown www-data /var/www/ -R; \
chmod 755 /var/www/ -R
```

### Configure your Obsidian Panel

Copy the sample config file:

```bash
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

```bash
define('KT_LOCAL_IP', '127.0.0.1');
```

Open your Obsidian Panel instance via your Browser:

```bash
https:///install.php
```

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

### Clean up

Remove the installation wizard to enhance security:

```bash
rm /var/www//public_html_install.php
```