Server & ContainerEinsteiger9 Min

Der Stack Baukasten: Docker Stacks ohne YAML zusammenklicken

Ein kostenloses Werkzeug auf iotueli.ch, mit dem du komplette Docker Stacks per Mausklick zusammenstellst und als fertige compose.yml herunterlädst. Diese Anleitung zeigt Schritt für Schritt, wie es geht.

Container betreiben, ohne eine einzige Zeile YAML von Hand zu schreiben. Der Stack Baukasten ist ein kostenloses Werkzeug auf iotueli.ch, mit dem du komplette Docker Stacks per Mausklick zusammenstellst und als fertige compose.yml herunterlädst. Diese Anleitung führt dich Schritt für Schritt durch alles, von der ersten Prüfung deines Systems bis zum laufenden Dienst, und erklärt unterwegs jede Einstellung.

Was der Stack Baukasten macht

Normalerweise schreibt man für mehrere Docker Dienste eine lange compose.yml von Hand. Man muss Images, Ports, Netze, Abhängigkeiten und Passwörter selbst zusammensuchen, und ein einziger Tippfehler legt schnell den ganzen Stack lahm. Der Stack Baukasten nimmt dir das ab: Du wählst Bausteine aus, ziehst sie in ein Docker Netz und stellst sie rechts in Ruhe ein. Die fertige compose.yml entsteht dabei live mit, immer korrekt und mit sinnvollen Standardwerten.

Die Oberfläche ist in vier Bereiche geteilt. Links liegt die Palette mit über neunzig fertigen Container Vorlagen. In der Mitte ist die Arbeitsfläche mit deinen Docker Netzen, in die du die Bausteine ziehst. Rechts öffnet sich die Detail Spalte, sobald du einen Dienst anklickst, und dort stellst du ihn genau ein. Unten wächst die fertige compose.yml samt der zugehörigen .env Datei immer sofort mit.

Alles läuft rein im Browser. Es gibt keinen Server, kein Konto und keine Cloud. Passwörter werden lokal in deinem Browser erzeugt und verlassen ihn nie. Der Baukasten erstellt nur Dateien, die du anschliessend auf deinem eigenen Server startest.

Für wen das gedacht ist

Für alle, die zuhause oder im kleinen Büro Dienste wie Home Assistant, Nextcloud, Grafana, Paperless oder Pi hole selbst betreiben möchten und sich nicht mit YAML herumschlagen wollen. Du brauchst kein Vorwissen über das compose Format. Wenn du schon Erfahrung hast, geht es trotzdem schneller, weil sinnvolle Standardwerte, Healthchecks und Sicherheitseinstellungen bereits gesetzt sind.

Voraussetzungen

Der Stack Baukasten selbst läuft komplett im Browser und braucht nichts ausser einer Internetverbindung. Die fertige Datei startest du danach auf einem Rechner mit Docker. Das kann ein kleiner Heimserver sein, ein Raspberry Pi, ein Mini PC oder eine günstige VPS. Zwei Dinge müssen auf diesem Rechner vorhanden sein: Docker selbst, also die Engine, welche die Container ausführt, und Docker Compose in Version 2, das Werkzeug, das eine compose.yml startet.

Ist Docker schon installiert?

Öffne ein Terminal auf dem Rechner, auf dem die Dienste später laufen sollen, und gib nacheinander diese zwei Befehle ein:

1docker version
2docker compose version

Beim ersten Befehl sollte eine Ausgabe mit Client und Server samt Versionsnummer erscheinen, beim zweiten eine Zeile wie Docker Compose version v2 und einer Nummer. Wichtig: Es heisst docker compose mit einem Leerzeichen. Das alte docker-compose mit Bindestrich ist veraltet und sollte nicht mehr verwendet werden. Bekommst du beide Versionsnummern, ist alles bereit und du kannst den nächsten Abschnitt überspringen.

