Skip to content

Kernkonzepte

Dieser Abschnitt erklärt die zentralen Konzepte der Plattform. Ein solides Verständnis dieser Grundbegriffe hilft dabei, die Plattform effektiv zu nutzen und Missverständnisse zu vermeiden.


Projekte

Ein Projekt ist die übergeordnete Organisationseinheit. Projekte fassen zusammengehörige Ressourcen (Anwendungen, Datenbanken, Services) zu einer logischen Einheit zusammen.

Projekt: "E-Commerce-Plattform"
├── Anwendung: "frontend"
├── Anwendung: "api-server"
└── Datenbank: "postgres-prod"

Typische Projektzuschnitte:

  • Ein Projekt pro Produkt oder Team
  • Ein Projekt pro Domäne (z. B. crm, reporting, ai-services)

Anwendungen

Eine Anwendung repräsentiert einen containerisierten Prozess — also euren Service, eure Web-App oder euren Worker.

Jede Anwendung hat:

  • ein Repository (Git-URL + Branch)
  • ein Build-Profil (Dockerfile, Nixpacks, Static, …)
  • eine oder mehrere Domains
  • Umgebungsvariablen (Build-Zeit und/oder Laufzeit)
  • eine Deployment-Historie

Deployments

Ein Deployment ist ein einzelner Durchlauf des Build-und-Deploy-Prozesses. Jedes Deployment

  1. klont das Repository am konfigurierten Branch/Commit,
  2. baut das Docker-Image,
  3. startet einen neuen Container,
  4. schaltet den Reverse Proxy auf den neuen Container um.

Jedes Deployment bekommt eine eigene ID und einen Status:

StatusBedeutung
queuedWartet auf Ausführung
in_progressBuild/Deploy läuft gerade
finishedErfolgreich abgeschlossen
failedFehlgeschlagen (Logs prüfen)
cancelledManuell abgebrochen

Die komplette Deployment-Historie bleibt erhalten und ist über die API abrufbar.


Build-Profile

Das Build-Profil legt fest, wie die Plattform aus dem Repository ein lauffähiges Image erstellt.

ProfilBeschreibung
DockerfileEuer eigenes Dockerfile im Repository-Root (empfohlen)
NixpacksAutomatische Erkennung der Sprache/des Frameworks, kein Dockerfile nötig
StaticStatische Dateien (HTML/CSS/JS), direkt via nginx ausgeliefert

Domains & TLS

Jede Anwendung kann unter einer oder mehreren Domains erreichbar sein.

  • Automatisches TLS: Let’s Encrypt-Zertifikate werden automatisch ausgestellt und erneuert.
  • Custom Domains: Beliebige Subdomains innerhalb von btc-ag.cloud oder eigene Domains (nach DNS-Konfiguration).
  • Routing: Der Reverse Proxy leitet eingehende Anfragen anhand des Hostnamens an den richtigen Container weiter.

Die Domain-Konfiguration greift unmittelbar nach dem nächsten Deployment.


Umgebungsvariablen & Secrets

Umgebungsvariablen ermöglichen die Konfiguration einer Anwendung ohne Code-Änderungen.

Es gibt zwei Typen:

TypVerfügbarkeitTypischer Einsatz
Build-ZeitNur während docker buildNEXT_PUBLIC_API_URL, Build-Flags
LaufzeitIm laufenden ContainerDATABASE_URL, API-Keys, Feature-Flags

Secrets sind besonders geschützte Werte: Sie werden verschlüsselt gespeichert und nicht im Klartext in der Oberfläche oder in Logs angezeigt.


Services & Datenbanken

Neben Anwendungen können auf der Plattform auch verwaltete Services betrieben werden — z. B. PostgreSQL, Redis oder andere Middleware.


Webhook-basiertes Deployment

Der Webhook ist der Auslöser für automatische Deployments. Wird in Gitea ein Push auf den konfigurierten Branch ausgeführt, sendet Gitea einen HTTP-Request an die Plattform — die daraufhin ein neues Deployment startet.

Mehr dazu: CI/CD Pipelines einrichten


Reverse Proxy & Routing

Alle eingehenden HTTPS-Anfragen laufen durch einen zentralen Reverse Proxy (Traefik). Er ist verantwortlich für:

  • TLS-Terminierung
  • Routing nach Hostname zur richtigen Anwendung
  • Automatische Zertifikatserneuerung

Ihr müsst den Reverse Proxy nicht konfigurieren — das übernimmt die Plattform anhand eurer Domain-Einstellungen automatisch.