Im Review: Coolify

Stay cool with COOLIFY - here's why ... Review des Open-Source Schweizer Taschenmessers des Self-Hostings

· 7 Minuten zu lesen
Im Review: Coolify

Coolify ist für mich eine kleine Revolution - in diesem Artikel möchte ich zu erklären warum ...

Coolify beansprucht für sich selbst, self-hosting einfach gemacht zu haben. 'Selbst-Hosting' bezieht sich damit vor allem auf die nötigen Grundlagen, um etwa eine Webapplikation, Website oder existierende Open-Source Lösung á la Wordpress oder Ghost auf der eigenen Server-Infrastruktur aufzusetzen. Für das Selbst-Hosting benötigt man einen Server / eine angemessene Cloud-Infrastruktur, wie bspw. einen Cloud-Server bei Hetzner oder anderen Anbietern. Die Buchung eines ggfs. überteuerten Abos zur Miete eines Service-Paketes, z.B. für die Bereitstellung einer Wordpress-Instanz, fällt durch das Selbst-Hosting weg.

via Coolify.io

Für wen ist 'self-hosting' interessant?

Selbst-Hosting ist nicht für jeden relevant und nicht für alle zu empfehlen. Denn wie der Name impliziert, muss man hinsichtlich der Konfiguration, Fehlerbehebung oder Wartung / Upgrading von Komponenten einige Aufgaben selbst übernehmen.

Coolify spricht daher auch ein technisch versiertes Publikum an.

Die Nachteile des eigenen Hostings sind sicherlich die damit verbundenen Barrieren (Know-How, spezifische Komplexität des Anwendungsfalls ...) und die implizit anfallende Aufwände. Risiken (z.B. hinsichtlich Datensicherheit, Verfügbarkeit, Skalierung) entstehen hier ebenso, weshalb die Materie nicht leichtfertig behandelt werden sollte.

Vorteile des Selbst-Hostings liegen neben (potentiellen) Kostenunterschieden insbesondere in der Flexibilität und Anpassbarkeit der Lösungen sowie den individuellen Möglichkeiten im Kontext von Administrations-, Compliance sowie Sicherheitsaspekten zu sehen. Man kann sich im jeweiligen Anwendungsfall für paßgenaue Serverkonfigurationen entscheiden. Die Standortwahl kann zugunsten eines europäischen oder deutschen Data Centers entschieden werden. Man kann eigene Vorkehrungen treffen, die z.B. für übergeordnete Compliance - Themen relevant sind. Man 'besitzt' schließlich die 'eigene Show' (und nicht bloß einen Account bei einem SaaS Anbieter) und kann selbst vielfältiger Einfluß darauf nehmen, wo und wie Daten gespeichert, gelöscht oder verarbeitet werden. Etwas, das bei Anwendungen im Unternehmenskontext nun mal von besonderer Bedeutung sein kann.

Ob sich das Selbst-Hosting einer Anwendung im Vergleich zum Einsatz eines kommerziellen Services (z.B. SaaS-Dienst) lohnt, ist auf Basis der individuellen Prioritäten je Anwendungsfall abzuwägen.

Beispiel: Möchte man für die sensiblen (z.B. KMU-internen) Daten eine File-Sharing oder Groupware Lösung für die Mitarbeiter einführen, gibt es neben den Lösungen von Microsoft, Google und Co etablierte Open-Source Lösungen wie Nextcloud. Nextcloud kann als Service abonniert werden (was insbesondere managed Hosting, Anwendungs-Support und SLA betrifft) oder auf der eigenen Infrastruktur installiert und gehostet werden (Hosting, Einrichtung Administration und Updates etc. müssen dann selbst erledigt werden). Die Kernfrage ist hier eine Kosten-Nutzen Rechnung, die nicht nur entstehende Kosten, sondern auch Themen wie Sicherheit oder Standortwahl des Servers beinhalten sollte.

