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