Obelica Docs
Architettura

Rete e firewall

DNS, firewall, porte pubbliche, tunnel e reti Docker

DNS

Policy attuale:

  • non migrare globalmente la produzione ora;
  • mantenere *.obelica.com su Vercel finche' ogni app non e' pronta;
  • usare *.vps.obelica.com come staging VPS;
  • testare ogni app su staging VPS prima dello switch finale.

Record rilevanti attuali:

DominioDestinazione
test.obelica.com129.212.141.97
vps.obelica.com129.212.141.97
*.vps.obelica.com129.212.141.97
*.obelica.comproduzione attuale Vercel/hosting esistente, non switchare globalmente

Durante l'audit 2026-06-22 molti domini app *.obelica.com risolvevano a IP 216.150.* invece che al droplet, causando fallimenti Let's Encrypt se inclusi nei router VPS. Il 2026-06-22 e' stata introdotta la separazione: router VPS solo su *.vps.obelica.com, produzione lasciata su Vercel.

Certificati TLS

Stato attuale: i certificati staging su *.vps.obelica.com sono affidabili.

Impatto:

  • test.obelica.com funziona;
  • vps.obelica.com funziona come endpoint diagnostico pubblico whoami;
  • le app staging rispondono pubblicamente via Traefik;
  • Let's Encrypt funziona quando il router contiene solo il dominio staging;
  • i log storici possono contenere errori di validazione sui domini produzione.

Piano:

  1. Tenere DNS staging *.vps.obelica.com -> 129.212.141.97.
  2. Tenere i router staging separati dai domini produzione.
  3. Verificare acme.json e log Traefik dopo ogni nuova app.
  4. Migrare produzione app per app solo dopo smoke test.

Vedi anche Certificati.

DigitalOcean Cloud Firewall

Il Cloud Firewall e' il controllo principale dichiarato per SSH.

Policy richiesta:

PortaSorgente
22/tcpsolo IP fidati del proprietario
80/tcppubblico
443/tcppubblico
altre portenon pubbliche

Questa configurazione non e' verificabile completamente da shell senza accesso API/pannello DigitalOcean. Va controllata manualmente nel pannello DigitalOcean o con doctl.

UFW

Stato systemd rilevato:

ufw: active

Da questa sessione ufw status verbose richiede root, quindi le regole effettive sono da verificare con:

sudo ufw status numbered
sudo ufw status verbose

Porte host

PortaBindNote
220.0.0.0, [::]SSH, mitigato da Cloud Firewall
800.0.0.0, [::]Traefik HTTP
4430.0.0.0, [::]Traefik HTTPS
8080127.0.0.1Traefik dashboard
3333127.0.0.1Forgejo
3334127.0.0.1Obelica Docs

Regola operativa: le porte 3333, 3334, 8080 non devono mai diventare 0.0.0.0 senza una decisione esplicita e un hardening dedicato.

Tunnel SSH

Accesso manuale:

ssh -L 3333:127.0.0.1:3333 obelica-prod
ssh -L 3334:127.0.0.1:3334 obelica-prod
ssh -L 8080:127.0.0.1:8080 obelica-prod

Accesso tramite CLI Rust:

obelica tunnel forgejo --open
obelica tunnel docs --open
obelica tunnel traefik --open
obelica tunnel all --open

Il CLI non apre nuove superfici pubbliche: automatizza solo il comando ssh.

Reti Docker

NetworkUso
proxyrete per servizi pubblicati da Traefik
forgejo-internalrete privata Forgejo/Postgres
obelica-docs_defaultrete privata del compose docs
<app>_defaultrete privata di ciascun compose app

Policy:

  • una app pubblica deve usare proxy e label Traefik;
  • un DB non deve stare in proxy salvo necessita eccezionale;
  • una dashboard amministrativa deve restare su loopback o rete privata.

On this page