📘 Introducción
Este repositorio forma parte del Trabajo de Fin de Grado (TFG) de Manuel García Baldo en la Universidad de Oviedo. Contiene toda la configuración necesaria para levantar la base de datos y servicios relacionados que sustentan el sistema de las aplicaciones de Carburo. Esto incluye los contenedores de PostgreSQL/PostGIS, Supabase Auth, Studio, Storage y Analytics, así como los scripts SQL iniciales.
El sistema se basa en Supabase, que proporciona un ecosistema completo de PostgreSQL, autenticación, almacenamiento y análisis. La arquitectura de contenedores es la siguiente:
| Contenedor | Imagen / Versión | Función principal | Puertos expuestos al exterior |
|---|---|---|---|
supabase-db |
supabase/postgres:15.8.1.085 |
Base de datos principal con PostGIS | ${POSTGRES_PORT_EXT:-5432} |
supabase-studio |
supabase/studio:latest |
Dashboard de administración visual | ${STUDIO_PORT:-54232} |
supabase-auth |
supabase/gotrue:v2.186.0-rc.5 |
Autenticación y gestión de JWT | ${POSTGRES_AUTH_PORT_EXT:-9999} |
supabase-meta |
supabase/postgres-meta:v0.95.2 |
Gestión de metadata de Supabase | Interno: 8080 |
supabase-storage |
supabase/storage-api:latest |
Almacenamiento de archivos (local / multi-tenant) | Interno: 5000 |
supabase-analytics |
supabase/logflare:latest |
Logging y métricas de analytics | 4000 |
Nota: Algunos servicios solo exponen puertos internamente y se comunican entre contenedores. Los puertos externos definitivos son los indicados arriba.
- Versión: 15.8.1 (no se usa la 17 por problemas de compatibilidad con Supabase).
- Usuario administrador principal:
POSTGRES_USER=supabase_admin. Obligatorio usar este usuario, de lo contrario la DB no carga. - Base de datos principal:
POSTGRES_DB=carburo. - Extensiones activas:
postgispara soporte geoespacial. - Puerto interno:
${POSTGRES_PORT:-5432} - Puerto externo:
${POSTGRES_PORT_EXT:-5432}
- Última versión (
latest). - Dashboard web para gestión de DB, roles, Auth y más.
- Puerto expuesto:
${STUDIO_PORT:-54232}
- Gestiona usuarios, JWT, OAuth (Google) y correos.
- Puerto expuesto:
${POSTGRES_AUTH_PORT_EXT:-9999} - Integración SMTP configurada con Zoho Mail para envíos:
SMTP_HOST,SMTP_PORT,SMTP_USER,SMTP_PASSdefinidos en.env.
- Almacenamiento de archivos en disco (
./storage/files). - Soporta multi-tenant y configuración de tamaño máximo de archivos.
- Logging y métricas de Supabase.
- Puerto expuesto: 4000
- Guarda datos en
_supabasey_analyticsdentro de la DB.
Los volúmenes montados en db incluyen scripts iniciales que configuran:
- Webhooks
- Roles
- JWT y Auth
- Supabase interno (
_supabase) - Analytics (
_analytics) - Pooler de conexiones
Autoria: Modificados por Manuel García Baldo para el proyecto Carburo.
Originales:
- Archivos SQL obtenidos de Supabase Docker Volumes
- Docker Compose basado en Supabase Docker
Levantar todos los servicios:
docker-compose up -dDetener todos los servicios:
docker-compose downDetener y eliminar volúmenes:
docker-compose down -vVer logs de la base de datos (por ejemplo):
docker-compose logs -f dbManuel García Baldo
Universidad de Oviedo
Trabajo de Fin de Grado - Ingeniería Informática (2025)
Este proyecto se distribuye bajo licencia MIT.
Puede utilizarse, modificarse o redistribuirse libremente, siempre que se cite la fuente original.