Guía de autoalojamiento
Ejecuta Expense Budget Tracker en tu propio servidor con Docker Compose y Postgres.
Requisitos
- Docker y Docker Compose
- Postgres 18 (incluido en el archivo de Docker Compose)
Inicio rápido
git clone https://github.com/kirill-markin/expense-budget-tracker.git
cd expense-budget-tracker
cp .env.example .env
make up
Con esto se inicia Postgres, se ejecutan las migraciones y se ponen en marcha:
- la aplicación web en
http://localhost:3000 - el servicio de autenticación en
http://localhost:8081 - el proceso de tipos de cambio en Docker Compose
Configuración
Copia .env.example a .env y revisa estos valores:
MIGRATION_DATABASE_URL: URL de conexión con el rol propietario que usan las migracionesDATABASE_URL: URL de conexión con el rol de la aplicación que usa el proceso webAUTH_DATABASE_URL: URL de conexión con el rol del esquema de autenticación que usa el servicio de autenticaciónAUTH_MODE:nonepara uso local;cognitopara entornos con códigos OTP por correo electrónicoAUTH_DOMAIN,COOKIE_DOMAINyALLOWED_REDIRECT_URIS: dominios, cookies y redirecciones permitidas para la autenticación
Si AUTH_MODE=cognito, también debes configurar los valores de Cognito y SESSION_ENCRYPTION_KEY indicados en .env.example.
Cómo actualizar
git pull
make up
Al hacerlo, Docker Compose reconstruye los servicios y vuelve a ejecutar las migraciones a través del contenedor migrate.
Despliegue en AWS
La pila CDK de producción usa ECS Fargate, RDS, ALB, Cognito, API Gateway y Lambda. Sus dominios públicos de aplicación son:
app.<domain>— aplicación web en ECS Fargate detrás del ALBauth.<domain>— servicio de OTP y OAuth detrás del ALBapi.<domain>/v1/*— API REST SQL para clientes automatizados mediante API Gateway y Lambdamcp.<domain>/mcp— servicio MCP alojado mediante una HTTP API dedicada de API Gateway y una Lambda MCP
El dominio personalizado de MCP requiere un certificado ACM público para el nombre exacto mcp.<domain>. Conserva su CNAME de validación DNS para las renovaciones, proporciona el ARN del certificado al despliegue CDK y a CI, y crea el registro DNS mcp.* junto con los demás dominios públicos.
Consulta la descripción general del despliegue y la guía de AWS CDK del repositorio para seguir la secuencia y los scripts compatibles.