version: "3.8" services: spiffworkflow-frontend: container_name: spiffworkflow-frontend image: ghcr.io/sartography/spiffworkflow-frontend:${SPIFFWORKFLOW_FRONTEND_TAG:-latest} depends_on: spiffworkflow-backend: condition: service_healthy environment: APPLICATION_ROOT: "/" PORT0: "${SPIFFWORKFLOW_FRONTEND_PORT:-8001}" ports: - "${SPIFFWORKFLOW_FRONTEND_PORT:-8001}:${SPIFFWORKFLOW_FRONTEND_PORT:-8001}/tcp" spiffworkflow-backend: depends_on: spiffdb: condition: service_healthy container_name: spiffworkflow-backend # image: ghcr.io/sartography/spiffworkflow-backend:${SPIFFWORKFLOW_BACKEND_TAG:-latest} build: context: backend args: SPIFFWORKFLOW_BACKEND_TAG: "${SPIFFWORKFLOW_BACKEND_TAG}" # Replace "value" with the value you want to pass environment: SPIFFWORKFLOW_BACKEND_APPLICATION_ROOT: "/" SPIFFWORKFLOW_BACKEND_ENV: "local_docker" FLASK_DEBUG: "0" FLASK_SESSION_SECRET_KEY: "${FLASK_SESSION_SECRET_KEY:-super_secret_key}" # WARNING: Frontend is a static site which assumes backend is frontend port - 1 on localhost. SPIFFWORKFLOW_BACKEND_URL: "http://localhost:${SPIFF_BACKEND_PORT:-8000}" SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR: "/app/process_models" SPIFFWORKFLOW_BACKEND_CONNECTOR_PROXY_URL: "http://spiffworkflow-connector:${SPIFF_CONNECTOR_PORT:-8004}" SPIFFWORKFLOW_BACKEND_DATABASE_TYPE: "postgres" SPIFFWORKFLOW_BACKEND_DATABASE_URI: "postgresql://spiffuser:spiffpass@spiffdb:5432/spiffworkflow" SPIFFWORKFLOW_BACKEND_EXTENSIONS_API_ENABLED: "true" SPIFFWORKFLOW_BACKEND_LOAD_FIXTURE_DATA: "false" SPIFFWORKFLOW_BACKEND_LOG_LEVEL: "DEBUG" SPIFFWORKFLOW_BACKEND_OPEN_ID_CLIENT_ID: "spiffworkflow-backend" SPIFFWORKFLOW_BACKEND_OPEN_ID_CLIENT_SECRET_KEY: "my_open_id_secret_key" SPIFFWORKFLOW_BACKEND_OPEN_ID_SERVER_URL: "http://localhost:${SPIFF_BACKEND_PORT:-8000}/openid" SPIFFWORKFLOW_BACKEND_PERMISSIONS_FILE_ABSOLUTE_PATH: "${SPIFFWORKFLOW_BACKEND_PERMISSIONS_FILE_ABSOLUTE_PATH}" SPIFFWORKFLOW_BACKEND_PORT: "${SPIFF_BACKEND_PORT:-8000}" SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER_IN_CREATE_APP: "false" SPIFFWORKFLOW_BACKEND_UPGRADE_DB: "true" SPIFFWORKFLOW_BACKEND_URL_FOR_FRONTEND: "http://localhost:${SPIFFWORKFLOW_FRONTEND_PORT:-8001}" ports: - "${SPIFF_BACKEND_PORT:-8000}:${SPIFF_BACKEND_PORT:-8000}/tcp" volumes: - ./process_models:/app/process_models - ./configs/permissions:/app/permissions healthcheck: test: "curl localhost:${SPIFF_BACKEND_PORT:-8000}/v1.0/status --fail" interval: 10s timeout: 5s retries: 20 spiffdb: image: postgres:latest environment: POSTGRES_USER: spiffuser POSTGRES_PASSWORD: spiffpass POSTGRES_DB: spiffworkflow ports: - "8005:5432" volumes: - spiffworkflow_backend_db:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U spiffuser -d spiffworkflow"] interval: 10s timeout: 5s retries: 5 spiffworkflow-connector: container_name: spiffworkflow-connector image: ghcr.io/sartography/connector-proxy-demo:latest environment: FLASK_ENV: "${FLASK_ENV:-development}" FLASK_DEBUG: "0" FLASK_SESSION_SECRET_KEY: "${FLASK_SESSION_SECRET_KEY:-super_secret_key}" CONNECTOR_PROXY_PORT: "${SPIFF_CONNECTOR_PORT:-8004}" ports: - "${SPIFF_CONNECTOR_PORT:-8004}:${SPIFF_CONNECTOR_PORT:-8004}/tcp" healthcheck: test: "curl localhost:${SPIFF_CONNECTOR_PORT:-8004}/liveness --fail" interval: 10s timeout: 5s retries: 20 volumes: spiffworkflow_backend_db: driver: local