Self-Hosted Deployment mit Coolify oder Dokploy

Veröffentlicht am·Merle Büschking·9 Min. Lesezeit

Coolify ist eine kostenlose, Open-Source und self-hosted Platform as a Service (PaaS)-Lösung, mit der sich Anwendungen, Datenbanken und Services auf einem eigenen Server bereitstellen lassen, ohne die Infrastruktur manuell einrichten oder Deployment-Prozesse verwalten zu müssen. Es ist eine kostenfreie Alternative zu cloudbasierten PaaS-Lösungen wie Heroku und Vercel und bietet volle Kontrolle über die eigene Infrastruktur.

Durch die Installation von Coolify auf dem Server lassen sich containerisierte Anwendungen über ein einziges Web-Dashboard deployen, ohne sich um die manuelle Konfiguration von Docker, Reverse Proxies, Datenbanken oder CI/CD-Pipelines kümmern zu müssen. Jedes Deployment läuft in einem eigenen Docker-Container, und Coolify verwaltet SSL/TLS-Zertifikate für die Anwendungen automatisch.

Um die Möglichkeiten eines self-hosted Deployment-Services besser zu verstehen, wird im Folgenden ein genauerer Blick auf den Funktionsumfang von Coolify geworfen.

Coolify ermöglicht es, neue Ressourcen auf Servern sehr einfach zu deployen. Diese Ressourcen können Anwendungen, Services und Datenbanken umfassen. Anwendungen können jede Art von Service oder Web-Applikation sein, die als Docker-Container deployed werden kann. Dies umfasst zum Beispiel Frameworks wie Django oder Next.js sowie statische Websites. Sie können auf verschiedene Arten deployed werden:

  • durch die Verwendung von Buildpacks (Nixpacks, Static, Dockerfile oder Docker Compose) oder durch die Verwendung vorgefertigter Docker-Images
  • durch das Deployen von Anwendungen über Git-Repositories. Dies ermöglicht das automatische Deployen von Code, der in das Repository gepusht wird, und unterstützt generell Continuous-Integration-Workflows. Außerdem können Pull Requests in isolierten Umgebungen getestet werden, bevor sie in die Produktionsumgebung gemergt werden

Services werden über eigene Docker-Compose-Dateien deployed und sind nicht mit Git-Repositories verbunden. Innerhalb von Coolify stehen über 280 One-Click-Services zur Verfügung, die sich sofort ohne manuelle Konfiguration und Einrichtung deployen lassen. Coolify unterstützt verschiedene Datenbanktypen sowie beliebige weitere über Docker.

Die Docker Engine wird nativ unterstützt. Docker Swarm ist derzeit nur als experimentelles Feature verfügbar. Kubernetes wird noch nicht unterstützt, wurde jedoch für die Zukunft angekündigt.

Darüber hinaus werden verschiedene zusätzliche Features bereitgestellt, darunter:

  • automatische Docker-Bereinigung
  • Überprüfung der Festplattenauslastung
  • geplante Datenbank-Backups
  • die Möglichkeit, S3-Speicher anzubinden und automatisierte Backups zu planen
  • Einstellungen zur Cloudflare-Tunnels-Integration

Coolify verwendet Traefik als Standard- und empfohlenen Proxy. Traefik verwaltet das Routing automatisch und vereinfacht das SSL/TLS-Zertifikatsmanagement, inklusive integrierter Unterstützung für Let's Encrypt. Darüber hinaus steht Caddy als experimentelle Alternative zur Verfügung, und ein vollständig eigener Proxy kann ebenfalls manuell konfiguriert werden. Alle Proxy-Konfigurationen können jederzeit im Dashboard geändert werden.

Es gibt einige verschiedene Möglichkeiten, das Coolify-Server-Setup zu gestalten. Alle Ressourcen können auf demselben Server deployed werden, auf dem Coolify installiert ist (Single-Node-Setup), was jedoch generell nicht empfohlen wird, da eine hohe Serverauslastung den Betrieb von Coolify beeinträchtigen könnte.

Coolify Single-Node Architektur-Beispiel
Coolify Single-Node Architektur-Beispiel

Alternativ kann Coolify auf einem Server betrieben und zusätzliche Remote-Server per SSH verbunden werden, die die eigentlichen Anwendungen hosten. Ein hybrides Setup ist ebenfalls möglich, bei dem einige Ressourcen auf demselben Server wie Coolify deployed werden, während weitere Remote-Server für andere Ressourcen verbunden werden.

