Configuración de Docker Compose para Supabase Local Development Stack
Cuándo usar esta combinación
Utiliza el stack local de Supabase para desarrollar, probar y depurar aplicaciones desacopladas de la nube, eliminando costos durante el ciclo de desarrollo. Es ideal para entornos de integración continua (CI/CD), desarrollo offline, validación de migraciones de esquemas en PostgreSQL, pruebas exhaustivas de políticas de seguridad a nivel de fila (RLS) y simulación integral de servicios de autenticación, almacenamiento y funciones serverless en entornos locales idénticos a producción.
Variables de entorno críticas para producción
POSTGRES_PASSWORD: Define la contraseña del superusuario de la base de datos PostgreSQL. En entornos locales suele ser un valor por defecto inseguro (ej.postgres); debe reemplazarse por una cadena criptográficamente segura.JWT_SECRET: Clave simétrica utilizada por GoTrue (Auth), PostgREST y Realtime para firmar y validar tokens de sesión. Si se ve comprometida, permite la falsificación de tokens de administrador.ANON_KEYySERVICE_ROLE_KEY: Tokens JWT generados a partir deJWT_SECRET. LaSERVICE_ROLE_KEYevade totalmente las políticas RLS (Row Level Security), por lo que jamás deben usarse los valores predeterminados de desarrollo local en un despliegue productivo.
Consejo de DevOps (Seguridad y Rendimiento)
Aislamiento de red y gestión de conexiones:
En producción, no expongas los puertos directos de la base de datos (5432) ni el dashboard de gestión (Supabase Studio / 54323) a la red pública. Restringe el acceso mediante un Reverse Proxy (Traefik/NGINX) protegido por VPN o mTLS.
En términos de rendimiento, activa y calibra PgBouncer o Supavisor (connection pooler) ajustando el parámetro max_client_conn y el tamaño del pool según los límites de RAM del contenedor, evitando el agotamiento de recursos (OOM Killer) ante picos de tráfico causados por conexiones concurrentes de PostgREST y Edge Functions.
Checklist de Seguridad antes de desplegar
- Cambiar las contraseñas por defecto en el archivo .env
- Mapear volúmenes persistentes en el VPS
- Configurar las reglas de firewall para los puertos requeridos