Erscheint stattdessen eine Meldung wie command not found oder Cannot connect to the Docker daemon, fehlt Docker noch oder der Dienst läuft nicht. Dann hilft der nächste Abschnitt.

Docker installieren

Auf einem Linux Server wie Debian, Ubuntu oder Raspberry Pi OS ist das offizielle Installationsskript der einfachste Weg. Es richtet die Docker Engine und Docker Compose v2 in einem Schritt ein. Lade das Skript herunter und führe es aus:

1curl -fsSL https://get.docker.com -o get-docker.sh
2sudo sh get-docker.sh

Sorge anschliessend dafür, dass der Docker Dienst läuft und nach jedem Neustart automatisch wieder hochfährt:

1sudo systemctl enable --now docker

Damit du Docker ohne vorangestelltes sudo benutzen kannst, fügst du deinen Benutzer der Gruppe docker hinzu. Danach meldest du dich einmal ab und wieder an, damit die neue Gruppe wirksam wird:

1sudo usermod -aG docker $USER

Auf Windows und macOS installierst du am einfachsten Docker Desktop von der offiziellen Docker Webseite. Docker Compose ist dort bereits enthalten. Prüfe nach der Installation mit den beiden Befehlen von oben, ob alles bereitsteht. Eine ausführliche, bebilderte Installation für verschiedene Systeme findest du ausserdem hier auf iotueli.ch im Bereich Anleitungen.

Tipp: Der Rechner mit Docker und dein Arbeitsrechner müssen nicht dieselben sein. Du kannst den Stack bequem am Laptop zusammenklicken und die heruntergeladenen Dateien danach per SSH oder über einen geteilten Ordner auf deinen Server kopieren.

Schritt für Schritt

1. Eine Vorlage wählen

Am schnellsten startest du mit einer Vorlage. Oben in der Kopfzeile gibt es das Auswahlmenü Vorlage mit vierzehn fertigen Start Stacks, vom Smart Home über die Nextcloud Cloud bis zum Medien Server hinter einem VPN. Ein Klick und der komplette Stack steht auf der Arbeitsfläche, fertig verdrahtet und mit sinnvollen Standardwerten.

Im Beispiel Smart Home siehst du Mosquitto, Zigbee2MQTT und Node RED zusammen im Docker Netz iot netz. Home Assistant läuft im Host Netz, weil es direkten Zugriff auf das Heimnetz braucht. Container im selben Netz erreichen sich übrigens einfach über ihren Namen, ganz ohne IP Adressen.

2. Eigene Dienste hinzufügen

Du bist nicht auf Vorlagen angewiesen. Links in der Palette stehen alle Container nach Kategorien geordnet, von Datenbanken über Smart Home bis zu Netzwerk und Verwaltung. Zieh einen Baustein einfach in ein Docker Netz auf der Arbeitsfläche. Über das Suchfeld findest du jeden Dienst sofort.

Ein Docker Netz ist eine private Verbindung zwischen Containern. Dienste im selben Netz erreichen sich über ihren Namen, von aussen ist das Netz nicht sichtbar. Mit Netz hinzufügen legst du weitere getrennte Netze an, zum Beispiel um eine Datenbank von den nach aussen erreichbaren Diensten abzuschotten.

3. Einen Dienst genau einstellen

Klick auf eine Kachel und rechts öffnet sich die Detail Spalte. Damit du den Überblick behältst, sind alle Einstellungen in fünf aufklappbare Kategorien gegliedert. Zu Beginn ist alles zugeklappt, du öffnest also nur das, was du gerade brauchst. Im Bild sind Verbindung, Daten und Speicher sowie Betrieb und Ressourcen geöffnet.

