Files
sendewerk/README.md
T
2026-10-21 14:50:31 +02:00

4.2 KiB

Sendewerk

Sendewerk ist die redaktionelle Webanwendung für den Weg vom vorbereiteten Inhalt bis zur moderierten und archivierten Sendung. Der aktuelle Stand umfasst ausschließlich Etappe 1: technisches Grundgerüst, persistente Beispieldaten und gekennzeichnete Gestaltungsvorschauen. Anmeldung, Bearbeitung und echte Live-Steuerung folgen in späteren Etappen.

Voraussetzungen

  • Linux
  • Node.js 22.17 oder neuer (Node 24 LTS ist für das Cloudron-Image vorgesehen)
  • npm 10 oder neuer

Cloudron, Docker, eine Domain und externe Dienste sind für den lokalen Betrieb nicht erforderlich.

Frischer lokaler Start

npm ci
cp .env.example .env
npm run setup
npm run dev

Danach ist die Anwendung unter http://localhost:5173 erreichbar. setup erstellt die konfigurierten Verzeichnisse, führt ausstehende Migrationen aus und lädt den reproduzierbaren Beispieldatensatz. Der Seed darf beliebig oft ausgeführt werden und ersetzt nur die von ihm verwalteten Beispieldaten.

Konfiguration

Variable Vorgabe Bedeutung
SENDEWERK_DB_PATH .data/sendewerk.sqlite Pfad zur persistenten SQLite-Datei
SENDEWERK_UPLOAD_DIR .data/uploads Persistentes Upload-Verzeichnis
HOST adapterabhängig Bind-Adresse des Produktionsservers
PORT 3000 Port des Produktionsservers

Relative Sendewerk-Pfade werden vom Projektverzeichnis aus aufgelöst. In Cloudron liegen Datenbank und Uploads unter /app/data.

Befehle

Befehl Zweck
npm run setup Verzeichnisse, Migrationen und Seed für lokale Entwicklung
npm run db:migrate Ausstehende Migrationen atomar ausführen
npm run db:seed Reproduzierbare Beispieldaten laden
npm run dev Entwicklungsserver starten
npm run check Svelte- und TypeScript-Prüfung
npm run lint Formatierung und ESLint prüfen
npm test Verhaltenstests mit temporärer, getrennter Datenbank
npm run test:e2e Browserprüfungen gegen eine getrennte E2E-Datenbank
npm run build Produktionsartefakt in build/ erstellen
npm start gebautes Artefakt mit node build starten

Lokaler Produktionslauf

npm ci
npm run setup
npm run build
HOST=127.0.0.1 PORT=3000 npm start

Der Healthcheck liegt unter http://localhost:3000/healthz und prüft auch den Datenbankzugriff.

Vor der ersten Browserprüfung wird der Testbrowser einmalig installiert:

npx playwright install chromium
npm run test:e2e

Container und Cloudron

Das frühe Cloudron-Paket besteht aus Dockerfile, CloudronManifest.json und start.sh. Ein lokaler Container-Smoke-Test kann nach dem Build so erfolgen:

docker build -t sendewerk:local .
docker run --rm -p 3000:3000 -v sendewerk-data:/app/data sendewerk:local

Das ersetzt keinen Test auf einem echten Cloudron. Insbesondere Addon-Backup, Restore, Proxy-Origin und das read-only Laufzeitdateisystem können erst dort abschließend geprüft werden.

Dokumentation

  • docs/ARCHITECTURE.md: Systemgrenzen und geplanter Gesamtdatenbestand
  • docs/DECISIONS.md: technische Entscheidungen und offizielle Quellen
  • docs/ACCEPTANCE.md: Abnahmekriterien und konkrete Nachweise
  • docs/STATUS.md: aktueller Projektstand und bekannte Grenzen

Der Anwendungscode steht unter der MIT-Lizenz. Rechte an später eingestellten Medien und redaktionellen Inhalten werden dadurch nicht verändert.

Die direkten Laufzeit- und Werkzeugabhängigkeiten verwenden MIT- oder Apache-2.0-Lizenzen: Svelte/SvelteKit, Vite, Vitest, ESLint und better-sqlite3 sind MIT-lizenziert; TypeScript und Playwright stehen unter Apache-2.0. Die Lockdatei fixiert den tatsächlich installierten Baum.