Run calendar module in isolated persistent container

This commit is contained in:
ayde64
2026-10-07 22:41:18 +02:00
parent bc5cac32df
commit 67d5d5bb36
5 changed files with 37 additions and 12 deletions

View File

@@ -1,21 +1,20 @@
# Kalender MVP
Ein kleines, eigenständiges Kalender-Modul für MPM. Es zeigt einen Monatskalender, erlaubt Termine anzulegen und speichert sie in SQLite.
Ein kleines, eigenständiges Kalender-Modul für MPM. Es zeigt einen Monatskalender, erlaubt Termine anzulegen und speichert sie je MPM-Benutzer getrennt in SQLite.
## Voraussetzungen
## Containerbetrieb
- Node.js 24 oder neuer (verwendet `node:sqlite`)
- Installation als MPM-Modul aus einem Paket mit `module.json` im ZIP-Stammverzeichnis
MPM stellt die Modul-Identität über den Module Gateway bereit. Termine werden je MPM-Benutzer getrennt gespeichert. Die SQLite-Datei liegt derzeit im temporären Systemverzeichnis und ist daher nicht für dauerhafte Produktivdaten gedacht.
MPM installiert das Repository als eigenen Compose-Stack. Der App-Container läuft mit Node.js 24, stellt Port `41002` nur intern bereit und lauscht auf `0.0.0.0`. Die SQLite-Datei liegt unter `MPM_MODULE_DATA_DIR` im persistenten MPM-Modulvolume und überlebt Container- sowie Modul-Neustarts.
## Installation über den MPM-Marketplace
MPM kann dieses öffentliche Repository direkt hinzufügen und den aktuellen Stand des Standard-Branches installieren. `module.json` muss dafür im Repository-Stamm liegen. MPM prüft das Manifest und startet das Modul nach der Installation nicht automatisch.
Das öffentliche Repository kann mit der verbundenen Gitea-Instanz direkt aus dem Marketplace installiert werden. `module.json`, `compose.yml` und `Dockerfile` liegen im Repository-Stamm. MPM installiert den Standard-Branch; der Start erfolgt anschließend über die Modulverwaltung.
## Projektstruktur
- `module.json` – MPM-Modulmanifest
- `module.json` – MPM-Modulmanifest einschließlich Container-Service
- `compose.yml` – interner App-Service für den Modul-Stack
- `Dockerfile` – Node.js-24-Laufzeit ohne externe npm-Abhängigkeiten
- `backend/server.js` – HTTP- und SQLite-Logik
- `backend/platform-module-sdk.js` – MPM-Gateway-Integration
- `frontend/index.html` – Kalenderoberfläche