Trasforma una descrizione scritta di un server in una macchina cloud e mettici un’applicazione.

Distribuzione

Descrivi un deployment in colors.yml. PocketDeploy fa corrispondere un account cloud a quel file: una macchina Ubuntu 24.04, regole firewall, DNS, email in uscita e accesso GitHub così l’applicazione può essere consegnata. I cloud che conosce sono Oracle Cloud, DigitalOcean, Google Cloud e Hetzner.

Come lo usi

flowchart TB
  yml[colors.yml in git]
  private[.envrc.private e chiavi SSH<br/>non in git]
  sqlite[(.colors.sqlite<br/>diario locale)]
  cmd[pocketdeploy plan / converge]

  yml --> cmd
  private --> cmd
  cmd --> sqlite
  cmd --> cloud[Un provider di compute]
  cmd --> shared[Cloudflare, Resend, GitHub, ONCE]
  sqlite --> vault[Checkpoint cifrato di VaultContext]

Il lavoro avviene dentro una shell devenv (Python, CLI cloud, OpenSSH, un client VaultContext fissato). Il ciclo abituale è plan, poi converge. Un operatore alla volta è proprietario di un deployment. Il lock è locale a quella macchina.

Che cosa include un deployment

Riquadro Che cosa ne fa PocketDeploy
Calcolo Un server Ubuntu 24.04 con IPv4 pubblico. Il provider è Oracle Cloud (oci), DigitalOcean, Google Cloud (gcp) o Hetzner (hcloud).
Firewall Regole che ha creato e contrassegnato come proprie.
ONCE L’esecutore di app di Basecamp, con checksum fissato alla v0.3.3, che esegue il container dell’applicazione.
DNS Record Cloudflare per il nome host.
Email Resend, per un dominio di invio.
GitHub Un ambiente di deployment che la consegna dell’app può usare.
Vault Checkpoint dello stato del controller.

Reti, progetti cloud e routing esistenti restano tuoi. PocketDeploy non adotta da solo lo stack di produzione di un estraneo. Cambiare cloud in seguito significa un nuovo deployment, più un ripristino separato dei dati dell’applicazione e un passaggio del DNS.

sequenceDiagram
  participant Op as Operatore
  participant PD as PocketDeploy
  participant Cloud as Provider cloud
  participant Once as ONCE sull’host
  participant Vault as VaultContext

  Op->>PD: converge colors.yml
  PD->>Cloud: crea o fa corrispondere il server e il firewall
  PD->>Once: consegna l’applicazione
  PD->>PD: registra gli id nel diario locale
  Op->>PD: checkpoint
  PD->>Vault: conserva diario cifrato, binding di configurazione, autorità SSH

Un nome come <profile>-once-compute è un’etichetta. L’identità reale è l’id della risorsa registrato. Un server mancante è un errore, non un invito a crearne uno sostitutivo, quando la configurazione dice che lo stato deve già esistere.

Che cos’è un checkpoint

Il checkpoint può riportare indietro il controller: quali risorse esistono, come sono state nominate e come fare SSH. Non contiene il database dell’applicazione né i file caricati.