# Development Docker Compose Configuration # Based on official Atlas CMMS with custom frontend # Use: docker-compose -f docker-compose.yml -f docker-compose.dev.yml up name: atlas-cmms services: postgres: image: postgres:16-alpine container_name: atlas_db environment: POSTGRES_DB: atlas POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PWD} ports: - '5432:5432' volumes: - postgres_data:/var/lib/postgresql/data api: image: intelloop/atlas-cmms-backend container_name: atlas-cmms-backend depends_on: - postgres - minio volumes: - ./backend/logos:/app/static/images environment: DB_URL: postgres/atlas DB_USER: ${POSTGRES_USER} DB_PWD: ${POSTGRES_PWD} PUBLIC_API_URL: ${PUBLIC_API_URL} FASTSPRING_PWD: ${FASTSPRING_PWD} FASTSPRING_USER: ${FASTSPRING_USER} PUBLIC_FRONT_URL: ${PUBLIC_FRONT_URL} GCP_BUCKET_NAME: ${GCP_BUCKET_NAME} GCP_JSON: ${GCP_JSON} GCP_PROJECT_ID: ${GCP_PROJECT_ID} MAIL_RECIPIENTS: ${MAIL_RECIPIENTS} SMTP_PWD: ${SMTP_PWD} SMTP_USER: ${SMTP_USER} SMTP_HOST: ${SMTP_HOST} SMTP_PORT: ${SMTP_PORT} SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE} JWT_SECRET_KEY: ${JWT_SECRET_KEY} MINIO_ENDPOINT: http://minio:9000 MINIO_BUCKET: atlas-bucket MINIO_ACCESS_KEY: ${MINIO_USER} MINIO_SECRET_KEY: ${MINIO_PASSWORD} STORAGE_TYPE: ${STORAGE_TYPE:-minio} PUBLIC_MINIO_ENDPOINT: ${PUBLIC_MINIO_ENDPOINT} INVITATION_VIA_EMAIL: ${INVITATION_VIA_EMAIL} ENABLE_EMAIL_NOTIFICATIONS: ${ENABLE_EMAIL_NOTIFICATIONS} ENABLE_SSO: ${ENABLE_SSO} OAUTH2_PROVIDER: ${OAUTH2_PROVIDER} OAUTH2_CLIENT_ID: ${OAUTH2_CLIENT_ID} OAUTH2_CLIENT_SECRET: ${OAUTH2_CLIENT_SECRET} LICENSE_KEY: ${LICENSE_KEY} LICENSE_FINGERPRINT_REQUIRED: ${LICENSE_FINGERPRINT_REQUIRED} ALLOWED_ORGANIZATION_ADMINS: ${ALLOWED_ORGANIZATION_ADMINS:-} LOGO_PATHS: ${LOGO_PATHS} CUSTOM_COLORS: ${CUSTOM_COLORS} BRAND_CONFIG: ${BRAND_CONFIG} ports: - '8080:8080' # Custom frontend (commented out) # frontend: # build: # context: ./frontend # dockerfile: Dockerfile.dev # container_name: atlas-cmms-frontend # environment: # VITE_API_BASE_URL: ${PUBLIC_API_URL} # VITE_APP_NAME: ${VITE_APP_NAME} # VITE_APP_VERSION: ${VITE_APP_VERSION} # ports: # - '5137:5137' # depends_on: # - api # volumes: # # Mount source code for hot reload # - ./frontend/src:/app/src # - ./frontend/public:/app/public # - /app/node_modules # command: npm run dev -- --host 0.0.0.0 # Official Atlas CMMS frontend frontend: image: intelloop/atlas-cmms-frontend container_name: atlas-cmms-frontend environment: API_URL: ${PUBLIC_API_URL} GOOGLE_KEY: ${GOOGLE_KEY:- } GOOGLE_TRACKING_ID: ${GOOGLE_TRACKING_ID:- } MUI_X_LICENSE: ${MUI_X_LICENSE:- } INVITATION_VIA_EMAIL: ${INVITATION_VIA_EMAIL:-false} CLOUD_VERSION: ${CLOUD_VERSION:-false} NODE_ENV: production ENABLE_SSO: ${ENABLE_SSO:-false} OAUTH2_PROVIDER: ${OAUTH2_PROVIDER:- } LOGO_PATHS: ${LOGO_PATHS:- } CUSTOM_COLORS: ${CUSTOM_COLORS:- } BRAND_CONFIG: ${BRAND_CONFIG:- } ports: - '3000:3000' depends_on: - api minio: image: minio/minio:latest container_name: atlas_minio environment: MINIO_ROOT_USER: ${MINIO_USER} MINIO_ROOT_PASSWORD: ${MINIO_PASSWORD} volumes: - minio_data:/data ports: - '9000:9000' - '9001:9001' command: server --address ":9000" --console-address ":9001" /data volumes: postgres_data: minio_data: