Gleiche Fahrplanversion neu aufbereitet -> neu laden; 6 GB RAM empfohlen

pfaedle braucht für die Schweiz mit dem gemeinsamen CH+DE-Schienennetz
bis zu 2,8 GB (gemessen), dazu ~1 GB Server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X48pE4bzjHej8w9HyZXCjb
This commit is contained in:
Claude
2026-10-21 21:42:22 +02:00
parent c07a309045
commit 085a129a85
3 changed files with 6 additions and 4 deletions
+2 -2
View File
@@ -36,8 +36,8 @@ TrainPulse läuft als zwei Docker-Container aus demselben Image:
die Kartenkacheln). Alle Daten liegen im Ordner `data/` neben der `compose.yaml`.
1. **Container anlegen** (Proxmox-Oberfläche → *Create CT*):
Debian 12 oder 13 Template, unprivileged, 2 Kerne, **4 GB RAM** (pfaedle braucht beim
Aufbereiten bis ~2 GB, der Server ~1 GB), **30 GB Disk** (Kartenkacheln ~4,5 GB, beim
Debian 12 oder 13 Template, unprivileged, 2 Kerne, **6 GB RAM** (pfaedle braucht beim
Aufbereiten bis ~3 GB, der Server ~1 GB), **30 GB Disk** (Kartenkacheln ~4,5 GB, beim
monatlichen OSM-Update kurzzeitig ~5 GB Download für Deutschland), Netz per DHCP.
Unter *Options → Features* **Nesting** und **keyctl** aktivieren – ohne das läuft Docker
im LXC nicht.
+1 -1
View File
@@ -10,7 +10,7 @@ command -v apt-get >/dev/null || { echo "Nur für Debian/Ubuntu (apt) gedacht" >
mem=$(awk '/MemTotal/ {print int($2/1024)}' /proc/meminfo)
disk=$(df -Pm . | awk 'NR==2 {print $4}')
[ "$disk" -ge 25000 ] || echo "WARNUNG: nur ${disk} MB frei – empfohlen sind ~30 GB" >&2
[ "$mem" -ge 3500 ] || echo "WARNUNG: nur ${mem} MB RAM – für die Fahrplan-Aufbereitung werden ~4 GB empfohlen" >&2
[ "$mem" -ge 5500 ] || echo "WARNUNG: nur ${mem} MB RAM – für die Fahrplan-Aufbereitung werden ~6 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)"
+3 -1
View File
@@ -77,7 +77,9 @@ def watch_feeds():
if not ready:
continue
want = src.rt_version if src.rt_version in ready else ready[-1]
if src.feed and src.feed.version == want and src.feed.covers(today + dt.timedelta(days=1)):
meta = json.loads((C.FEEDS_DIR / src.name / want / "meta.json").read_text())
if (src.feed and src.feed.version == want and src.feed.covers(today + dt.timedelta(days=1))
and src.feed.meta.get("prepared_at") == meta.get("prepared_at")): # gleiche Version neu aufbereitet?
continue
log.info("[%s] Lade Fahrplan %s …", src.name, want)
t = time.time()