Automatic community-website generator for Luanti (former Minetest) on Docker. https://luanti.geigernet.eu
Find a file
2025-06-23 01:45:54 +02:00
site_generator feat(map): Implement interactive area overlays 2025-06-23 01:41:17 +02:00
web_content Update README.md, colors.txt, config.sh, and 10 more files for alpha v0.3 2025-06-22 02:50:07 +02:00
.gitignore added gitignore 2025-06-07 14:41:24 +02:00
check_dependencies.sh feat(map): Implement interactive area overlays 2025-06-23 01:41:17 +02:00
check_server_status.sh second alpha (v0.2) 2025-06-21 15:58:52 +02:00
colors.txt feat(map): Implement interactive area overlays 2025-06-23 01:41:17 +02:00
config.sh Update README.md, colors.txt, config.sh, and 10 more files for alpha v0.3 2025-06-22 02:50:07 +02:00
generate_map.sh feat(map): Implement interactive area overlays 2025-06-23 01:41:17 +02:00
generate_site.sh second alpha (v0.2) 2025-06-21 15:58:52 +02:00
LICENSE.md formatting 2025-06-07 14:38:10 +02:00
minetestmapper first alpha (v0.1) 2025-06-07 13:48:21 +02:00
README.md Updated README.md 2025-06-23 01:45:54 +02:00
sync_areas.sh feat(map): Implement interactive area overlays 2025-06-23 01:41:17 +02:00
sync_players.sh feat(map): Implement interactive area overlays 2025-06-23 01:41:17 +02:00

Luanti-Web: Ein dynamisches Webseiten-Toolkit

Willkommen beim Luanti Web Generator! Entstanden aus einer Leidenschaft für kreative Sandbox-Spiele, bietet dieses Hobby-Projekt ein leistungsstarkes, automatisiertes Toolkit zur Erstellung einer schönen und funktionsreichen statischen Webseite für Ihren Minetest- oder Luanti-Server. Präsentieren Sie Ihren Server, Ihre Welten, verfolgen Sie Ihre Spieler und informieren Sie Ihre Community.

Dieses System ist von Grund auf so konzipiert, dass es modular, leicht konfigurierbar und perfekt für kleine Gemeinschaften ist, die ohne großen Aufwand eine Webpräsenz wünschen.

Features

  • Automatisierte Kartenerstellung: Nutzt minetestmapper, um hochauflösende PNG-Karten Ihrer Spielwelten zu erstellen.
  • Performante Bildverarbeitung: Verwendet vips, eine extrem schnelle und speichereffiziente Bibliothek, um auch riesige Karten (getestet bis 64k x 64k Pixel) für das Web zu skalieren.
  • Gekachelte Kartenerstellung: Nutzt gdal2tiles.py, um performante, zoombare Kartenkacheln für ein flüssiges Benutzererlebnis zu erstellen.
  • Dynamischer Karten-Viewer: Implementiert einen interaktiven Karten-Viewer mit OpenLayers, angetrieben von den generierten Kartenkacheln, inklusive digitalem Zoom über die höchste Auflösung hinaus.
  • Live-Spieler & Grundstücks-Anzeige: Lädt dynamisch Spielerpositionen und geschützte Bereiche (Grundstücke) und zeigt sie als interaktive Overlays auf der Live-Karte an.
  • Layer-Steuerung: Ein Menü auf der Karte erlaubt das Ein- und Ausblenden von Spielern, Hauptgrundstücken und Untergrundstücken (Parzellen).
  • Karten-Archiv: Speichert automatisch einen täglichen Snapshot der Karte und macht ihn über eine Umschalt-Funktion auf der Welt-Detailseite verfügbar.
  • Vorlagen-gesteuerte Seitengenerierung: Baut alle statischen HTML-Seiten aus einfachen, anpassbaren Vorlagen.
  • Flexible Konfiguration: Einfache Konfiguration durch eine zentrale, globale config.sh und eine web.conf-Datei für jede Ihrer Welten.
  • Automatisierungs-bereit: Konzipiert für die unbeaufsichtigte Ausführung über Planungswerkzeuge wie cron.

🔧 Voraussetzungen