Verbindung. Hier legst du fest, wie der Dienst erreichbar ist. Der Dienstname ist zugleich der Name, unter dem andere Container ihn im selben Docker Netz ansprechen, etwa eine App ihre Datenbank. Die Sichtbarkeit nach aussen kennt drei Stufen: nur intern heisst, dass ausschliesslich andere Container im selben Netz den Dienst erreichen. Nur localhost öffnet ihn allein für den Server selbst. Im LAN macht ihn für alle Geräte im Heimnetz erreichbar. Bei den Ports steht links der Port auf deinem Server und rechts der Port im Container, geschrieben als Host zu Container. 8080:80 bedeutet also: Du rufst den Dienst über Port 8080 deines Servers auf, im Container lauscht er auf Port 80.

Daten und Speicher. Container sind von sich aus vergänglich. Wird ein Container neu aufgebaut, sind seine Daten weg. Damit das nicht passiert, gibt es Volumes. Links steht entweder ein benanntes Volume, das Docker selbst verwaltet (zum Beispiel nextcloud_data), oder ein Pfad auf deinem Server, ein sogenannter Bind Mount (zum Beispiel /mnt/daten). Rechts steht der Pfad im Container, an dem die Daten landen. Für die meisten Fälle ist das bereits vorbelegte benannte Volume die richtige Wahl. Ein Häkchen bei ro stellt ein Volume auf nur lesen, praktisch wenn ein Dienst eine Konfigurationsdatei nur lesen, aber nicht verändern soll.

Konfiguration. Hier stehen alle Umgebungsvariablen des Dienstes, also seine eigentlichen Einstellungen wie Benutzernamen, Zeitzone oder Datenbanknamen. Geheime Werte wie Passwörter erkennst du am Würfel Symbol daneben. Ein Klick erzeugt ein starkes Zufallspasswort direkt im Browser, und der Wert landet automatisch in der .env Datei statt offen in der compose.yml. Mit Variable hinzufügen ergänzt du beliebige eigene Variablen, und hinter Erweitert verbergen sich seltener gebrauchte Felder wie Zeitzone oder Benutzer und Gruppen Kennungen.

Betrieb und Ressourcen. Diese Kategorie steuert, wie der Container läuft. Das Neustart Verhalten bestimmt, ob Docker ihn nach einem Absturz oder einem Neustart des Servers automatisch wieder startet. Die übliche Wahl ist immer, ausser manuell gestoppt: Der Dienst kommt nach einem Server Neustart von selbst zurück, bleibt aber aus, wenn du ihn bewusst gestoppt hast. Daneben gibt es immer, das ihn sogar nach einem manuellen Stopp neu startet, sowie nur bei Fehler und nie. Mit den Ressourcen Limits begrenzt du, wie viel der Container höchstens nutzen darf: beim Arbeitsspeicher zum Beispiel 512m oder 1g, bei der CPU eine Zahl wie 0.5 für einen halben Kern. Das ist vor allem auf kleinen Servern sinnvoll, damit ein einzelner Dienst nicht den ganzen Rechner auslastet. Lässt du die Felder leer, gilt kein Limit. Der Healthcheck schliesslich prüft regelmässig, ob der Dienst wirklich bereit ist, und abhängige Dienste warten, bis er gesund ist. Abschalten solltest du ihn nur, wenn er Probleme macht.

Hardware und Rechte. Dieser Bereich ist für Fortgeschrittene und bleibt bewusst zugeklappt. Unter Geräte reichst du Hardware vom Server in den Container durch, etwa einen USB Stick für Zigbee oder Z Wave, geschrieben als Pfad auf dem Host zu Pfad im Container (zum Beispiel /dev/ttyUSB0:/dev/ttyUSB0). Privilegiert gibt dem Container nahezu vollen Zugriff auf den Host und ist ein Sicherheitsrisiko, das du nur im Notfall setzt. Feiner und sicherer sind die zusätzlichen Capabilities und Gruppen direkt darunter, mit denen du nur einzelne Rechte vergibst.

4. Passwörter und die Sicherheits Hinweise beachten

