Mach aus einer schriftlichen Beschreibung eines Servers einen Cloud-Rechner und lege eine Anwendung darauf.

Bereitstellen

Du beschreibst eine Bereitstellung in colors.yml. PocketDeploy bringt ein Cloud-Konto mit dieser Datei in Übereinstimmung: ein Ubuntu-24.04-Rechner, Firewall-Regeln, DNS, ausgehende E-Mail und GitHub-Zugriff, damit die Anwendung ausgeliefert werden kann. Die Clouds, die es kennt, sind Oracle Cloud, DigitalOcean, Google Cloud und Hetzner.

Wie du es nutzt

flowchart TB
  yml[colors.yml in Git]
  private[.envrc.private und SSH-Schlüssel<br/>nicht in Git]
  sqlite[(.colors.sqlite<br/>lokales Tagebuch)]
  cmd[pocketdeploy plan / converge]

  yml --> cmd
  private --> cmd
  cmd --> sqlite
  cmd --> cloud[Ein Compute-Anbieter]
  cmd --> shared[Cloudflare, Resend, GitHub, ONCE]
  sqlite --> vault[Verschlüsselter VaultContext-Sicherungspunkt]

Die Arbeit passiert in einer devenv-Shell (Python, Cloud-CLIs, OpenSSH, ein festgelegter VaultContext-Client). Die übliche Schleife ist plan, dann converge. Eine Bereitstellung gehört jeweils einem Betreiber. Die Sperre ist lokal auf diesem Rechner.

Was eine Bereitstellung enthält

Bereich Was PocketDeploy damit tut
Compute Ein öffentlicher IPv4-Server mit Ubuntu 24.04. Der Anbieter ist Oracle Cloud (oci), DigitalOcean, Google Cloud (gcp) oder Hetzner (hcloud).
Firewall Regeln, die es angelegt und als eigene markiert hat.
ONCE Der App-Runner von Basecamp, per Prüfsumme auf v0.3.3 festgelegt, der den Anwendungscontainer ausführt.
DNS Cloudflare-Einträge für den Hostnamen.
E-Mail Resend, für eine Versanddomain.
GitHub Eine Deployment-Umgebung, die die Auslieferung der Anwendung nutzen kann.
Vault Sicherungspunkte des Zustands der Steuerung.

Bestehende Netzwerke, Cloud-Projekte und Routing bleiben deine. PocketDeploy übernimmt nicht von selbst den Produktiv-Stack einer fremden Person. Die Cloud später zu wechseln bedeutet eine neue Bereitstellung plus eine getrennte Wiederherstellung der Anwendungsdaten und eine DNS-Umschaltung.

sequenceDiagram
  participant Op as Betreiber
  participant PD as PocketDeploy
  participant Cloud as Cloud-Anbieter
  participant Once as ONCE auf dem Host
  participant Vault as VaultContext

  Op->>PD: converge colors.yml
  PD->>Cloud: den Server und die Firewall anlegen oder abgleichen
  PD->>Once: die Anwendung ausliefern
  PD->>PD: IDs im lokalen Tagebuch festhalten
  Op->>PD: Sicherungspunkt
  PD->>Vault: verschlüsseltes Tagebuch, Konfigurationsbindungen, SSH-Autorität speichern

Ein Name wie <profile>-once-compute ist eine Bezeichnung. Die echte Identität ist die festgehaltene Ressourcen-ID. Ein fehlender Server ist ein Fehler und kein Anlass, einen Ersatz anzulegen, wenn die Konfiguration sagt, dass der Zustand schon bestehen muss.

Was ein Sicherungspunkt ist

Der Sicherungspunkt kann die Steuerung zurückbringen: welche Ressourcen es gibt, wie sie benannt wurden und wie man sich per SSH verbindet. Er enthält nicht die Datenbank der Anwendung und keine hochgeladenen Dateien.