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