Der Baukasten passt im Hintergrund auf und meldet sich, wenn etwas fehlt oder unsicher wäre. Diese Hinweise erscheinen als farbige Leiste unter der Arbeitsfläche, und auf der betroffenen Kachel zeigt ein farbiger Punkt den Schweregrad. Ein Klick auf einen Hinweis springt direkt zum passenden Dienst.

Im Beispiel Nextcloud Cloud arbeiten Nextcloud, PostgreSQL und Redis zusammen. Solange die Passwörter leer sind, warnt der Baukasten in Orange. Ein Klick auf das Würfel Symbol bei jedem Dienst erzeugt die fehlenden Passwörter, und die Warnungen verschwinden. So vergisst du nie ein Passwort.

Die generierten Passwörter siehst du nur ein einziges Mal. Lade die .env Datei herunter und bewahre sie sicher auf. Sie enthält alle Geheimnisse deines Stacks und gehört niemals in ein öffentliches Repository.

Die fertige compose.yml und die .env

Während du baust, entstehen unten zwei Dateien live mit. Die compose.yml beschreibt alle Dienste, Netze und Datenträger, bereits mit sinnvollen Standards wie automatischem Neustart, Healthchecks für Datenbanken und abgesicherten Rechten. Die .env Datei enthält die geheimen Werte getrennt davon, sodass die compose.yml selbst keine Passwörter im Klartext zeigt und gefahrlos geteilt werden kann. Beide Dateien kopierst du mit einem Klick oder lädst sie als Dateien herunter.

Auf dem eigenen Server starten

Lade die compose Datei und die .env herunter und lege beide in denselben Ordner auf deinem Server. Wichtig ist, dass beide Dateien nebeneinander liegen, denn die compose.yml liest die Geheimnisse aus der .env. Danach startest du den ganzen Stack mit einem einzigen Befehl in genau diesem Ordner:

1docker compose up -d

Das d am Ende steht für den Hintergrundbetrieb: Docker lädt die nötigen Images aus dem Internet, erstellt die Netze und Volumes und startet alle Container, ohne dass dein Terminal blockiert bleibt. Beim ersten Start kann das je nach Internetverbindung ein paar Minuten dauern.

Ob alles sauber läuft, prüfst du mit zwei weiteren Befehlen im selben Ordner:

1docker compose ps
2docker compose logs -f

Der erste Befehl zeigt den Status aller Container der Stack. Der zweite zeigt fortlaufend ihre Ausgaben, was bei Problemen hilft; mit der Tastenkombination Strg und C beendest du diese Anzeige wieder. Welche Adresse welcher Dienst hat und welche Zugangsdaten gelten, steht ausserdem im Reiter Auf deinem Server starten direkt unter der Datei. Wer lieber eine grafische Oberfläche nutzt, fügt dieselbe compose.yml einfach in Portainer oder Dockge ein.

Was sonst noch geht

Der Baukasten kann mehr, als nur Dienste auflisten. Du kannst einen Reverse Proxy mit automatischem HTTPS aktivieren, wahlweise mit Traefik oder Caddy, jedem Dienst über ein macvlan Netz eine eigene Adresse im Heimnetz geben, einen ganzen Stack als Link teilen oder eine bestehende compose.yml importieren und weiterbearbeiten. Sogar denselben Baustein mehrfach einsetzen ist möglich, weil du jedem Dienst einen eigenen Namen geben kannst.

Jetzt loslegen: Öffne den Stack Baukasten und bau deinen ersten Stack zusammen.

Probier es einfach aus. Du kannst nichts kaputt machen, denn der Baukasten erzeugt nur Dateien. Bau deinen Stack zusammen, lade ihn herunter und starte ihn auf deinem Server.

// Teste dich

Frage 1 von 3

Was macht der Stack Baukasten auf iotueli.ch?

// Teilen

Hat dir diese Anleitung geholfen?

Anonym, ohne Konto — ein Klick genügt.

// Wie es weitergeht

// Verwandte Anleitungen