Dynmap standalone Webserver installieren

Moin!

Beim letzten Mal habe ich euch gezeigt, wie ihr einen Minecraftserver mit PaperMC installieren könnt. Deshalb gibt es heute ein Tutorial dazu, wie ihr bei einem Minecraftserver eine Dynmap installieren könnt. Der Clou dabei ist, wir verwenden nicht den internen Webserver, sondern einen Apache2, der deutlich leistungsfähiger ist. Besonders bei mobilen Geräten macht sich der Unterschied bemerkbar.

Ihr benötigt dazu folgende Dinge:

Solltet ihr das Ganze ohne Reverse Proxy betreiben wollen, müsst ihr mit Certbot nach der Installation selbstständig ein Zertifikat generieren, da der Traffic nicht unverschlüsselt übermittelt werden sollte.

Wenn ihr das ganze Setup mit einem Reverse Proxy betreiben wollt, könnt ihr einfach in der Oberfläche des Proxys eine Weiterleitung mit SSL auf den Port 80 machen. Dies ist definitiv die präferierte Lösung!

Wir starten mit der Verbindung in den LXC. Dort angekommen loggen wir auf „root“ um, stoßen wir wie immer erst ein Update an und installieren dann benötigte Standard Tools.

apt update && apt upgrade -y && apt install htop sudo net-tools unzip software-properties-common curl git lsb-release ca-certificates apt-transport-https locate screen zip bzip2 gnupg2 -y

Ist das abgehackt, fügen wir alternative Repositorys hinzu. Dies hat den Zweck, immer die neusten Sicherheitspatches zu erhalten.

cd /etc/apt/sources.list.d/
echo "deb [arch=amd64] https://packages.sury.org/php/ $(lsb_release -cs) main" | tee php.list
echo "deb [arch=amd64] https://packages.sury.org/apache2/ $(lsb_release -cs) main" | tee apache2.list

Nun müssen wir dem System noch klarmachen, dass die hinzugefügten Repositorys als sicher zu bewerten sind. Dies erledigen wir, indem wir die Sicherheitsschlüssel der jeweiligen Repo herunterladen und installieren.

wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
wget -q https://packages.sury.org/apache2/apt.gpg -O- | apt-key add -

Danach stoßen wir erneut ein Update an und installieren Apache2 und PHP8.1.

apt update && apt upgrade -y && apt install apache2 php8.1 libapache2-mod-php php-mysql

Anschließend loggen wir in den Minecraft User um, wechseln in den Pluginordner des Servers und laden das Plugin Dynmap herunter. Bitte selbstständig auf aktuelle Version prüfen!

su minecraft
cd /home/minecraft/minecraft_1.19.3/plugins/
wget https://github.com/webbukkit/dynmap/releases/download/v3.1-beta-7/Dynmap-3.1-beta7-spigot.jar

Da sich das Plugin nun in dem Pluginordner befindet, können wir den Server starten. Dazu springen wir ein Ordner zurück. Starten den Server und öffnen den Screen. Dort angekommen, lassen wir den Server durchbooten, damit alle benötigten Configfiles generiert werden können. Anschließend beenden wir den Dienst wieder.

cd ..
./start.sh
screen -r
stop

Wir loggen um auf unseren User mit „sudo“ Rechten, wer will, kann auch den „root“ nehmen :/
Dann legen wir ein Wurzelverzeichnis für die Dynmap an. Dorthin kopieren wir den web Ordner, der beim Start des Servers angelegt wurde.

