Zum Hauptinhalt springen
Docker-Container sind für die Produktion oder das Selbsthosten bestimmt. Für Beiträge siehe bitte das Lokale Setup.

Überblick

Diese Anleitung enthält Schritt-für-Schritt-Anweisungen, um die Twenty-Anwendung mit Docker Compose zu installieren und zu konfigurieren. Das Ziel ist, den Prozess übersichtlich zu gestalten und häufige Fallstricke zu vermeiden, die Ihre Einrichtung unterbrechen könnten. Wichtig: Ändern Sie nur die in dieser Anleitung explizit erwähnten Einstellungen. Andere Konfigurationen zu ändern, kann zu Problemen führen. Siehe die Dokumentation Umgebungsvariablen einrichten zur erweiterten Konfiguration. Alle Umgebungsvariablen müssen in der Datei docker-compose.yml auf Server- und/oder Worker-Ebene deklariert werden, je nach Variable.

Systemanforderungen

  • RAM: Stellen Sie sicher, dass Ihre Umgebung mindestens 2 GB RAM hat. Unzureichender Speicher kann dazu führen, dass Prozesse abstürzen.
  • Docker & Docker Compose: Stellen Sie sicher, dass beide installiert und aktuell sind.

Option 1: Einzeiliges Skript

Installieren Sie die neueste stabile Version von Twenty mit einem einzigen Befehl:
bash <(curl -sL https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/scripts/install.sh)
Um eine spezifische Version oder Zweig zu installieren:
VERSION=vx.y.z BRANCH=branch-name bash <(curl -sL https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/scripts/install.sh)
  • Ersetzen Sie x.y.z mit der gewünschten Versionsnummer.
  • Ersetzen Sie branch-name durch den Namen des Zweigs, den Sie installieren möchten.

Option 2: Manuelle Schritte

Befolgen Sie diese Schritte für eine manuelle Einrichtung.

Schritt 1: Einrichten der Umgebungsdatei

  1. Erstellen Sie die .env Datei Kopieren Sie die Beispielumgebungsdatei in eine neue .env-Datei in Ihrem Arbeitsverzeichnis:
    curl -o .env https://raw.githubusercontent.com/twentyhq/twenty/refs/heads/main/packages/twenty-docker/.env.example
    
  2. Erstellen Sie geheime Tokens Führen Sie den folgenden Befehl aus, um eine eindeutige Zufallszeichenfolge zu generieren:
    openssl rand -base64 32
    
    Wichtig: Bewahren Sie diesen Wert geheim auf / teilen Sie ihn nicht.
  3. Aktualisieren Sie die .env Ersetzen Sie den Platzhalterwert in Ihrer .env-Datei durch das generierte Token:
    APP_SECRET=erster_zufälliger_string
    
  4. Setzen Sie das Postgres-Passwort Aktualisieren Sie den Wert PG_DATABASE_PASSWORD in der .env-Datei mit einem starken Passwort ohne Sonderzeichen.
    PG_DATABASE_PASSWORD=mein_starkes_passwort
    

Schritt 2: Beschaffen Sie die Docker Compose-Datei

Laden Sie die docker-compose.yml-Datei in Ihr Arbeitsverzeichnis herunter:
curl -o docker-compose.yml https://raw.githubusercontent.com/twentyhq/twenty/refs/heads/main/packages/twenty-docker/docker-compose.yml

Schritt 3: Anwendung starten

Starten Sie die Docker-Container:
docker compose up -d

Schritt 4: Auf die Anwendung zugreifen

Wenn Sie twentyCRM auf Ihrem eigenen Computer hosten, öffnen Sie Ihren Browser und navigieren Sie zu http://localhost:3000. Wenn Sie es auf einem Server hosten, prüfen Sie, ob der Server läuft und ob alles in Ordnung ist mit
curl http://localhost:3000

Konfiguration

Twenty für externen Zugriff freigeben

Standardmäßig läuft Twenty auf localhost an Port 3000. Um über eine externe Domain oder IP-Adresse darauf zuzugreifen, müssen Sie die SERVER_URL in Ihrer .env-Datei konfigurieren.

Erläuterung von SERVER_URL

  • Protokoll: Verwenden Sie http oder https je nach Konfiguration.
    • Verwenden Sie http, wenn Sie kein SSL eingerichtet haben.
    • Verwenden Sie https, wenn Sie SSL konfiguriert haben.
  • Domain/IP: Dies ist der Domainname oder die IP-Adresse, unter der Ihre Anwendung zugänglich ist.
  • Port: Geben Sie die Portnummer an, wenn Sie nicht die Standardports verwenden (80 für http, 443 für https).

SSL-Anforderungen

