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.
35 lines
1.6 KiB
YAML
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"]
|