Die Adresse, auf der Docker Port 3000 veroeffentlicht, ist ueber LERNBAR_ADRESSE in .env einstellbar; Vorgabe bleibt 127.0.0.1. Noetig, wenn der Reverse Proxy - etwa ein Nginx Proxy Manager - auf einem anderen Rechner laeuft. Docker-Ports laufen an ufw vorbei. lernbar-portsperre setzt deshalb in DOCKER-USER eine Regel, die Port 3000 nur fuer den Proxy oeffnet, und laesst sich beliebig oft ausfuehren (in einem Debian-13-Container geprueft). Dazu ein systemd-Dienst, der sie nach Docker setzt. Abschnitt 6b der Betriebsanleitung beschreibt Einrichtung und Proxy-Host. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
39 lines
1.1 KiB
YAML
39 lines
1.1 KiB
YAML
# Lern-Bar – ein Dienst, ein Volume, mehr braucht es nicht.
|
||
# Vor einem TLS-beendenden Reverse Proxy betreiben (nginx, Caddy, Traefik).
|
||
|
||
services:
|
||
lernbar:
|
||
build:
|
||
context: .
|
||
dockerfile: Dockerfile
|
||
image: lernbar:lokal
|
||
container_name: lernbar
|
||
restart: unless-stopped
|
||
environment:
|
||
TZ: Europe/Berlin
|
||
PORT: "3000"
|
||
# Hinter einem Proxy, der TLS beendet, bleibt das hier http.
|
||
NODE_ENV: production
|
||
ports:
|
||
# Vorgabe: nur auf der Schleife lauschen, der Reverse Proxy läuft auf
|
||
# derselben Maschine. Steht der Proxy woanders (etwa ein Nginx Proxy
|
||
# Manager), in .env die Adresse der VM eintragen:
|
||
# LERNBAR_ADRESSE=10.10.13.200
|
||
# Docker-Ports laufen an ufw vorbei – siehe docs/BETRIEB-PROXMOX.md.
|
||
- "${LERNBAR_ADRESSE:-127.0.0.1}:3000:3000"
|
||
volumes:
|
||
- lernbar-daten:/daten
|
||
healthcheck:
|
||
test:
|
||
- CMD
|
||
- node
|
||
- -e
|
||
- "fetch('http://127.0.0.1:3000/api/gesundheit').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
|
||
interval: 30s
|
||
timeout: 5s
|
||
retries: 3
|
||
start_period: 20s
|
||
|
||
volumes:
|
||
lernbar-daten:
|