TazPod Nomadic Workflow

TazPod is designed so the operator can rebuild the execution environment on another host without carrying plaintext credentials or a long manual checklist.

What Actually Has to Exist

A fresh host only needs:

  • Docker installed and usable
  • a checkout of the project repository containing .tazpod/
  • gopass installed and configured with the gopass store cloned (o bind mount da host)
  • GPG key imported from gopass-keys/daily.asc (prima volta, chiede passphrase, poi cache 1h) The durable anchor is not the container. The durable anchor is the encrypted vault object.

Local Project Initialization

initProject() in cmd/tazpod/init.go creates:

  • .tazpod/
  • .tazpod/vault/
  • .tazpod/config.yaml

Defaults include:

  • image: tazzo/tazpod-ai:latest
  • container name: <current-folder>-lab
  • user: tazpod
  • ghost_mode: true

Case 1: Gopass store disponibile

Se /workspace/tazlab-secrets e clonato e la GPG key e importata:

  1. ensureContainerUp() creates or starts the container
  2. gopass show <path> per ogni segreto — gpg-agent restituisce il valore (cache 1h)
  3. Si lavora senza mai toccare tazpod unlock o ~/secrets/

Case 2: Prima inizializzazione su macchina nuova

  1. git clone git@github.com:tazzo/tazlab-secrets.git /workspace/tazlab-secrets
  2. gpg --import /workspace/tazlab-secrets/gpg-keys/daily.asc (richiede passphrase)
  3. gopass init --path /workspace/tazlab-secrets
  4. gopass show bootstrap/hetzner/token (verifica — la prima volta chiede passphrase, poi cache 1h)
  5. tazpod up → container pronto
  6. Da ora in poi, per 1 ora tutti i secret sono accessibili senza reinserire la password

Sync tra macchine

Il gopass store e un repository git. Per sincronizzare:

cd /workspace/tazlab-secrets
git pull origin master  # scarica modifiche da GitHub
git push origin master  # carica modifiche locali

Nessun demone automatico — il sync e on-demand.

Vault legacy

Il vecchio sistema (S3 vault + tmpfs) e stato rimosso. Tutti i progetti di migrazione (10, 22-27) sono completati. Il progetto 30 (rimozione Go core) e in fase di implementazione.

See Also