Search Documentation

Search for pages and headings in the documentation

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:

KomponenteMinimumEmpfohlen (≈ 50.000 Aufrufe/Monat)
CPU1 Core4 Cores
RAM512 MB8 GB
Speicher2 GB25 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.


Inbetriebnahme und Wartung

Nachdem die Konfiguration abgeschlossen ist, erfolgt der Start der Container-Umgebung über die Kommandozeile:

  1. Registry-Login: docker login registry.jrbit.de
  2. Stack starten: docker compose up -d
  3. 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 /data als auch einen Dump der PostgreSQL-Datenbank.
  • Updates: Ein Update führen Sie durch einen erneuten pull der Images und einen Neustart des Stacks durch.