Skip to the content.

TuxBox - Distribution Strategy

🎯 Obiettivo

Definire la strategia di distribuzione di TuxBox e i suoi tool, bilanciando facilità d’uso, sicurezza e flessibilità.


📦 Due Modelli di Distribuzione

Modello 1: Tool Standalone Configurabile

TuxBox è distribuito come strumento vuoto che ogni utente configura autonomamente.

Caratteristiche

Pro

Contro

Use Cases


Modello 2: Tool Bundled con Registry Pre-configurato

TuxBox è distribuito con registry pre-configurato e tool “raccomandati”.

Caratteristiche

Pro

Contro

Use Cases


🎯 Strategia Consigliata: Ibrida con Multi-Registry

Implementazione

Combina i vantaggi di entrambi i modelli:

  1. Default Registry (Opzionale)
    • TuxBox può essere distribuito con un registry di default
    • Se ~/.tuxbox/config.toml non esiste, usa default (se embedded)
    • Altrimenti, richiede tbox init <url>
  2. Multi-Registry Support
    • Config supporta array di registry:
      [[registries]]
      name = "personal"
      url = "git@github.com:disoardi/tuxbox-registry-private.git"
      priority = 1  # Checked first
      
      [[registries]]
      name = "public"
      url = "https://github.com/tuxbox/registry-public.git"
      priority = 2  # Fallback
      
  3. Tool Resolution
    • tbox run <tool> cerca nei registry in ordine di priority
    • Se tool presente in più registry, usa priority più alta
    • Permette override: tbox run <tool> --registry public

Benefits


🔐 Registry Security Models

Registry Privato (SSH)

Setup richiesto:

# Utente deve avere SSH key configurato per GitHub
# ~/.ssh/config:
Host github.com
    IdentityFile ~/.ssh/id_ed25519_github
    User git

Comando init:

tbox init git@github.com:disoardi/tuxbox-registry-private.git

Pro:

Contro:


Registry Pubblico (HTTPS)

Setup richiesto: Nessuno

Comando init:

tbox init https://github.com/tuxbox/registry-public.git

Pro:

Contro:


🚀 Roadmap di Distribuzione

Phase 2a: Multi-Registry Core

Phase 2b: Registry Privato SSH

Phase 3: Registry Pubblico (Optional)

Phase 4: Default Registry Embedded (Optional)


📊 Decision Matrix

Scenario Registry Type Distribution Model Multi-Registry
Uso personale SSH privato Standalone + init Sì (1 privato)
Team interno SSH privato Bundled con default Sì (1 privato + 1 pubblico)
Open source HTTPS pubblico Standalone + init Sì (multipli pubblici)
Enterprise SSH privato Bundled con default Sì (multipli privati)

✅ Decisione per MVP (Phase 2)

Implementazione iniziale:

  1. ✅ Multi-registry support (core feature)
  2. ✅ SSH authentication (user’s SSH config)
  3. ✅ HTTPS fallback support
  4. ✅ Registry privato iniziale (tuxbox-registry-private)
  5. 📅 Registry pubblico future (Phase 3)
  6. 📅 Embedded default registry optional (Phase 4)

Vantaggi:


Last updated: 2026-02-13 Status: Design approved, ready for implementation