version: "3" services: backend: build: context: ./ dockerfile: base.Dockerfile depends_on: - queue - db environment: - LANGFLOW_CACHE_TYPE=redis - LANGFLOW_REDIS_HOST=queue - LANGFLOW_REDIS_PORT=6379 - LANGFLOW_REDIS_DB=0 - LANGFLOW_REDIS_EXPIRE=3600 - LANGFLOW_DATABASE_URL=postgresql://langflow:langflow@db:5432/langflow ports: - "7860:7860" volumes: - ./:/app command: bash -c "uvicorn --factory langflow.main:create_app --host 0.0.0.0 --port 7860 --reload --log-level debug" db: image: postgres:15.4 environment: - POSTGRES_USER=langflow - POSTGRES_PASSWORD=langflow - POSTGRES_DB=langflow ports: - "5432:5432" pgadmin: image: dpage/pgadmin4 environment: PGADMIN_DEFAULT_EMAIL: admin@admin.com PGADMIN_DEFAULT_PASSWORD: admin ports: - "5050:80" depends_on: - db volumes: - pgadmin:/var/lib/pgadmin queue: image: redis:latest ports: - "6379:6379" celeryworker: depends_on: - queue environment: - LANGFLOW_CACHE_TYPE=redis - LANGFLOW_REDIS_HOST=queue - LANGFLOW_REDIS_PORT=6379 - LANGFLOW_REDIS_DB=0 - LANGFLOW_REDIS_EXPIRE=3600 - BROKER_URL=redis://queue:6379/0 - RESULT_BACKEND=redis://queue:6379/0 - C_FORCE_ROOT=true # ! Only for development build: context: ./ dockerfile: base.Dockerfile command: celery -A langflow.worker.celery_app worker --loglevel=DEBUG flower: networks: - default depends_on: - queue build: context: ./ dockerfile: base.Dockerfile environment: - LANGFLOW_CACHE_TYPE=redis - LANGFLOW_REDIS_HOST=queue - LANGFLOW_REDIS_PORT=6379 - LANGFLOW_REDIS_DB=0 - LANGFLOW_REDIS_EXPIRE=3600 command: celery -A langflow.worker.celery_app --broker=redis://queue:6379/0 flower --port=5555 ports: - "5555:5555" frontend: build: context: ./src/frontend dockerfile: ./dev.Dockerfile args: - BACKEND_URL=http://backend:7860 depends_on: - backend environment: - VITE_PROXY_TARGET=http://backend:7860 ports: - "3000:3000" volumes: - ./src/frontend/public:/home/node/app/public - ./src/frontend/src:/home/node/app/src - ./src/frontend/package.json:/home/node/app/package.json restart: on-failure