Files
Trainpulse/deploy/install.sh
T
Claude 30d3127b21 Auf Docker umgestellt
Ein Image (pfaedle + pmtiles + Python), zwei Container per compose:
web (Port 8080) und updater (stündlich Fahrplan, beim ersten Start
Kartenkacheln). install.sh installiert Docker und startet alles.
systemd-Dienste entfernt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X48pE4bzjHej8w9HyZXCjb
2026-10-21 19:24:44 +02:00

43 lines
1.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# TrainPulse – Installation mit Docker (z. B. in einem Debian-LXC auf Proxmox). Als root:
# bash deploy/install.sh
# Erneut ausführen = Update (Image neu bauen, Daten und Einstellungen bleiben).
set -euo pipefail
cd "$(dirname "$0")/.."
[ "$(id -u)" = 0 ] || { echo "Bitte als root ausführen" >&2; exit 1; }
command -v apt-get >/dev/null || { echo "Nur für Debian/Ubuntu (apt) gedacht" >&2; exit 1; }
mem=$(awk '/MemTotal/ {print int($2/1024)}' /proc/meminfo)
[ "$mem" -ge 3500 ] || echo "WARNUNG: nur ${mem} MB RAM – für die Fahrplan-Aufbereitung werden ~4 GB empfohlen" >&2
if ! command -v docker >/dev/null || ! docker compose version >/dev/null 2>&1; then
echo "==> Docker installieren (offizielles Skript von get.docker.com)"
apt-get update -qq
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq curl ca-certificates >/dev/null
curl -fsSL https://get.docker.com | sh
fi
if ! docker run --rm hello-world >/dev/null 2>&1; then
cat >&2 <<'EOF'
Docker ist installiert, kann aber keine Container starten.
In einem Proxmox-LXC: Container herunterfahren, unter Optionen → Features
"Nesting" und "keyctl" aktivieren, Container starten, Skript nochmals ausführen.
EOF
exit 1
fi
[ -f .env ] || cp .env.example .env
mkdir -p data
echo "==> Image bauen und starten (das erste Mal dauert der Bau von pfaedle ein paar Minuten)"
docker compose up -d --build
ip=$(hostname -I | awk '{print $1}')
cat <<EOF
Fertig. Die Karte läuft unter http://$ip:8080
Der Updater lädt jetzt Kartenkacheln (~1,2 GB) und den Fahrplan und berechnet die
Streckenverläufe. Bis die ersten Züge erscheinen, dauert es ca. 15 Minuten.
Fortschritt: docker compose logs -f updater
Echtzeit: API-Key in $(pwd)/.env eintragen, dann docker compose up -d
EOF