su username
sudo mkdir /var/www/dynmap
sudo mkdir /var/www/dynmap/tiles
cp -r plugins/dynmap/web/* /var/www/dynamp/

Jetzt müssen wir die Rechte anpassen, da „www-data“ Besitzer des „www“ Ordners sein sollte. Allerdings müssen wir einen Ordner innerhalb des „www“ Ordners dem User „minecraft“ zuschreiben, da dieser sonst keine Updates der Map triggern kann.

sudo chown -R www-data:www-data /var/www/dynmap/
sudo chown -R minecraft:minecraft /var/www/dynamp/standalone/

Ist dies erledigt, kümmern wir uns erst um Apache2. Danach erstellen einen passenden vHost für die Dynmap.

sudo nano /etc/apache2/sites-available/dynmap.conf
VirtualHost *:80>
     ServerAdmin email@euredomain.tld
     DocumentRoot /var/www/dynmap/
     ServerName euredomain.tld
     ServerAlias IP.des.LXC.Containers


     <Directory /var/www/dynmap/>
        Options FollowSymlinks MultiViews
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/dynmap
        SetEnv HTTP_HOME /var/www/dynmap
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine on
</VirtualHost>

Soooo. Nun können wir den vHost 000-default.conf deaktivieren und den vHost der Dynmap aktivieren. Im gleichen Zuge laden wir auch noch die benötigten Module für Apache2. Damit die Änderungen wirksam werden, starten wir den Apache2 Service neu.

sudo a2dissite 000-default.conf
sudo a2ensite dynmap.conf
sudo a2enmod rewrite
sudo systemctl restart apache2.service

Jetzt kommen wir zu der Configfile der Dynmap. Dazu loggen wir wieder in unseren „minecraft“ User und rufen die Datei auf. Die im Codefenster aufgelisteten Settings sind nur die relevanten für den Betrieb mit Apache2.

nano /home/minecraft/minecraft_1.19.3/plugins/dynmap/configuration.txt
storage:
  # Filetree storage (standard tree of image files for maps)
  #type: filetree
  # SQLite db for map storage (uses dbfile as storage location)
  #type: sqlite
  #dbfile: dynmap.db
  # MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix')
  type: mysql
  hostname: IP.eure.MySQL.Servers
  port: 3306
  database: Datenbankname
  userid: MySQL User
  password: MySQL User Passwort
  #prefix: ""
  flags: "?allowReconnect=true"

components:
  - class: org.dynmap.ClientConfigurationComponent

  #- class: org.dynmap.InternalClientUpdateComponent
    #sendhealth: true
    #sendposition: true
    #allowwebchat: false
    #webchat-interval: 5
    #hidewebchatip: true
    #trustclientname: false
    #includehiddenplayers: true
    # (optional) if true, color codes in player display names are used
    #use-name-colors: false
    # (optional) if true, player login IDs will be used for web chat when their IPs match
    #use-player-login-ip: true
    # (optional) if use-player-login-ip is true, setting this to true will cause chat messages not matching a known player IP to be ignored
    #require-player-login-ip: false
    # (optional) block player login IDs that are banned from chatting
    #block-banned-player-chat: true
    # Require login for web-to-server chat (requires login-enabled: true)
    #webchat-requires-login: false
    # If set to true, users must have dynmap.webchat permission in order to chat
    #webchat-permissions: false
    # Limit length of single chat messages
    #chatlengthlimit: 256
    # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky)
    #hideifshadow: 4
    # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky)
    #hideifshadow: 4
    # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky)
    #hideifundercover: 14
    # (Optional) if true, players that are crouching/sneaking will be hidden 
    #hideifsneaking: false
    # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self)
    #protected-player-info: false
    # If true, hide players with invisibility potion effects active
    #hide-if-invisiblity-potion: true
    # If true, player names are not shown on map, chat, list
    #hidenames: false
  - class: org.dynmap.JsonFileClientUpdateComponent
    writeinterval: 1
    sendhealth: true
    sendposition: true
    #allowwebchat: true
    #webchat-interval: 5
    #hidewebchatip: false
    #includehiddenplayers: false
    #use-name-colors: false
    #use-player-login-ip: false
    #require-player-login-ip: false
    #block-banned-player-chat: true
    #hideifshadow: 0
    #hideifundercover: 0
    #hideifsneaking: false
    # Require login for web-to-server chat (requires login-enabled: true)
    #webchat-requires-login: false
    # If set to true, users must have dynmap.webchat permission in order to chat
    #webchat-permissions: false
    # Limit length of single chat messages
    #chatlengthlimit: 256
    #hide-if-invisiblity-potion: true
    #hidenames: false

# The path where the tile-files are placed.
tilespath: /var/www/dynmap/tiles

# The path where the web-files are located.
webpath: /var/www/dynmap/

# Disables Webserver portion of Dynmap (Advanced users only)
disable-webserver: true

Zum Abschluss starten wir noch den Server.

cd /home/minecraft/minecraft_1.16.5/
./start.sh

Eure Dynmap könnt ihr nun über die Domain bzw. dynamisches DNS aufrufen.

Grüße gehen aus dem Archiv!

Abonnieren
Benachrichtige mich bei
guest
0 Kommentare
Inline Feedbacks
Zeige alle Kommentare
0
Bitte lasse uns an deinen Gedanken teilhaben und kommentier den Beitrag.x
Cookie Consent mit Real Cookie Banner