Initial release 0.1.0
This commit is contained in:
commit
9f97d8407a
52 files changed
+6774
No files matched your search
@@ -0,0 +1,105 @@
|
||||
# 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
|
||||
|
||||
```sh
|
||||
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
|
||||
|
||||
```sh
|
||||
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:
|
||||
|
||||
```sh
|
||||
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:
|
||||
|
||||
```sh
|
||||
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.
|
||||
Reference in new issue
Block a user