Zum Inhalt springen

Neu in 2.7.0: Workflows. Pro 7 Tage gratis testen.

Containly
Zurück zur Startseite

Containly installieren

Aktualisiert am 10. Oktober 2026

Containly läuft als ein Container auf deinem eigenen Server. Mit Docker Compose ist es in rund einer Minute installiert; danach legst du den ersten Admin an und fügst deine Hosts hinzu.

Zuerst einmal umsehen?Die Demo läuft in deinem Browser mit Beispiel-Hosts. Nichts zu installieren, gelöscht, wenn du gehst.

Demo ausprobieren

Die Installation im Video

Das Übersichtsvideo zeigt die Installation ab 0:21. Die Schritte unten sind dieselben, mit jedem Befehl zum Kopieren.

Das Video lädt erst nach dem Klick von YouTube (youtube-nocookie.com), auf Englisch mit Untertiteln. Auf YouTube ansehen

Voraussetzungen

  • Ein Linux-Host mit Docker Engine und Docker Compose v2 (der Befehl docker compose).
  • Ein 64-Bit-System: Das Image gibt es für linux/amd64 und linux/arm64.
  • Ein freier Port, standardmässig 8420.

Containly spricht mit dem Docker-Socket, und das entspricht Root-Rechten auf dem Host. Lies die Sicherheitshinweise im README auf GitHub, bevor du es übers Internet erreichbar machst.

Mit Docker Compose installieren

Leg einen Ordner an und lade die Beispiel-Compose-Datei und die .env-Vorlage direkt unter ihren endgültigen Namen herunter:

shell
# Compose-Datei und .env-Vorlage holen$ mkdir containly && cd containly$ REPO=https://raw.githubusercontent.com/amslertec/containly/main$ curl -fsSL $REPO/docker-compose.example.yml -o docker-compose.yml$ curl -fsSL $REPO/.env.example -o .env

Prüf vor dem ersten Start zwei Einstellungen:

  • In der .env bleibt CONTAINLY_SECURE_COOKIES=false, solange du Containly über reines HTTP öffnest. Auf true setzt du es nur hinter HTTPS.
  • In der docker-compose.yml ersetzt du /path/to/your/compose-projects auf beiden Seiten der Volume-Zeile durch den Ordner mit deinen Compose-Projekten. Der Pfad im Container muss derselbe sein wie auf dem Host.

Dann Image ziehen, starten und das Log verfolgen:

shell
# Image ziehen, starten, Setup-Token aus dem Log kopieren$ docker compose pull$ docker compose up -d$ docker compose logs -f containly

Erste Anmeldung

Beim ersten Start gibt es noch kein Admin-Konto. Containly schreibt ein einmaliges Setup-Token ins Log, in einem umrahmten Banner. Das Token liegt ausserdem im Volume containly-data unter /data/setup.token.

  1. Öffne http://<server-ip>:8420 im Browser. Solange es keinen Admin gibt, erscheint das Setup-Formular.
  2. Gib einen Benutzernamen und ein Passwort ein und füge das Setup-Token ein.
  3. Absenden. Der erste Admin wird angelegt, der Setup-Modus schliesst sich endgültig und das Token wird gelöscht.

Schalte danach die Zwei-Faktor-Anmeldung für dein Konto ein. Bleibt die Seite leer oder schwarz, bist du über reines HTTP mit CONTAINLY_SECURE_COOKIES=true unterwegs: Setz den Wert auf false, starte neu und lade die Seite mit Ctrl+Shift+R neu.

Hinter einem Reverse Proxy

Für den Zugriff von ausserhalb deines Netzwerks gehört ein Reverse Proxy mit TLS vor Containly, zum Beispiel Traefik, Caddy oder nginx. Dazu änderst du diese Einstellungen:

  • Den Port nur an den Host binden: "127.0.0.1:8420:8420" unter ports: in der docker-compose.yml.
  • CONTAINLY_SECURE_COOKIES=true in der .env setzen.
  • CONTAINLY_TRUST_PROXY=true lassen, das ist der Standard, damit Containly die weitergeleiteten Header liest. Setzt du CONTAINLY_PUBLIC_URL auf deine Adresse, verlinken Benachrichtigungs-E-Mails darauf.
.env
CONTAINLY_SECURE_COOKIES=trueCONTAINLY_TRUST_PROXY=trueCONTAINLY_PUBLIC_URL=https://containly.example.com

Für Docker-Zugriff mit minimalen Rechten enthält die Beispiel-Compose-Datei ausserdem einen gefilterten Socket-Proxy. Starte ihn mit docker compose --profile hardened up -d, leg in Containly einen TCP-Endpunkt auf socket-proxy:2375 an und entferne den direkten Socket-Mount beim Dienst containly. Dieser Port ist nur im internen Compose-Netzwerk erreichbar; veröffentliche den reinen Port 2375 nie.

Weitere Hosts hinzufügen

Der lokale Docker-Host ist von Anfang an verbunden. Weitere Hosts fügst du in Containly auf einem dieser Wege hinzu:

  • TCP mit TLS-Client-Zertifikaten, für einen Docker-Daemon, der auf einem TLS-Port lauscht.
  • SSH, für Hosts, die du per SSH erreichst.
  • Der Agent, für Hosts hinter NAT oder ohne offene Ports. Containly zeigt ein Einmal-Token und ein docker run- oder Compose-Snippet; du führst es auf dem entfernten Host aus, und der Agent verbindet sich von dort per WSS zu Containly.

Auf TCP- und SSH-Hosts verwaltet Containly Compose-Dateien über einen kleinen Helfer-Container über die normale Docker-API, dort muss also nichts von Hand installiert werden. Die Gratisversion deckt 2 Hosts ab, Pro hebt das Limit auf.

Containly aktualisieren

Containly kann sich selbst aktualisieren: Ein Klick in der App erstellt den Container mit der neuen Version neu und rollt zurück, wenn die neue Version nicht sauber startet. Auf der Kommandozeile funktioniert es wie bei jedem Compose-Dienst, aber ohne automatischen Rollback:

shell
$ cd containly$ docker compose pull$ docker compose up -d

Das Image trägt das Tag latest und zu jeder Version eine Versionsnummer. Um auf einer Version zu bleiben, ersetzt du latest in der docker-compose.yml durch eine genaue Version.

Hinweise zu Plattformen

Containly braucht nichts Besonderes von der Plattform: Jeder Host mit Docker Engine und Docker Compose v2 funktioniert, ob Mini-PC, virtuelle Maschine, NAS oder VPS.

Auf einem Raspberry Pi nimmst du ein 64-Bit-System auf einem Pi 4 oder Pi 5; Docker zieht dann von selbst das Image für linux/arm64. Ein 32-Bit-Image gibt es nicht.