feat: F5.6b server F as an image: the editor from F itself, one stack per environment
F hands out the editor's page and bundle (editor/ beside main.mjs, or FILIUS_EDITOR_DIR): GET and HEAD only, one wall against leaving the folder, F's own routes first, assets/ cached a year, the rest asked for again; the build lays .br and .gz beside the files and F sends the better one the browser takes (bundle 695 KB to 212 KB). deploy/Dockerfile: two stages, Node 24, no node_modules, not root. deploy/docker-compose.yml with an env file per environment: the file sets the stack's name, volume, image tag and port (test 8081, production 8080). Measured with both stacks side by side behind nginx and Chromium. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -31,7 +31,8 @@ die Herkunft je Paket. Lizenz dieses Repos: **GPL-3.0** (`LICENSE`).
|
||||
| `packages/protocol` | die eine Nachrichtenliste zwischen Editor und Simulationsraum (`/sim`) |
|
||||
| `packages/sim` | Simulationsraum (für Server F und den Web Worker) und `LocalSimHost` |
|
||||
| `packages/editor` | Oberfläche im Iframe des Dashboards (React, Vite), auf einem Projekt von F (`?project=<uuid>`) oder mit einem Raum in der eigenen Seite (Entwicklung): Fläche, Palette, Werkzeuge des Entwurfs, Geräte-Blatt, Aktionsmodus (Desktops, Anwendungen, Datenaustausch), Dokumentationsmodus (Text, Gliederungsfläche, Bild exportieren, Bericht als PDF); `npm run dev -w @mdg-filius/editor` öffnet die Entwicklungsseite |
|
||||
| `packages/server` | Filius-Dienst auf Server F: gemeinsame Dokumente über Hocuspocus (`/sync`), gespeichert in Postgres (Stand und Aktualisierungen, verdichtet), Hausmeister; Anmeldung mit der Eintrittskarte des Dashboards (`/__auth`, Keks, Lese- und Schreibstufe); Dienstweg des Dashboards (`/svc/*`: Projekte anlegen, löschen, einfrieren, Zugänge widerrufen); Simulationsräume auf `/sim` in `worker_threads`, einer je Projekt für alle; `/healthz`; `npm run build -w @mdg-filius/server` bündelt ihn nach `dist/main.mjs` und den Faden der Räume nach `dist/simWorker.mjs` |
|
||||
| `packages/server` | Filius-Dienst auf Server F: gemeinsame Dokumente über Hocuspocus (`/sync`), gespeichert in Postgres (Stand und Aktualisierungen, verdichtet), Hausmeister; Anmeldung mit der Eintrittskarte des Dashboards (`/__auth`, Keks, Lese- und Schreibstufe); Dienstweg des Dashboards (`/svc/*`: Projekte anlegen, löschen, einfrieren, Zugänge widerrufen); Simulationsräume auf `/sim` in `worker_threads`, einer je Projekt für alle; `/healthz`; liefert Seite und Bundle des Editors aus (`editor/` neben `main.mjs`, vorab gepackt); `npm run build -w @mdg-filius/server` bündelt ihn nach `dist/main.mjs` und den Faden der Räume nach `dist/simWorker.mjs` |
|
||||
| `deploy` | Image (`Dockerfile`), ein Stack je Umgebung (`docker-compose.yml`, `*.env.example`), Eintrag für den externen OpenResty (`proxy.conf`) |
|
||||
|
||||
Plan und Entscheidungen: `knowledge/plans/FILIUS_WEB_PLAN.md` im Dashboard.
|
||||
|
||||
@@ -61,9 +62,26 @@ Zwei Docker-Stacks auf Server F, je mit eigener Datenbank, eigenem
|
||||
| `test-filius.hub.mdg-hamburg.de` | 8081 | `test-dashboard` |
|
||||
| `filius.hub.mdg-hamburg.de` | 8080 | `dashboard` |
|
||||
|
||||
Im Klon auf F, je Umgebung einmal:
|
||||
|
||||
```bash
|
||||
cp deploy/test.env.example deploy/test.env # leere Werte füllen
|
||||
docker compose -f deploy/docker-compose.yml --env-file deploy/test.env up -d --build
|
||||
```
|
||||
|
||||
(für die Produktion dasselbe mit `production`). Die Umgebungsdatei bestimmt
|
||||
Stack-Namen, Volume, Image-Tag und Port; die beiden Stacks teilen nichts.
|
||||
Braucht Docker Compose v2. Gesichert werden muss nur das Volume
|
||||
`<stack>_db` (Befehl in `deploy/docker-compose.yml`).
|
||||
|
||||
`deploy/proxy.conf` ist der Eintrag für den externen OpenResty (in dessen
|
||||
`conf.d`); vorher die Adresse von F für `filius-lxc.invalid` einsetzen.
|
||||
`FILIUS_ORIGINS` ist jeweils der eigene Name mit `https://`.
|
||||
|
||||
Das Image liefert auch den Editor aus: F nimmt den Ordner `editor/` neben
|
||||
`main.mjs` (anderswo `FILIUS_EDITOR_DIR`). Es läuft auf Node 24, die
|
||||
Entwicklung auf Node 20; vor einem Update einmal mit
|
||||
`docker compose … up --build` auf `test-filius` prüfen.
|
||||
|
||||
Code, Kommentare und Testnamen sind englisch; sichtbare Texte stehen hinter
|
||||
i18n-Schlüsseln (Deutsch/Englisch).
|
||||
|
||||
Reference in New Issue
Block a user