Obelica Docs
Architettura

Decisioni architetturali

Decision log per Obelica VPS

Ultimo aggiornamento: 2026-06-24.

Direzione

Obelica VPS diventa progressivamente il centro operativo self-hosted di Obelica.

Target breve:

  • Docker runtime per app in produzione;
  • HTTPS reverse proxy tramite Traefik;
  • Git privato tramite Forgejo;
  • DigitalOcean managed PostgreSQL per le app migrate;
  • backup locale cifrato automatico con obelica-backup;
  • control plane operativo Rust obelica per check, backup, cron e deploy helper;
  • base per monitoring e automazioni future.

Target medio:

  • sostituire Vercel per molte app in modo graduale;
  • mantenere l'infrastruttura semplice da operare;
  • evitare Kubernetes, multi-droplet, registry complessi e managed DB ovunque finche' non servono davvero.

Scelte attuali

AreaDecisione
Computesingolo droplet DigitalOcean
RuntimeDocker Compose
Reverse proxyTraefik
GitForgejo privato via tunnel SSH
DB appDigitalOcean managed PostgreSQL
DB ForgejoPostgreSQL locale in Docker
Backupobelica backup run orchestrato dal control plane Rust, motore obelica-backup, locale, cifrato ChaCha20Poly1305, cron 04:00
Control planeCLI Rust /opt/obelica/infra/bin/obelica, wrapper globale shell ancora non promosso
DNS*.obelica.com resta produzione Vercel, *.vps.obelica.com staging VPS
Deploycontrol plane Rust obelica, manuale controllato prima di CI/CD
Fonte repoForgejo primario, GitHub mirror non aggiornato
Documentazionebona/obelica-docs e' fonte tecnica unica

Non obiettivi attuali

  • Kubernetes;
  • alta disponibilita multi-droplet;
  • Forgejo pubblico;
  • migrazione DNS globale;
  • zero downtime obbligatorio;
  • CI/CD automatico prima che il deploy manuale sia stabile.

Forgejo

Stato desiderato attuale:

  • HTTP solo 127.0.0.1:3333;
  • accesso via tunnel SSH;
  • registrazioni disabilitate;
  • login obbligatorio;
  • un admin iniziale;
  • nessun git.obelica.com pubblico ora;
  • SSH Git solo se diventa necessario.

Prima di renderlo pubblico servono 2FA, policy utenti, backup offsite, monitoring, rate limit, hardening e possibile VPN/IP allowlist.

Database

Policy:

  • app migrate: DigitalOcean managed PostgreSQL;
  • Forgejo: PostgreSQL locale in Docker;
  • dati importanti: sempre dump e backup offsite.

La migrazione da Neon a DigitalOcean e' completata per tutti i progetti.

Documentazione

Decisione 2026-06-22:

  • la fonte di verita' tecnica e' bona/obelica-docs;
  • /opt/obelica/docs viene deprecata e trasformata in puntatore;
  • il framework locale Mac serve solo come bootstrap per agenti, non come documentazione tecnica duplicata;
  • ogni modifica infrastrutturale deve aggiornare Fumadocs nello stesso ciclo di lavoro.

Backup

Policy:

  • backup automatico quotidiano;
  • cifratura simmetrica con passphrase protetta;
  • retention locale limitata;
  • offsite obbligatorio appena possibile;
  • restore test periodico.

Control plane Rust

Decisione 2026-06-23:

  • centralizzare gli script operativi in un framework Rust modulare chiamato obelica;
  • mantenere i vecchi script shell come fallback finche' la parita' non e' stabile;
  • usare /opt/obelica/infra/bin/obelica come percorso operativo esplicito;
  • promuovere successivamente il binario a /usr/local/bin/obelica con sudo;
  • non cambiare architettura server: Docker Compose, Traefik, Forgejo e layout /opt/obelica restano validi.

Decisione 2026-06-24:

  • centralizzare i deploy app nel modulo Rust deploy;
  • usare /opt/obelica/infra/config/deploy-apps.tsv come manifest operativo dei target deployabili;
  • mantenere Docker Compose come backend di esecuzione;
  • modellare ogni progetto con strategy, repo, compose path, branch, container attesi, smoke URL, codici HTTP attesi e timeout;
  • separare build e start (docker compose build + docker compose up -d --no-build);
  • considerare docker compose up -d --build una scorciatoia legacy, non la procedura normale;
  • mantenere wrapper shell solo come punti d'ingresso o lock legacy, non come logica primaria.

Dominio principale

obelica.com deve diventare landing pubblica Obelica.

Non deve puntare a Forgejo. Se Forgejo diventera' pubblico, usare eventualmente git.obelica.com.

On this page