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. |
| 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.