Apps

Apps

Ein Container, den du ausrollst, skalierst und auf eine Domain legst. Der Ausgangspunkt für alles andere im Projekt.

.md ansehen Geprüft gegen 2026.9.10
Auf dieser Seite

Was das ist

Eine App ist ein Container-Image, das in deinem Projekt läuft, mit den Replicas, Ressourcen, Volumes und Netzwerkeinstellungen, die dazugehören. Fast alles andere auf der Plattform hängt an einer App: Eine Domain zeigt auf eine App, ein Volume wird in eine App eingebunden, eine Datenbank legt ihre Zugangsdaten in eine App.

klickops fängt beim Container-Image an. Deinen Code baut es nur, wenn du ein Repository verbindest. Eine eigene Pipeline betreibt es nicht. Hast du schon ein Image, bist du zwei Minuten von einer URL entfernt.

Wann du das brauchst

  • Du hast ein Container-Image und willst es mit Hostname und TLS betreiben.
  • Du hast ein Git-Repository und willst, dass klickops es für dich baut.
  • Du ersetzt einen docker-compose-Dienst oder einen Heroku-Dyno durch etwas, das einen Node-Neustart übersteht.
Nicht dafür

Eine Aufgabe, die nach Zeitplan läuft und sich dann beendet, ist ein Scheduled Job und keine App. Apps sollen laufen. Ein Container, der sich sauber beendet, wird deshalb neu gestartet.

Eine App ausrollen

  1. Öffne dein Projekt, geh auf Apps und dann auf Deploy app.
  2. Wähl die Quelle: entweder ein Container-Image oder ein Repository, das klickops für dich baut. Fügst du eine Image-Referenz ein, liest klickops das Image aus und füllt Port, Startbefehl und die deklarierten Umgebungsvariablen vor.
  3. Bestätige den Port, auf dem deine App lauscht. Der Vorschlag kommt aus dem Image und stimmt meistens.
  4. Leg unter Copies die Zahl der Replicas fest. Eines ist der Standard und lässt sich später ohne neues Deployment ändern. CPU und Memory wählst du nicht: klickops schneidet sie auf den tatsächlichen Verbrauch zu.
  5. Wähl unter Who can reach it? die Option Anyone (public), wenn die App gleich öffentlich sein soll. Der Standard, Private, hält sie im Projekt. Eine Domain kannst du später im Tab Domains nachholen.
  6. Prüf und rolle aus. Die App erscheint in der Liste mit Live-Status, während der Rollout läuft.

Die Apps-Liste eines Projekts, mit Status und Ressourcenverbrauch pro App.Die Apps-Liste eines Projekts, mit Status und Ressourcenverbrauch pro App.
Die Apps-Liste eines Projekts, mit Status und Ressourcenverbrauch pro App.

Der Alltag

Jede App öffnet auf Overview. Die Tab-Leiste darüber ist die ganze Oberfläche.

TabWas dort liegt
OverviewStatus, aktuelles Image, letzte Versionen, Rollback
LogsAusgabe des Containers, live und historisch
MetricsCPU, Memory, Netzwerkverkehr, Neustarts, belegter Speicher
ScalingZahl der Replicas und Autoscaling
DomainsHostnamen, TLS, Weiterleitungen, Zugriffsmodus
FirewallWer diese App erreichen darf und was sie erreichen darf
ConfigurationUmgebungsvariablen, Secrets, Verknüpfungen
StorageVolumes, die in den Container eingebunden sind
BuildsErscheint, wenn die App aus einem Repository gebaut wird
PreviewsUmgebungen pro Pull Request, wenn ein Repository verbunden ist
ShellEine interaktive Sitzung im laufenden Container
BackupsWiederherstellungspunkte für die App und ihre Volumes
AdvancedStartbefehl, Health-Checks, Rollout-Strategie, Sicherheit, Labels, Release Command und zusätzliche Container

Einstellungen im Überblick

EinstellungStandardWas sie bewirkt
ImagekeinesContainer-Image und Tag. Änderst du es, läuft ein Rollout. Der Bestätigungsdialog zeigt alt und neu.
Portaus dem ImageDer Port, auf dem dein Container lauscht. Services und Domains leiten dorthin.
Copies1Wie viele Replicas laufen. Auf null zu skalieren stoppt die App, ohne sie zu löschen.
AutoscalingausFügt Replicas zwischen Unter- und Obergrenze hinzu, je nach CPU-Last.
CPU und Memoryautomatischklickops schneidet beides auf den tatsächlichen Verbrauch zu. Du wählst keine Grösse.
Health-Checkan, TCPDatenverkehr wartet, bis der Port eine Verbindung annimmt. Ein TCP-Check braucht keinen Health-Endpunkt. Hast du einen, stell auf HTTP um.
SicherheitautomatischRichtet sich nach dem Image: Ein Image mit Nicht-Root-User läuft als dieser User, ein Image, das als Root läuft, startet trotzdem und wird isoliert, wo der Cluster das unterstützt. Übersteuern kannst du das im Tab Advanced.
Watch for new tagsausIm Image-Dialog: meldet dir ein neueres Tag oder rollt es automatisch aus.

Grenzen und Fallstricke

  • Ein Rollout ist nicht sofort da. klickops wartet, bis die neuen Replicas ihren Health-Check bestehen, und zieht erst dann die alten ab. Ein kaputtes Image lässt also die vorherige Version weiterlaufen. Ausnahme sind Apps mit Volume: Dort stoppt die alte Instanz zuerst, damit die neue die Platte einbinden kann.
  • Auf null skalieren behält den Speicher. Die App kostet keine Rechenzeit mehr, der Speicher läuft weiter.
  • Die Shell ist kein Deployment-Weg. Was du im laufenden Container änderst, ist beim nächsten Rollout weg. Leg es ins Image oder in die Konfiguration.
  • Änderungen an der Konfiguration starten die App neu. Das Speicherband nennt die Zahl der betroffenen Replicas, bevor du bestätigst.
Vorsicht

Wer eine App löscht, behält ihre Volumes: Sie bleiben als losgelöster Speicher im Projekt und stehen auf der Volumes-Seite unter Orphaned, bis du sie dort löschst.

Verwandt

  • Domains gibt der App einen Hostnamen und ein Zertifikat.
  • Datenbanken legt ihre Zugangsdaten direkt in die App.
  • Speicher, der einen Rollout übersteht, liegt auf einem Volume und wird im Tab Storage eingebunden.