SSL (HTTPS) ist erforderlich, damit bestimmte Browserfunktionen ordnungsgemäß funktionieren. Obwohl diese Funktionen möglicherweise während der lokalen Entwicklung funktionieren (da Browser localhost anders behandeln), ist eine ordnungsgemäße SSL-Einrichtung erforderlich, wenn Twenty auf einer regulären Domain gehostet wird. Zum Beispiel erfordert die Clipboard-API möglicherweise einen sicheren Kontext - einige Funktionen wie Kopierknöpfe in der gesamten Anwendung funktionieren möglicherweise nicht ohne aktiviertes HTTPS. Wir empfehlen dringend, Twenty hinter einem Reverse-Proxy mit SSL-Beendigung für optimale Sicherheit und Funktionalität zu konfigurieren.

Konfiguration der SERVER_URL

  1. Bestimmen Sie Ihre Zugriffs-URL
    • Ohne Reverse-Proxy (Direkter Zugriff): Wenn Sie direkt ohne Reverse-Proxy auf die Anwendung zugreifen:
      SERVER_URL=http://your-domain-or-ip:3000
      
    • Mit Reverse-Proxy (Standard-Ports): Wenn Sie einen Reverse-Proxy wie Nginx oder Traefik verwenden und SSL konfiguriert haben:
      SERVER_URL=https://your-domain-or-ip
      
    • Mit Reverse-Proxy (Benutzerdefinierte Ports): Wenn Sie nicht standardisierte Ports verwenden:
      SERVER_URL=https://your-domain-or-ip:custom-port
      
  2. Aktualisieren Sie die .env Datei Öffnen Sie Ihre .env-Datei und aktualisieren Sie die SERVER_URL:
    SERVER_URL=http(s)://your-domain-or-ip:your-port
    
    Beispiele:
    • Direkter Zugriff ohne SSL:
      SERVER_URL=http://123.45.67.89:3000
      
    • Zugriff über Domain mit SSL:
      SERVER_URL=https://mytwentyapp.com
      
  3. Starten Sie die Anwendung neu Damit die Änderungen wirksam werden, starten Sie die Docker-Container neu:
    docker compose down
    docker compose up -d
    

Überlegungen

  • Reverse Proxy-Konfiguration: Stellen Sie sicher, dass Ihr Reverse-Proxy Anfragen an den richtigen internen Port weiterleitet (3000 standardmäßig). Konfigurieren Sie die SSL-Terminierung und alle erforderlichen Header.
  • Firewall-Einstellungen: Öffnen Sie die notwendigen Ports in Ihrer Firewall, um externen Zugriff zu ermöglichen.
  • Konsistenz: Die SERVER_URL muss mit der Art und Weise übereinstimmen, wie Nutzer in ihren Browsern auf Ihre Anwendung zugreifen.

Persistenz

  • Daten-Volumes: Die Docker-Compose-Konfiguration verwendet Volumes, um Daten für die Datenbank und den Serverspeicher persistent zu speichern.
  • Zustandslose Umgebungen: Wenn Sie in einer zustandslosen Umgebung bereitstellen (z. B. bei bestimmten Cloud-Diensten), konfigurieren Sie externen Speicher, um Daten persistent zu speichern.

Sicherung und Wiederherstellung

Regelmäßige Sicherungen schützen Ihre CRM-Daten vor Verlust.

Datenbanksicherung erstellen

docker exec twenty-postgres pg_dump -U postgres twenty > backup_$(date +%Y%m%d).sql

Tägliche Sicherungen automatisieren

Zu Ihrer Crontab hinzufügen (crontab -e):
0 2 * * * docker exec twenty-postgres pg_dump -U postgres twenty > /backups/twenty_$(date +\%Y\%m\%d).sql

Aus Sicherung wiederherstellen

  1. Anwendung stoppen:
docker compose stop twenty-server twenty-front
  1. Datenbank wiederherstellen:
docker exec -i twenty-postgres psql -U postgres twenty < backup_20240115.sql
  1. Dienste neu starten:
docker compose up -d

Best Practices für Sicherungen

  • Wiederherstellungen regelmäßig testen — überprüfen Sie, dass die Sicherungen tatsächlich funktionieren
  • Sicherungen extern aufbewahren — Cloud-Speicher verwenden (S3, GCS usw.)
  • Sensible Daten verschlüsseln — Sicherungen mit Verschlüsselung schützen
  • Mehrere Kopien aufbewahren — tägliche, wöchentliche und monatliche Sicherungen vorhalten

Fehlerbehebung

Sollten Sie auf ein Problem stoßen, schauen Sie sich die Fehlerbehebung für Lösungen an.