Weitere Remote-Server können jederzeit über das Coolify-Dashboard hinzugefügt werden. Die Verwendung von Remote-Servern wird für Produktionsumgebungen generell empfohlen.

Der Hauptserver, auf dem Coolify installiert ist, bietet Folgendes:

  • ein UI-Dashboard, über das sich Deployments steuern, Ressourcen verwalten und alle verbundenen Server administrieren lassen
  • SSH-Verbindungen zu weiteren Servern für Health Checks und Monitoring-Aufgaben

Wenn mehrere zusätzliche Server mit Coolify verbunden sind, funktionieren diese wie folgt:

  • Jeder Server verfügt über einen eigenen Proxy, der eingehende Anfragen verarbeitet
  • Traffic zu Anwendungen auf diesen Servern wird nicht zuerst über den Coolify-Hauptserver geleitet, sondern geht direkt an den jeweiligen Server.

Coolify Multi-Server Architektur-Beispiel
Coolify Multi-Server Architektur-Beispiel

Wir empfehlen für Produktionsumgebungen Backups für alle Server zu aktivieren und generell ein Multi-Remote-Server-Setup zu verwenden.

Coolify vereinfacht zwar das Deployment und die Infrastrukturverwaltung, übernimmt jedoch nicht die Sicherheitsverwaltung der Server.

Dokploy ist eine neuere, self-hosted und kostenlose Platform as a Service (PaaS)-Lösung, die direkt mit Coolify vergleichbar ist.

Viele Aspekte von Coolify und Dokploy sind sehr ähnlich. Beide bieten ein webbasiertes Dashboard, über das sich Deployments und Infrastruktur verwalten lassen. Es gibt jedoch auch einige nennenswerte Unterschiede. So ist Dokploy beispielsweise als Docker Swarm-first-Plattform konzipiert und aktiviert den Cluster-Modus automatisch.

Dokploy zieht außerdem viele Nutzer mit seiner modernen und intuitiven Dashboard-Oberfläche an, während einige Nutzer Coolifys Interface als etwas unhandlich empfinden. Darüber hinaus unterstützt Dokploy mehr Build-Methoden: Coolify unterstützt Static Buildpack, Nixpacks, Dockerfile und Docker Compose, während Dokploy zusätzlich Railpack, Heroku Buildpacks und Paketo Buildpacks anbietet. Es beinhaltet auch ein integriertes Monitoring-Dashboard, mit dem sich CPU-, Arbeitsspeicher- und Festplattenauslastung über alle Server hinweg nachverfolgen lässt.

Einer der größten Nachteile von Dokploy ist, dass es noch relativ neu ist, was eine kleinere Community bedeutet. Infolgedessen sind weniger Community-Ressourcen verfügbar, und die Bibliothek an One-Click-Anwendungsvorlagen ist derzeit noch etwas kleiner.

Zunächst muss ein Seed erstellt werden, der die Anforderungen für den Betrieb von Coolify erfüllt.

Coolify unterstützt alle Linux-Betriebssysteme, die aktuell von der dataforest Cloud bereitgestellt werden (Debian, Ubuntu LTS, AlmaLinux und RockyLinux).

Die minimalen Seed-Spezifikationen für den Betrieb von Coolify sind:

  • 2 CPU-Kerne
  • 2 GB RAM
  • 30 GB Speicher

Wenn geplant ist, Anwendungen auf demselben Seed zu betreiben, wird höchstwahrscheinlich eine größere Konfiguration benötigt. Der Seed lässt sich jedoch bei Bedarf jederzeit upgraden. Alternativ können Anwendungen auf separaten Servern betrieben und diese per SSH mit dem Coolify-Server verbunden werden.

Der Seed muss außerdem SSH-Zugriff erlauben, damit Coolify eine Verbindung herstellen kann. Bei der Erstellung des Seeds sollte die Authentifizierungsmethode „SSH-Schlüssel“ gewählt und dann ein vorhandener Schlüssel aus dem Team ausgewählt oder ein neuer erstellt werden.

Abschließend kann der Seed optional umbenannt werden, bevor der Kauf abgeschlossen wird.

Verbindung zum Seed per SSH herstellen:

