Files
CRAPP/infra/supabase/docker/docker-compose.prod.yml
T
davide f496eb2f88 Aggiungo stack Supabase self-hosted e config di produzione
Stack Docker completo in infra/supabase/docker/ (vendored da supabase/supabase)
per svincolare dev e produzione da Lovable Cloud. Include override di
produzione che non espone porte pubblicamente e disattiva i servizi non
usati da CrAPP (Realtime, Storage, imgproxy, Edge Functions, pooler),
un Caddyfile con routing /api/* per un solo dominio, e i template .env
per app e stack. Forzo inoltre il preset Nitro a node-server in
vite.config.ts, dato che il default sarebbe Cloudflare Workers.
2026-08-28 14:23:20 +02:00

35 lines
1.6 KiB
YAML

# Override di produzione, pensato per girare anche su hardware limitato (es. Raspberry Pi 4).
#
# 1. Nessuna porta esposta pubblicamente: l'API gateway (Kong/envoy, che serve anche Studio)
# resta raggiungibile solo su 127.0.0.1 — mettici davanti un reverse proxy TLS (vedi
# Caddyfile.example). Postgres di suo non espone porte nel compose base (supavisor sì,
# ma non ci serve: l'app si connette al DB sulla rete interna Docker, non da host esterno).
# 2. Servizi mai usati da CrAPP disattivati (nessuna route usa Storage/imgproxy/Realtime/Edge
# Functions/pooler — verificato: zero `.storage.`, `.functions.invoke`, `.channel()` nel
# codice, e gli avatar sono salvati come dataURL nel DB, non su Storage).
# 3. `studio` + `meta` restano attivi: servono per guardare/gestire il database via interfaccia
# grafica (raggiungibile tramite lo stesso api-gw su 127.0.0.1:8000, con le credenziali
# DASHBOARD_USERNAME/DASHBOARD_PASSWORD del tuo .env).
#
# Uso: docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
services:
api-gw:
# Compose unisce le liste `ports` tra file invece di sostituirle: serve !override
# per rimpiazzare davvero il binding pubblico del file base con uno solo-locale.
ports: !override
- "127.0.0.1:${API_GW_HTTP_PORT:-${KONG_HTTP_PORT:-8000}}:8000/tcp"
# Mai usati da CrAPP: profilo "unused" mai attivato, quindi `docker compose up -d`
# di default non li avvia nemmeno.
realtime:
profiles: ["unused"]
storage:
profiles: ["unused"]
imgproxy:
profiles: ["unused"]
functions:
profiles: ["unused"]
supavisor:
profiles: ["unused"]