Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
592f047274 | ||
|
|
d550e814e2 | ||
|
|
9ac5c997a2 | ||
|
|
49bc08129a | ||
|
|
7325400175 |
No files matched your search
@@ -5,3 +5,6 @@
|
||||
data/
|
||||
|
||||
.ki-workspace/
|
||||
backups/
|
||||
dockernet-inspector.v1.sh
|
||||
script.sh
|
||||
@@ -5,6 +5,11 @@ RUN mkdir /opt/tmserver
|
||||
WORKDIR /opt/tmserver
|
||||
|
||||
# Alle benoetigten Pakete in einem Layer installieren und Cache aufraeumen
|
||||
# Debian Bullseye Archive-Repositories konfigurieren (Bullseye ist archiviert)
|
||||
RUN echo "deb http://archive.debian.org/debian bullseye main" > /etc/apt/sources.list \
|
||||
&& echo "deb http://archive.debian.org/debian-security bullseye-security main" >> /etc/apt/sources.list \
|
||||
&& echo "Acquire::Check-Valid-Until false;" > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
unzip \
|
||||
apache2 \
|
||||
|
||||
@@ -1,6 +1,27 @@
|
||||
# tmserver-docker
|
||||
<p align="center">
|
||||
<a href="https://techniverse.net">
|
||||
<img src="https://assets.techniverse.net/f1/git/graphics/repo-techniverse-logo.png" alt="Techniverse Community" height="70" />
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Ein vollständiges Docker-Setup für einen **TrackMania Nations Forever**-Server – inklusive Web-Verwaltung und Server-Controller:
|
||||
<h1 align="center">TM-Server Docker</h1>
|
||||
|
||||
<h4 align="center">
|
||||
Ein vollständiges Docker-Setup für einen TrackMania Nations Forever-Server – inklusive Web-Verwaltung und Server-Controller
|
||||
</h4>
|
||||
|
||||
<h6 align="center">
|
||||
<a href="https://www.cleveradmin.de">🏰 Website</a>
|
||||
·
|
||||
<a href="https://techniverse.net">📰 Community</a>
|
||||
·
|
||||
<a href="https://social.techniverse.net/@donnerwolke">🐘 Mastodon</a>
|
||||
·
|
||||
<a href="https://matrix.to/#/#support:techniverse.net">💬 Support</a>
|
||||
</h6>
|
||||
<br><br>
|
||||
|
||||
## ✨ Übersicht
|
||||
|
||||
- **TrackMania Dedicated Server** – der eigentliche Spielserver für Internet- oder LAN-Betrieb
|
||||
- **[XAseco](docs/xaseco.md)** – Server-Controller, der lokale Rekorde, Dedimania-Weltrekorde, Karma/Votes und eine Track-Jukebox direkt im Spielchat verwaltet
|
||||
@@ -13,7 +34,7 @@ Alle Komponenten laufen in einem einzigen Container und werden über Umgebungsva
|
||||
|
||||
Der Server unterstützt sowohl den **Internet-Dedicated-Modus** (Standard) als auch den **LAN-Dedicated-Modus**.
|
||||
|
||||
## Schnellstart
|
||||
## 🚀 Schnellstart
|
||||
|
||||
### 1. Umgebungsvariablen einrichten
|
||||
|
||||
@@ -48,7 +69,7 @@ git.techniverse.net/scriptos/trackmania-server:latest
|
||||
|
||||
> **Hinweis:** Für den Internet-Modus müssen `SERVER_LOGIN` und `SERVER_VALIDATION_KEY` in der `.env`-Datei gesetzt sein. Einen Server-Account kannst du auf [players.trackmaniaforever.com](https://players.trackmaniaforever.com) erstellen. Für den LAN-Modus setze `SERVER_MODE=lan`.
|
||||
|
||||
## Dokumentation
|
||||
## 📚 Dokumentation
|
||||
|
||||
Die vollständige Dokumentation befindet sich im Ordner [`docs/`](docs/README.md):
|
||||
|
||||
@@ -63,27 +84,25 @@ Die vollständige Dokumentation befindet sich im Ordner [`docs/`](docs/README.md
|
||||
- [Ports](docs/ports.md) – Freigegebene Ports und deren Verwendung
|
||||
- [Update](docs/update.md) – Bestehende Installation aktualisieren
|
||||
|
||||
## Danksagung
|
||||
## 🙏 Danksagung
|
||||
|
||||
Ein herzliches Dankeschön an **[Thomas](https://retronerd.at)** – für seine tatkräftige Unterstützung, sein wertvolles Wissen und seine Mitwirkung an diesem Projekt. Ohne ihn wäre dieses Projekt nicht das, was es heute ist!
|
||||
|
||||
## Spiegelung
|
||||
## 🔄 Spiegelung
|
||||
|
||||
Dieses Repository wird von **Gitea** auf **GitHub** gespiegelt. Das Master-Repository befindet sich auf Gitea:
|
||||
|
||||
- **Gitea (Master):** [git.techniverse.net/scriptos/tmserver-docker](https://git.techniverse.net/scriptos/tmserver-docker.git)
|
||||
- **GitHub (Spiegel):** [github.com/pscriptos/tmserver-docker](https://github.com/pscriptos/tmserver-docker.git)
|
||||
|
||||
---
|
||||
|
||||
📝 **Blog:** [www.cleveradmin.de](https://www.cleveradmin.de)
|
||||
🌐 **Webseite:** [www.patrick-asmus.de](https://www.patrick-asmus.de)
|
||||
📧 **E-Mail:** [support@techniverse.net](mailto:support@techniverse.net)
|
||||
|
||||
<br><br>
|
||||
<p align="center">
|
||||
<img src="https://assets.techniverse.net/f1/git/graphics/gray0-catonline.svg" alt="">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<img src="https://assets.techniverse.net/f1/logos/small/license.png" alt="License" width="15" height="15"> <a href="./LICENSE">License</a> | <img src="https://assets.techniverse.net/f1/logos/small/matrix2.svg" alt="Matrix" width="15" height="15"> <a href="https://matrix.to/#/#community:techniverse.net">Matrix</a> | <img src="https://assets.techniverse.net/f1/logos/small/mastodon2.svg" alt="Mastodon" width="15" height="15"> <a href="https://social.techniverse.net/@donnerwolke">Mastodon</a>
|
||||
</p>
|
||||
<sub>
|
||||
© Patrick Asmus · Techniverse Network · <a href="./LICENSE">Lizenz</a>
|
||||
</sub>
|
||||
</p>
|
||||
@@ -39,7 +39,7 @@ DEFAULT_CONTROLPANEL="/opt/tmserver/default-controlpanel"
|
||||
if [ ! -f "$ADMINSERV_DIR/index.php" ]; then
|
||||
echo "==> Erster Start erkannt: Kopiere AdminServ-Dateien ins Volume..."
|
||||
cp -a "$DEFAULT_CONTROLPANEL"/* "$ADMINSERV_DIR/"
|
||||
chmod 755 "$ADMINSERV_DIR/logs/"
|
||||
chmod 777 "$ADMINSERV_DIR/logs/"
|
||||
chmod 666 "$ADMINSERV_DIR/config/adminlevel.cfg.php"
|
||||
chmod 666 "$ADMINSERV_DIR/config/servers.cfg.php"
|
||||
chmod 666 "$ADMINSERV_DIR/config/adminserv.cfg.php"
|
||||
@@ -493,22 +493,21 @@ if [ -f "$ADMINSERV_CFG_VOL" ] && grep -q "0b28a5799a32c687dad2c5183718ceac" "$A
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# AdminServ: Logs-Verzeichnis-Berechtigungen korrigieren (fuer bestehende Volumes)
|
||||
# AdminServ: Berechtigungen fuer Logs und Configs sicherstellen
|
||||
# ============================================================
|
||||
# In aelteren Versionen wurde /var/www/html/logs/ mit chmod 777
|
||||
# (world-writable) angelegt. logrotate verweigert die Rotation von
|
||||
# Log-Dateien in world-writable Verzeichnissen aus Sicherheitsgruenden.
|
||||
# Die korrekte Berechtigung ist 755: www-data (Owner) behaelt
|
||||
# Schreibzugriff, anderen Nutzern wird Write entzogen.
|
||||
# AdminServ verlangt Schreibrechte (777 fuer ./logs/ und 666 fuer Configs).
|
||||
# Beim Containerstart stellen wir sicher, dass das Verzeichnis existiert,
|
||||
# www-data gehoert und die noetigen Berechtigungen gesetzt sind.
|
||||
# ============================================================
|
||||
ADMINSERV_LOGS_DIR="/var/www/html/logs"
|
||||
if [ -d "$ADMINSERV_LOGS_DIR" ]; then
|
||||
CURRENT_PERMS=$(stat -c '%a' "$ADMINSERV_LOGS_DIR")
|
||||
if [ "$CURRENT_PERMS" != "755" ]; then
|
||||
echo "==> Korrigiere Berechtigungen fuer AdminServ-Logs-Verzeichnis (${CURRENT_PERMS} -> 755)..."
|
||||
chmod 755 "$ADMINSERV_LOGS_DIR"
|
||||
echo " Berechtigungen erfolgreich korrigiert."
|
||||
fi
|
||||
mkdir -p "$ADMINSERV_LOGS_DIR"
|
||||
chmod 777 "$ADMINSERV_LOGS_DIR"
|
||||
chown -R www-data:www-data "$ADMINSERV_LOGS_DIR" 2>/dev/null || true
|
||||
|
||||
ADMINSERV_CONFIG_DIR="/var/www/html/config"
|
||||
if [ -d "$ADMINSERV_CONFIG_DIR" ]; then
|
||||
chmod 666 "$ADMINSERV_CONFIG_DIR"/*.cfg.php 2>/dev/null || true
|
||||
chown -R www-data:www-data "$ADMINSERV_CONFIG_DIR" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
echo "Starting apache server"
|
||||
|
||||
+12
-9
@@ -1,6 +1,6 @@
|
||||
services:
|
||||
tmserver:
|
||||
image: git.techniverse.net/scriptos/trackmania-server:1.3.2
|
||||
image: git.techniverse.net/scriptos/trackmania-server:1.3.3
|
||||
build:
|
||||
context: .
|
||||
container_name: tmserver
|
||||
@@ -13,16 +13,19 @@ services:
|
||||
- "${SERVER_PORT:-2350}:${SERVER_PORT:-2350}/tcp"
|
||||
- "${SERVER_PORT:-2350}:${SERVER_PORT:-2350}/udp"
|
||||
- "${SERVER_P2P_PORT:-3450}:${SERVER_P2P_PORT:-3450}/tcp"
|
||||
- "80:80/tcp"
|
||||
- "16080:80/tcp"
|
||||
- "3450:3450/udp"
|
||||
env_file:
|
||||
- .env
|
||||
dns:
|
||||
- 1.1.1.1
|
||||
volumes:
|
||||
- ./data/gamedata:/opt/tmserver/GameData
|
||||
- ./data/controlpanel:/var/www/html
|
||||
- ./data/xaseco:/opt/tmserver/xaseco
|
||||
networks:
|
||||
tmserver_net:
|
||||
ipv4_address: 172.20.60.10
|
||||
ipv4_address: 172.20.72.10
|
||||
|
||||
mariadb:
|
||||
image: mariadb:11.4
|
||||
@@ -51,10 +54,10 @@ services:
|
||||
start_period: 30s
|
||||
networks:
|
||||
tmserver_net:
|
||||
ipv4_address: 172.20.60.11
|
||||
ipv4_address: 172.20.72.11
|
||||
|
||||
ip-watcher:
|
||||
image: alpine:3.21
|
||||
image: alpine:3.24
|
||||
container_name: tmserver-ip-watcher
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
@@ -67,7 +70,7 @@ services:
|
||||
- ./assets/bin/WatchPublicIP.sh:/opt/WatchPublicIP.sh:ro
|
||||
networks:
|
||||
tmserver_net:
|
||||
ipv4_address: 172.20.60.12
|
||||
ipv4_address: 172.20.72.12
|
||||
|
||||
networks:
|
||||
tmserver_net:
|
||||
@@ -75,6 +78,6 @@ networks:
|
||||
driver: bridge
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.20.60.0/25
|
||||
gateway: 172.20.60.1
|
||||
ip_range: 172.20.60.64/26
|
||||
- subnet: 172.20.72.0/25
|
||||
gateway: 172.20.72.1
|
||||
ip_range: 172.20.72.64/26
|
||||
Reference in new issue
Block a user