bash
ssh root@your-seed-ip

Es ist wichtig zu beachten, dass Coolify Root-Zugriff auf den Server benötigt.

Es wird außerdem empfohlen, die SSH-Konfiguration für mehr Sicherheit anzupassen. Konkret sollte die Einstellung PermitRootLogin auf prohibit-password geändert werden.

Die SSH-Konfigurationsdatei lässt sich mit folgendem Befehl bearbeiten:

bash
nano /etc/ssh/sshd_config

Darin dann folgende Optionen setzen:

text
PubkeyAuthentication yes
PermitRootLogin prohibit-password

Anschließend den SSH-Dienst neu starten, abhängig vom Betriebssystem:

bash
systemctl restart ssh

Es wird außerdem dringend empfohlen, eine Firewall auf dem Server zu konfigurieren. Weitere Informationen sind in der Coolify-Dokumentation zu finden.

Coolify kann mit dem unten gezeigten Schnellinstallationsskript installiert werden.

Bei Verwendung von AlmaLinux muss Docker manuell installiert werden, bevor das Installationsskript ausgeführt wird.

Das Schnellinstallationsskript führt folgende Aufgaben automatisch aus:

  • Installation grundlegender System-Tools
  • Installation und Konfiguration von Docker
  • Erstellung der erforderlichen Verzeichnisse
  • Konfiguration von SSH-Keys
  • Installation und Start von Coolify

Folgenden Befehl auf dem Seed ausführen (falls nicht als Root-User angemeldet, das Skript mit 'sudo' ausführen):

bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

Sollte die automatische Einrichtung fehlschlagen, kann der offiziellen Anleitung zur manuellen Installation gefolgt werden.

Nach Abschluss der Installation wird die Coolify URL im Terminal angezeigt.

text
http://your-seed-ip:8000

Diese URL im Browser öffnen und den ersten Admin-Account erstellen. Es ist wichtig, dies sofort zu tun, um zu verhindern, dass jemand anderes auf die Registrierungsseite zugreift und die Kontrolle über den Server erlangt.

Während des Einrichtungsprozesses kann zwischen localhost und einem Remote-Server gewählt werden. Die Option sollte je nach Anwendungsfall ausgewählt werden.

Sobald das Coolify-Dashboard erreicht ist, wird empfohlen, eine Custom Domain einzurichten, um automatisches HTTPS zu aktivieren.

  1. Navigiere zu Settings → Configuration → General.
  2. Die Instance URL auf die Domain des Seeds aktualisieren, beispielsweise https://my-seed.mycloudvps.de (der Hostname ist im Overview-Tab des Seeds zu finden).
  3. Konfiguration speichern.

Coolify konfiguriert SSL/TLS-Zertifikate automatisch. Nach dem Speichern ist die Instanz sicher über HTTPS erreichbar. Sobald das Dashboard über die Custom Domain aufgerufen wurde, können auch die Ports, die für den Zugriff über die IP-Adresse benötigt werden, sicher geschlossen werden – siehe hier.

Die Coolify-Instanz ist nun einsatzbereit. Es können nun Anwendungen und andere Ressourcen auf der VM deployed werden.

Die Update-Konfiguration lässt sich über Settings → Configuration → Updates verwalten, wo sich die Frequenz der Update-Prüfung sowie die Frequenz automatischer Updates einstellen lassen. Bei Bedarf können automatische Updates auch vollständig deaktiviert werden.

Coolify und Dokploy sind beide leistungsstarke self-hosted PaaS-Lösungen, die das Deployment von Anwendungen und die Verwaltung von Infrastruktur vereinfachen. Coolify bietet eine einfach zu bedienende Plattform mit Docker-basierten Deployments, automatischem SSL und einer wachsenden Bibliothek an One-Click-Services, während Dokploy mit einer modernen Oberfläche, integriertem Monitoring und flexibleren Build-Optionen punktet. Durch die Einrichtung von Coolify auf einem eigenen Seed erhält man die volle Kontrolle über die Serverumgebung – eine kosteneffiziente Alternative zu Cloud-PaaS-Lösungen, sowohl für private Projekte als auch für Produktions-Workloads.

Noch Fragen?

Dann stehen Ihnen unsere Experten gerne zur Verfügung. Sie werden überrascht sein, wie schnell wir sind.

Hintergrundbild