svdev — Gestore di Ambienti di Sviluppo
CLI Python per ambienti di sviluppo multi-tenant isolati · FAS @ UniTN
Cos'è svdev?
svdev è un package Python (installabile tramite pip install -e .) che espone un unico comando svdev per gestire ambienti di sviluppo isolati sulla stessa macchina. Ogni tenant è uno stack Docker Compose costruito su un'immagine FastAPI core condivisa, con le rotte per-tenant caricate a runtime importando un router.py tramite importlib — nessuna duplicazione del codice del framework tra i tenant.
Punto Architetturale Chiave
I file Docker Compose non vengono committati — vengono generati a runtime da un Python string.Template e salvati in ~/.svdev/<tenant>/. Questo tiene gli artefatti di runtime separati dal codice sorgente e rende banale rigenerare o aggiornare la configurazione dello stack senza modificare file manualmente. Il Docker SDK gestisce l'ispezione (stato, health, uptime); subprocess guida docker compose per le operazioni sul ciclo di vita.
Comandi CLI
-
svdev new— scaffolda un nuovo tenant con una porta assegnata automaticamente -
svdev list / status— mostra stato, porta, uptime, health e immagine tramite Docker SDK -
svdev start / stop / restart / logs— gestione completa del ciclo di vita di qualsiasi tenant -
svdev bash / edit— apri una shell o modifica la configurazione del tenant in-place -
svdev remove— abbatte lo stack ed elimina i suoi volumi (operazione distruttiva)
Tenant Docs Integrato
svdev include un tenant docs built-in che serve la documentazione del progetto come web app FastAPI + Jinja2, renderizzando Markdown in HTML a ogni richiesta. Lo stesso sorgente Markdown viene anche compilato in PDF tramite Docker — documentazione trattata come codice, servita e compilata da un'unica sorgente di verità.