deployment/docker-compose.yml
Rama main · réplica de lectura del repositorio original.
name: janua
services:
# FastAPI Backend
api:
build:
context: ../apps/api
dockerfile: Dockerfile
container_name: janua-api
environment:
DATABASE_URL: "${DATABASE_URL:?set DATABASE_URL in an untracked local env file}"
REDIS_URL: "${REDIS_URL:?set REDIS_URL in an untracked local env file}"
SECRET_KEY: "${SECRET_KEY:?set SECRET_KEY in an untracked local env file}"
# Shared JWT secret for cross-service authentication (MADFAM ecosystem)
JWT_SECRET_KEY:"${JWT_SECRET_KEY:?set JWT_SECRET_KEY in an untracked local env file}"
DEBUG: "true"
ENVIRONMENT: development
BASE_URL: http://localhost:4100
CORS_ORIGINS: http://localhost:3000,http://localhost:3001,http://localhost:3004,http://localhost:3005
EMAIL_PROVIDER: smtp
SMTP_HOST: localhost
SMTP_PORT: "1025"
SMTP_FROM_EMAIL: noreply@janua.local
ports:
- "4100:4100"
volumes:
- ../apps/api:/app
command: uvicorn main:app --host 0.0.0.0 --port 4100 --reload
healthcheck:
test:
[
"CMD",
"python",
"-c",
"import urllib.request; urllib.request.urlopen('http://localhost:4100/health')",
]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
networks:
- madfam-shared-network
# Next.js Admin Dashboard
admin:
build:
context: ../apps/admin
dockerfile: Dockerfile
container_name: janua-admin
environment:
NEXT_PUBLIC_API_URL: http://localhost:8001
NEXT_PUBLIC_APP_URL: http://localhost:3004
ports:
- "3004:3000"
volumes:
- ../apps/admin:/app
- /app/node_modules
- /app/.next
depends_on:
- api
command: npm run dev
networks:
- madfam-shared-network
# Documentation Site
docs:
build:
context: ../apps/docs
dockerfile: Dockerfile
container_name: janua-docs
ports:
- "3005:3000"
volumes:
- ../apps/docs:/app
- /app/node_modules
- /app/.next
command: npm run dev
networks:
- madfam-shared-network
networks:
madfam-shared-network:
external: true