Files
lernbar/docker-compose.yml
T
Florian WildeandClaude Opus 5 e856349cd4 Baustein 1: Grundgeruest, Datenbank, Anmeldung, zwei Rollen
Legt das Fundament der Lern-Bar an:

- Next.js 15 (App Router), React 19, TypeScript, ESLint, Vitest
- SQLite ueber Drizzle hinter einer Repository-Schicht
- Eigener Migrationslauf mit Pruefsummen, beim Start angewendet
- Argon2id, serverseitige Sitzungen, HttpOnly-Cookie, SameSite=Lax
- Rollen Ausbilder und Azubi, Rechteregeln als reine Funktionen
- Verwaltung: Azubikonto und Ausbildung anlegen, Passwort, Sperren
- Gestaltung Petrol/Bernstein, helle und dunkle Darstellung
- Dockerfile, docker-compose, Lebenszeichen, update.sh mit Rueckfall
- Sicherung und Wiederherstellung als Shell-Skripte
- 29 Tests fuer Rechte, Zeitrechnung und Migrationslauf

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 00:52:44 +02:00

35 lines
907 B
YAML
Raw Permalink 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.
# 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:
# Nur auf der Schleife lauschen – nach außen geht der Reverse Proxy.
- "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: