# 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"]