Obelica Docs
Servizi

Traefik

Reverse proxy HTTPS pubblico del droplet

Funzione

Traefik e' il reverse proxy pubblico. Gestisce:

  • HTTP :80;
  • HTTPS :443;
  • redirect HTTP -> HTTPS;
  • certificati Let's Encrypt con HTTP challenge;
  • routing Docker tramite label;
  • dashboard locale su 127.0.0.1:8080.

Path

/opt/obelica/infra/traefik

File principali:

  • docker-compose.yml;
  • .env;
  • letsencrypt/acme.json.

Runtime

VoceValore
Containertraefik
Imagetraefik:v3.7.1
Networkproxy
Porte80:80, 443:443, 127.0.0.1:8080:8080

Volumi:

/var/run/docker.sock:/var/run/docker.sock:ro
./letsencrypt:/letsencrypt

Config importante

providers.docker.exposedbydefault=false
api.dashboard=true
api.insecure=true

api.insecure=true e' accettabile solo perche' la dashboard e' bindata su 127.0.0.1.

App candidate staging

Siti web e gestionali collegati a Traefik sul droplet. Produzione resta su Vercel finche' non viene fatto switch app per app.

Target staging:

*.vps.obelica.com
  • alessandro-zucchini
  • caffe-del-corso
  • centro-donna-giustizia
  • macelleria
  • officina-longhi
  • ottica-style
  • romauto
  • sazzini
  • sonja-trekking
  • tulpa-studio
  • wash-dog-ferrara (admin e staff)
  • zannoni

Certificati TLS

Stato attuale: DNS e ACME sono allineati per le app staging *.vps.obelica.com. tulpa-studio e' in preparazione come pilota DNS production: il router accetta gia' tulpastudio.com e www.tulpastudio.com, ma i DNS pubblici production non sono ancora puntati al VPS.

Durante l'audit e la correzione 2026-06-22:

  • test.obelica.com risponde correttamente;
  • vps.obelica.com e *.vps.obelica.com puntano al Reserved IP 129.212.141.97;
  • i router app usano Host(<app>.vps.obelica.com), con eccezione temporanea di tulpa-studio che include anche i domini production per test pre-DNS;
  • tutte le app candidate rispondono con certificato trusted su staging;
  • i domini pubblici app *.obelica.com restano su Vercel/hosting esistente fino alla migrazione app per app.

Verificare:

# connessione
openssl s_client -connect <app>.vps.obelica.com:443 -servername <app>.vps.obelica.com </dev/null

# certificato
openssl s_client -connect <app>.vps.obelica.com:443 -servername <app>.vps.obelica.com </dev/null 2>/dev/null | openssl x509 -noout -issuer -subject -dates

Controllo router:

curl -s http://127.0.0.1:8080/api/http/routers | jq -r '.[] | select(.provider=="docker") | [.name,.rule] | @tsv'

I router app in staging non devono includere host production salvo una migrazione pilota documentata. Eccezione corrente: tulpa-studio include tulpastudio.com e www.tulpastudio.com per test pre-DNS con curl --resolve.

Comandi

cd /opt/obelica/infra/traefik
docker compose ps
docker compose up -d
docker compose logs --tail=100

Dashboard:

ssh -L 8080:127.0.0.1:8080 obelica-prod

Poi:

http://127.0.0.1:8080/dashboard/

Regole

  • Non esporre mai la dashboard pubblicamente.
  • Non disattivare exposedbydefault=false.
  • Ogni app pubblica deve avere label Traefik esplicite.
  • Ogni app pubblica deve stare nella rete proxy.
  • Valutare docker socket proxy in futuro.
  • Risolvere DNS/TLS prima su *.vps.obelica.com, poi migrare produzione app per app.
  • Non combinare dominio produzione e dominio staging nello stesso router Traefik durante la fase di staging, salvo pilota DNS esplicitamente documentato e testato.

On this page