Files
vendoo/docs/COOLIFY_PRODUCTION_1_41_0.md
Masterluke77andGitHub 6f48827f4d Vendoo 1.41.2 – Git Ignore Boundary & Module Tracking Hotfix (#18)
* docs: prepare Vendoo 1.41.2 git-ignore boundary hotfix

* fix: track native source modules with root-anchored runtime ignores
2026-07-09 17:09:00 +02:00

7.7 KiB
Raw Permalink Blame History

Vendoo 1.41.0 Coolify-Produktionsinstallation

Zieladresse: https://vendoo.flatlined.de

Zielarchitektur

GitHub Repository Masterluke77/vendoo
        │
        │ Coolify GitHub App
        ▼
Coolify Dockerfile Build
        │
        ▼
Vendoo Container :8124
        │
        ├── Domain/HTTPS durch Coolify
        └── persistentes Volume /app/data

Vendoo erhält keinen Zugriff auf /var/run/docker.sock. Deployments werden über einen verschlüsselten Coolify-Webhook oder einen minimal berechtigten Coolify-API-Token angefordert.

Voraussetzungen

  • funktionierende Coolify-Installation
  • öffentlicher Server mit erreichbaren Ports 80 und 443
  • DNS-Verwaltung für flatlined.de
  • privates GitHub-Repository Masterluke77/vendoo
  • vollständiger Vendoo-1.41.0-Stand im Branch main

1. DNS

Beim DNS-Anbieter einen A-Record anlegen:

Typ: A
Name: vendoo
Wert: ÖFFENTLICHE_IPV4_DES_COOLIFY_SERVERS
TTL: Auto oder 300

Nur bei korrekt eingerichtetem IPv6 zusätzlich:

Typ: AAAA
Name: vendoo
Wert: ÖFFENTLICHE_IPV6_DES_COOLIFY_SERVERS

Vor dem Coolify-Deployment prüfen, dass vendoo.flatlined.de auf den Coolify-Server zeigt.

2. GitHub-App in Coolify

  1. In Coolify links Sources öffnen.
  2. Add Source beziehungsweise New Source wählen.
  3. GitHub App wählen.
  4. Die GitHub-Verknüpfung autorisieren.
  5. Der App ausschließlich Zugriff auf Masterluke77/vendoo geben.
  6. Verbindung speichern.

Die GitHub-App ist für private Repositories die bevorzugte Variante, weil Coolify damit Repositoryzugriff, Webhooks und Pull-Request-Deployments verwalten kann.

3. Projekt und Anwendung erstellen

  1. Projects öffnen.
  2. Projekt Vendoo erstellen.
  3. Environment Production erstellen.
  4. Add Resource wählen.
  5. Private Repository (GitHub App) wählen.
  6. Repository Masterluke77/vendoo auswählen.
  7. Branch main auswählen.
  8. Build Pack Dockerfile wählen.
  9. Base Directory / eintragen.
  10. Dockerfile Location /Dockerfile eintragen.

4. Netzwerk

In der Anwendung konfigurieren:

Domain: https://vendoo.flatlined.de
Port Exposes: 8124
Port Mapping: leer lassen
Force HTTPS: aktiviert

Kein 8124:8124 Host-Port-Mapping verwenden. Der Coolify-Proxy verbindet sich intern mit Port 8124.

5. Persistentes Volume

Unter Storages oder Persistent Storage ein Volume anlegen:

Name: vendoo-data
Destination Path: /app/data

Nicht mehrere Container gleichzeitig auf dasselbe SQLite-Volume schreiben lassen. Für Vendoo zunächst genau eine laufende Instanz verwenden.

Im Volume bleiben erhalten:

  • Datenbank
  • Uploads
  • Backups
  • Operations-Daten
  • verschlüsselte Secrets und Master-Key
  • Modulstatus und installierte Module
  • Logs

6. Umgebungsvariablen

Die Vorlage deploy/coolify.env.example verwenden. Für die Domain mindestens folgende Werte setzen:

NODE_ENV=production
PORT=8124
VENDOO_BIND_HOST=0.0.0.0
VENDOO_DATA_DIR=/app/data
VENDOO_DB_PATH=/app/data/db/vendoo.db
VENDOO_UPLOADS_DIR=/app/data/uploads
VENDOO_BACKUP_DIR=/app/data/backups
VENDOO_OPERATIONS_DIR=/app/data/operations
VENDOO_LOG_DIR=/app/data/logs
VENDOO_CONFIG_PATH=/app/data/config/vendoo.env
VENDOO_MODULES_DIR=/app/data/modules
VENDOO_MODULE_STATE_PATH=/app/data/config/modules-state.json

PUBLIC_BASE_URL=https://vendoo.flatlined.de
VENDOO_ALLOWED_HOSTS=vendoo.flatlined.de
VENDOO_ALLOWED_ORIGINS=https://vendoo.flatlined.de
VENDOO_TRUST_PROXY=true
VENDOO_COOKIE_SECURE=true
VENDOO_COOKIE_SAMESITE=lax

VENDOO_REQUIRE_SETUP_TOKEN=true
VENDOO_SETUP_TOKEN=<MINDESTENS_64_ZUFAELLIGE_ZEICHEN>

VENDOO_INITIAL_DISABLED_MODULES=vendoo.flux-studio
LOCAL_IMAGE_ENABLED=false
LOCAL_IMAGE_ALLOW_REMOTE=false
VENDOO_JSON_LOGS=true
SMTP_TLS_REJECT_UNAUTHORIZED=true

Den Setup-Token nicht aus dieser Dokumentation übernehmen. Einen neuen zufälligen Wert erzeugen und ausschließlich in Coolify speichern.

7. Healthcheck

Wenn Coolify eigene Healthcheck-Felder anbietet:

Enabled: Ja
Method: GET
Path: /readyz
Port: 8124
Interval: 30 Sekunden
Timeout: 5 Sekunden
Retries: 3
Start Period: 30 Sekunden

Der Dockerfile enthält denselben Healthcheck bereits.

8. Auto Deploy

Für kontrollierte Produktionsupdates:

Auto Deploy: deaktiviert
Preview Deployments: optional aktiviert

Damit führt nicht jeder Merge sofort ein Produktionsdeployment aus. Das erste Deployment wird manuell in Coolify gestartet. Spätere Deployments können aus dem Vendoo Update Center angefordert werden.

Für einen einfachen Testbetrieb kann Auto Deploy vorübergehend aktiviert werden.

9. Erstes Deployment

  1. In Coolify Deploy anklicken.
  2. Build-Logs beobachten.
  3. Warten, bis der Container healthy meldet.
  4. https://vendoo.flatlined.de/readyz öffnen.
  5. Danach https://vendoo.flatlined.de öffnen.
  6. Ersteinrichtung mit dem in Coolify gesetzten Setup-Token abschließen.
  7. Ersten Administrator anlegen.
  8. Unter Administration → Module prüfen, dass FLUX Studio deaktiviert ist.

VENDOO_INITIAL_DISABLED_MODULES gilt nur als erster Standard. Wird FLUX später bewusst im Modulmanager aktiviert, bleibt diese Administratorentscheidung persistent erhalten.

10. Coolify-Deployment im Vendoo Update Center konfigurieren

Empfohlen: Deploy-Webhook

  1. In Coolify die Vendoo-Anwendung öffnen.
  2. Den Bereich für Deploy Webhooks beziehungsweise Webhooks öffnen.
  3. Einen Deploy-Webhook für diese Anwendung kopieren oder erstellen.
  4. In Vendoo Administration → System → Update Center öffnen.
  5. Provider Coolify wählen.
  6. Coolify URL eintragen, zum Beispiel https://coolify.flatlined.de.
  7. Trigger Deploy-Webhook wählen.
  8. Den vollständigen Webhook in Deploy-Webhook eintragen.
  9. Repository Masterluke77/vendoo eintragen.
  10. Produktionsbranch main eintragen.
  11. Vorab-Backup aktiviert lassen.
  12. Konfiguration speichern.
  13. Verbindung prüfen anklicken.

Der Webhook wird verschlüsselt in /app/data/config/secrets.enc.json gespeichert und nicht an den Browser zurückgegeben.

Alternative: Coolify API

  1. In Coolify Settings → Advanced öffnen und API Access aktivieren.
  2. Unter Security → API Tokens einen Token erstellen.
  3. Nur die Berechtigungen read und deploy vergeben.
  4. Den Token sofort kopieren; Coolify zeigt ihn nur einmal.
  5. Die Application Resource UUID aus Coolify kopieren.
  6. In Vendoo Trigger Coolify API wählen.
  7. Coolify URL, Resource UUID und API-Token eintragen.
  8. Konfiguration speichern.

Keinen Root-Token verwenden.

11. Deployment aus Vendoo auslösen

  1. Neue Version zuerst in GitHub nach main mergen.
  2. GitHub Actions vollständig grün abwarten.
  3. Optional GitHub Release veröffentlichen.
  4. In der laufenden Vendoo-Installation das Update Center öffnen.
  5. Coolify-Deployment starten anklicken.
  6. Exakt DEPLOY eingeben.
  7. Vendoo erstellt zuerst ein verifiziertes Backup einschließlich Konfiguration.
  8. Danach wird der Coolify-Auftrag gesendet.
  9. Coolify baut einen neuen Container aus dem konfigurierten Branch.
  10. Der laufende Container verändert sich nicht selbst.

12. Nachkontrolle

Nach jedem Deployment prüfen:

  • https://vendoo.flatlined.de/readyz
  • Anmeldung
  • Artikel und Medien
  • Modulmanager
  • Security Center
  • Update Center
  • Backupliste
  • Coolify Build- und Containerlogs

13. Rollback

Bei einem fehlerhaften Deployment:

  1. In Coolify die Vendoo-Anwendung öffnen.
  2. Deployments beziehungsweise Deployment History öffnen.
  3. das letzte funktionierende lokale Image wählen.
  4. Rollback ausführen.
  5. /readyz prüfen.
  6. Daten nur dann wiederherstellen, wenn eine Migration oder ein Nutzdatenproblem vorliegt.

Da Vendoo-Daten im Volume /app/data liegen, ersetzt ein Containerrollback normalerweise nur den Programmstand und nicht die Nutzdaten.