Dynmap standalone Webserver installieren

Moin!

Beim letzten Mal habe ich euch gezeigt wie ihr einen Minecraftserver mit Spigot 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 fogende 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 definitv 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 Standart 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 Repos 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 klar machen, dass die hinzugefügten Repos als sicher zu bewerten sind. Dies erledigen wir indem wir die Sicherheitsschü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.

apt update && apt upgrade -y && apt install apache2 php 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.16.5/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 Pluginsordner 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 der 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. Danch erstellen einen passenden vHost für die Dynmap.

sudo nano /etc/apache2/sites-available/dynmap.conf

VirtualHost *:80>
     ServerAdmin [email protected]
     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.16.5/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