Um dieses System zu betreiben, müssen die folgenden Softwarepakete auf Ihrem Server installiert sein:

  • bash: Die Skriptsprache, die für das gesamte Projekt verwendet wird.
  • vips: Eine hochperformante Bildverarbeitungsbibliothek.
    • Debian/Ubuntu Install: sudo apt-get install libvips-tools
  • ImageMagick: Wird aktuell noch für den Befehl identify (zum Auslesen von Bilddimensionen) benötigt.
    • Debian/Ubuntu Install: sudo apt-get install imagemagick
  • GDAL/OGR: Stellt das gdal2tiles.py-Skript für die Kachelerstellung bereit.
    • Debian/Ubuntu Install: sudo apt-get install gdal-bin python3-gdal
  • SQLite3: Das Kommandozeilen-Tool zur Abfrage der Spieldatenbanken (players.sqlite, auth.sqlite).
    • Debian/Ubuntu Install: sudo apt-get install sqlite3
  • bc: Der "basic calculator", wird für mathematische Operationen in Skripten benötigt.
    • Debian/Ubuntu Install: sudo apt-get install bc
  • jq: Ein Kommandozeilen-JSON-Prozessor, der von sync_areas.sh verwendet wird.
    • Debian/Ubuntu Install: sudo apt-get install jq
  • minetestmapper: Das ausführbare Programm zur Erstellung der Karten aus den Weltdaten. Muss im Projektverzeichnis platziert werden.
  • iproute2: Stellt das ss-Kommando für den check_server_status.sh bereit (auf den meisten Systemen vorinstalliert).
  • Webserver: Ein Webserver wie Nginx oder Apache wird benötigt, um die generierten statischen Dateien auszuliefern.

Ein mitgeliefertes Skript (check_dependencies.sh) kann alle wichtigen Abhängigkeiten automatisch überprüfen.

⚙️ Installation & Setup

1. Projektdateien herunterladen/klonen

Laden Sie den letzten Build von der Releases-Seite herunter und entpacken Sie ihn in ein Basisverzeichnis auf Ihrem Server, z.B. /opt/luweb/.

ODER

Klonen Sie das Git-Repository in ein Basisverzeichnis.

git clone [https://git.geigernet.eu/rainer/luanti-web.git](https://git.geigernet.eu/rainer/luanti-web.git) /opt/luweb
cd /opt/luweb
# Alle Skripte ausführbar machen
chmod +x generate_map.sh generate_site.sh check_server_status.sh check_dependencies.sh sync_players.sh sync_areas.sh

2. Globale Konfiguration

Die Hauptkonfigurationsdatei ist config.sh. Sie müssen diese Datei bearbeiten, um sie an die Umgebung Ihres Servers anzupassen.

3. Konfiguration pro Welt

Das System ist so konzipiert, dass nur Welten mit einer web.conf-Datei im Web-Frontend angezeigt werden. Dies gibt Ihnen die volle Kontrolle darüber, welche Welten öffentlich sichtbar sind. Um eine Welt hinzuzufügen, kopieren Sie die Vorlage site_generator/examples/web.conf.template in das Datenverzeichnis der entsprechenden Welt und passen Sie die Werte an.

📂 Verzeichnisstruktur

/opt/luweb/
├── config.sh
├── generate_map.sh
├── generate_site.sh
├── check_server_status.sh
├── check_dependencies.sh
├── sync_players.sh
├── sync_areas.sh
├── minetestmapper (ausführbare Datei)
├── site_generator/
│   ├── functions/
│   │   └── generators/
│   │       └── ...
│   ├── templates/
│   └── examples/
├── web_content/
└── worldmaps_output/
    └── <world_name>/
        ├── map.png
        └── map_info.txt

🚀 Nutzung & Automatisierung (Cronjob)

Die Skripte sind für die automatisierte Ausführung konzipiert. Richten Sie sie mit crontab -e ein.

# (Häufig) Aktualisiert Spieler- und Server-Status
* * * * * cd /opt/luweb && ./sync_players.sh >> /var/log/luweb/cron.log 2>&1
*/5 * * * * cd /opt/luweb && ./check_server_status.sh >> /var/log/luweb/cron.log 2>&1

# (Stündlich) Generiert die Basiskarte und Kacheln
0 * * * * cd /opt/luweb && ./generate_map.sh >> /var/log/luweb/cron.log 2>&1

# (Seltener) Synchronisiert Grundstücksdaten und baut die Webseite neu
45 */12 * * * cd /opt/luweb && ./sync_areas.sh >> /var/log/luweb/cron.log 2>&1
30 */12 * * * cd /opt/luweb && ./generate_site.sh >> /var/log/luweb/cron.log 2>&1

📄 Lizenz

MIT License Copyright (c) 2025 Rage87 - rage87@geigernet.eu

(Lizenztext wie gehabt)

👤 Autoren

  • Rage87 (Main-Developer)