Fest steht: je komfortabler das Aufsetzen und Selbst-Hosting von Applikationen wird, umso interessanter kann es mit Blick auf Kosten und Nutzen werden.  Wären mehr ausgereifte Softwarelösungen komfortabler selbst zu betreiben, dann würden vermutlich weniger Personen und Unternehmen eine kommerzielle Lösung aus Silicon Valley präferieren. Insbesondere dann, wenn grundsätzlich Fragen zu Themen wie Data Ownership / Datensicherheit oder auch DSGVO beantwortet werden müssen. Wenn Setup, Wartung und Betrieb inkl. Upgrading also deutlich einfacher werden kann, dann wird das eigene Hosting interessanter für mehr Nutzergruppen. Coolify trägt hier bei. Es beantwortet die individuelle Kosten-Nutzen-Rechnung nicht, aber senkt den Aufwand und die Barrieren für das Aufsetzen und Betreiben einer Applikation auf Servern.

Coolify ist übrigens selbst eine Open-Source Lösung, welche somit auch quelloffen inspiziert werden kann!

Installation

Zunächst wird ein Server / eine Cloud Instanz (etwa auf Basis von Ubuntu) mit passendem SSH-User samt Berechtigungen benötigt. Um Coolify dann zu installieren, ist im einfachsten Falle lediglich die Eingabe einer Zeile nötig:

Installation von Coolify

Danach muss die installierte Coolify-Installation eingerichtet werden, wozu im weiteren Sinne z.B. auch gehört, einen DNS Eintrag für die IP-Adresse des Servers vorzunehmen, so dass man das User Interface via Domain aufrufen kann. SSL ist hier out-of-the-box unterstützt. In Summe ist für die Installation und Einrichtung von Coolify also durchaus ein wenig Kenntnis der Materie nötig, aber der gesamte Prozess ist vergleichsweise einfach zu erledigen und geht dabei zügig, wenn man sich etwas auskennt. Danach kann Coolify nach Belieben verwendet werden.

Details zur Installation lassen sich hier einsehen.

Was leistet Coolify?

Vergleichbare kommerzielle Lösungen zu Coolify wären am ehesten Dienste wie Netlify oder Heroku. Netlify hat insbesondere durch JAMStack Technologien, z.B. Static Site Generatoren wie Hugo und solide Frameworks wie NextJS oder NuxtJS, starken Aufwind erhalten und ist heute für das Hosting zahlreicher Websites zuständig. Netlify vereinfacht letztlich das Deployment einer Website, deren Code z.B. auf Github verwaltet wird. Vorteile durch Netlify betreffen nicht nur das Hosting selbst, sondern ebenfalls wird der gesamte (insbesondere git-zentrische) Worfklow zwischen Codeerstellung, Deployment, Review/Testing und der Aktualisierung der Produktiv-Version vereinfacht. Netlify profitiert von dem bereits erwähnten JAMStack-Trend und bietet wenig Optionen für klassische Stacks wie den LAMP-stack, also etwa auf der Basis von MySQL/MariaDB und PHP. Ebenso ist ein Service wie Netlify nicht das Mittel der Wahl, wenn es um das Verwenden von Docker Images geht. In diesem Bereich hat sich z.B. Heroku einst einen Namen gemacht (und wurde unlängst von Salesforce gekauft). Heroku macht es relativ einfach, eine Datenbank aufzusetzen oder eine Anwendung zu verschiffen und so produktiv bereitzustellen. Der funktionale Umfang von Heroku ist über die Zeit gewachsen und bietet Tools und Inhalte für viele Fragestellungen an.    

Coolify erweitert nun grob gesagt die grundlegenden Fähigkeiten von Netlify um Vorzüge von Heroku. In der Tiefe kann Coolify dabei nicht alles bieten, was Netlify + Heroku möglich machen. Doch der funktionale Umfang von Coolify hat mich wirklich positiv überrascht.

Die Skills von Coolify im Überblick via coolify.io

