Systemadministration-Handbuch
Der Betrieb von CrispyCMS erfordert eine moderne Infrastruktur, die auf Containerisierung und leistungsfähigen Datenbanken basiert. Für eine reibungslose Installation ist eine PostgreSQL-Datenbank zwingend erforderlich. Wir empfehlen hierbei die Nutzung der Supabase PostgreSQL 17 Images, da diese bereits optimal vorkonfiguriert sind.
Sollten Sie eine Hochverfügbarkeits-Lösung (High Availability) anstreben, ist dies problemlos möglich. Voraussetzung hierfür ist lediglich, dass das Volume /data auf einem hochverfügbaren Dateisystem (z. B. verteiltes oder repliziertes Storage) liegt.
Voraussetzungen
Bevor Sie mit der Installation beginnen, stellen Sie sicher, dass Ihre Umgebung folgende Anforderungen erfüllt:
- Docker: Version 27.x oder neuer.
- Datenbank: PostgreSQL 17 inklusive der Vector Extension.
- Netzwerkanbindung: Der Host darf nicht air-gapped sein, da stetiger Zugriff auf die Container-Registry, Updates und den Lizenzserver notwendig ist.
- Lizenzierung: Ein gültiger Lizenzschlüssel von Ihrem Distributor.
Systemanforderungen
Je nach geplantem Volumen unterscheidet CrispyCMS zwischen minimalen und empfohlenen Ressourcen:
| Komponente | Minimum | Empfohlen (≈ 50.000 Aufrufe/Monat) |
|---|---|---|
| CPU | 1 Core | 4 Cores |
| RAM | 512 MB | 8 GB |
| Speicher | 2 GB | 25 GB |
Installation via Docker-Compose
Die Bereitstellung erfolgt am effizientesten über Docker-Compose. Das folgende Beispiel nutzt das empfohlene Supabase-Image für die Datenbank. Falls Sie eine eigene Datenbank-Instanz nutzen, stellen Sie sicher, dass PostgreSQL 17 mit Vector-Unterstützung aktiv ist.
volumes:
crisp:
postgres_data:
services:
postgres:
image: supabase/postgres:17.4.1.032
restart: always
environment:
POSTGRES_DB: crispy
POSTGRES_USER: crispy
POSTGRES_PASSWORD: your_secure_password
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
crisp:
image: registry.jrbit.de/jrb-it/crispy/licensed:stable
restart: always
ports:
- 80:80 # HTTP Web-Interface
- 81:81 # API Schnittstelle
mem_limit: 512m
mem_reservation: 256m
cpus: 0.5
environment:
POSTGRES_URI: "postgres://crispy:your_secure_password@postgres:5432/crispy"
HOST: "domain.tld"
PROTO: "https"
volumes:
- crisp:/data
depends_on:
- postgres
Konfiguration der Umgebungsvariablen
Für die Steuerung der Instanz sind drei Variablen von zentraler Bedeutung:
POSTGRES_URI: Die vollständige Verbindungs-URI zur Datenbank.HOST: Die öffentliche Domain ohne Protokoll-Präfix.PROTO: Setzen Sie dies auf"https", sofern CrispyCMS hinter einem Reverse Proxy oder Load Balancer betrieben wird.
Sicherheitshinweis: Nutzen Sie eine .env-Datei für sensible Daten, um diese von der Versionsverwaltung Ihrer Compose-Dateien zu trennen.
Lizenzierung
CrispyCMS bietet verschiedene Lizenzmodelle an, um sowohl Evaluierungen als auch den Produktivbetrieb zu unterstützen.
Demo/Free-Lizenz
Für Testzwecke und kleinste Projekte stellen wir eine kostenlose Lizenz zur Verfügung. Diese kann direkt bei der Ersteinrichtung im Setup-Assistenten hinterlegt werden.
Verwenden Sie den folgenden Key für die Evaluierung: f14486cf-503e-2adc-6b7e-f9b84a19b007
- Max. 3 Benutzer & 10 Seiten
- Max. 2 Layouts & 2 Templates
- Max. 1000 Seitenaufrufe/Monat
Die Demo-Lizenz wird nicht für den Produktivbetrieb empfohlen. Es besteht keine Gewähr für Störungen oder Betriebseinschränkungen.
Inbetriebnahme und Wartung
Nachdem die Konfiguration abgeschlossen ist, erfolgt der Start der Container-Umgebung über die Kommandozeile:
- Registry-Login:
docker login registry.jrbit.de - Stack starten:
docker compose up -d - Firewall-Freigabe: Stellen Sie sicher, dass die Ports 80 (Web) und 81 (API) erreichbar sind.
Ersteinrichtung
Rufen Sie CrispyCMS über den konfigurierten Host im Browser auf. Der Setup-Assistent führt Sie durch die Eingabe des Lizenzschlüssels und die Erstellung des ersten Administrator-Kontos. Nach dem Login können im Dashboard unter „Einstellungen“ alle weiteren Feinjustierungen vorgenommen werden.
Best Practices für den Betrieb
- Sicherheit: Terminieren Sie TLS immer am Reverse Proxy.
- Backups: Sichern Sie regelmäßig sowohl das Volume
/dataals auch einen Dump der PostgreSQL-Datenbank. - Updates: Ein Update führen Sie durch einen erneuten
pullder Images und einen Neustart des Stacks durch.