Hier ein paar Eindrücke bzgl. der Möglichkeiten:

  • Der Aufbau von 'Applications' erlaubt einen breiten Einsatz gängiger Web-Technologie. Von PHP über NodeJS oder React zu Vue ... da bleiben kaum Wünsche offen. Um eine Applikation auf Basis des Codes aufzubauen, kann ein verknüpfter Github Account oder der Link auf ein öffentliches Repository verwendet werden. Der Ansatz ähnelt dem Konzept von Netflify. Ebenso wird bei Coolify zunehmend die Verwendung von Docker unterstützt. Erwähnenswert ist also, dass sogar Docker compose YAML Dateien bezogen werden können und weitaus mehr Umgebungen im realisierbaren Scope von Coolify liegen. Doch selbst wenn mit Coolify lediglich Hugo, Gatsby und NuxtJS abbildbar wären, wäre dies für mich eine kleine Revolution, denn man kann so problemlos eine bestimmte Menge an Anwendungen / Websites bequem auf einen Server in Deutschland ziehen und das Hosting inkl. Deployment für die eigenen Zwecke selbst optimieren. Für mich als Freelancer ist das eine wunderbare Erweiterung der Möglichkeiten, da es ein Netlify hierzulande bis dato nicht gab.
Applikationen via Coolify
  • Das Bereitstellen einer PostgreSQL Datenbank für die weitere Entwicklung erfolgt quasi auf Knopfdruck und dauert wenige Sekunden!
Auswahl von Datenbanken 'auf Knopfdruck' via Coolify
  • Das Setup einer Ghost-Installation funktioniert sehr einfach als neuer 'Service', die anschließende Konfiguration von Ghost oder einer anderen standardmäßig unterstützen Anwendung muss dann natürlich noch erfolgen. Randnotiz: Während meiner Coolify-Tests habe ich Ghost exemplarisch aufgesetzt. Weil das insgesamt so reibungsfrei verlief, habe ich mich dann zum Aufbau dieser Website hier entschieden :) Projekte wie Ghost sollten unterstützt werden, wodurch ich hoffe, dass auch das kommerzielle Hosting weiter genutzt wird. Dennoch ist es klasse, ein Tool wie Ghost quasi via Knopfdruck auf einen eigenen Server zu schieben.
Coolify Services / Wer die Wahl hat ...
  • Docker habe ich bislang lediglich als 'local' docker ausprobiert. Remote habe ich verknüpft, jedoch noch nichts Sinnvolles getestet. Angeblich ist auch Kubernetes supported, doch berichten kann ich hier leider nicht. Intensivere Tests mit Docker und Co stehen noch aus.
  • Neben zig Applikationen bringt Coolify viele nette Add-Ons mit (wie freie SSL-Zertifikate), Team Management und eine nette sowie einfache Benutzeroberfläche, die irgendwie Laune bereitet. Auch die Server-Auslastung kann man sich anschauen und es ist möglich, den nicht benötigten Speicher auf dem Server zu leeren.
  • Letztlich entsteht ein breites Einsatzspektrum: Coolify ist für die lokale Entwicklung ebenso nützlich wie für das serverseitige Hosting von Applikationen und Websites. Coolify macht die Dinge einfacher und hat's dabei faustdick hinter den Ohren!

Meine Coolify-Bewertung

  • Themen wie Hosting, Docker und env-Variablen-Setzen können in Summe komplex sein, erfordern zudem das nötige Wissen. Trotzdem beweist Coolify ein Händchen für Usability und macht Abläufe einfacher. Die Oberfläche sieht auch noch nett aus!
  • Coolify macht Self-Hosting (und mehr!) durch die Absenkung von Barrieren einer breiteren Masse an Nutzern zugänglich und ist unumstritten relevant und nützlich. Technisch hat's Coolify mit der geschickten Kombination aus Skills faustdick hinter den Ohren und ist somit ein quelloffener Self-Hosting-Tausendsassa!
  • Es ist für mich ein 'cooles' Open-Source Projekt, welches meiner Meinung nach zusätzliche Unterstützung bekommen sollte! Weitere Infos dazu, wie man das Projekt supporten kann, finden sich auch in der Projekt-Readme auf github.
  • Meine bisherigen Tests liefen bislang ohne Probleme ab, selbst auf einem kleinen Cloud-Server (2VCPU, 4GB RAM, 40GB Disk node mit Ubuntu) konnte so manches parallel installiert werden. Anmerkung: ich habe keine Traffic-lastigen Szenarien getestet, von daher leite ich keine Empfehlung für Mindestanforderungen ab - hier gilt je Anwendungsfall: DYOR!

Insgesamt konnte mich Coolify bis jetzt vollends überzeugen.

🙌
Fazit: Daumen hoch und Kudos für Andras Bascal und Coolify!