version: '3.8' services: postgres: image: postgres:14-alpine # comment out if you want to externally connect DB # ports: # - 5432:5432 volumes: - ./postgres-data:/var/lib/postgresql/data environment: - PGDATA=/var/lib/postgresql/data/pgdata - POSTGRES_USER=skyvern - POSTGRES_PASSWORD=skyvern - POSTGRES_POSTGRES_DB=skyvern healthcheck: test: ["CMD-SHELL", "pg_isready -U skyvern"] interval: 5s timeout: 5s retries: 5 skyvern: image: public.ecr.aws/t6d4b5t4/skyvern:latest restart: on-failure # comment out if you want to externally call skyvern API # ports: # - 8000:8000 volumes: - ./artifacts:/data/artifacts - ./videos:/data/videos - ./har:/data/har - ./.streamlit:/app/.streamlit environment: - DATABASE_STRING=postgresql+psycopg://skyvern:skyvern@postgres:5432/skyvern - BROWSER_TYPE=chromium-headful - ENABLE_OPENAI=true - OPENAI_API_KEY= # If you want to use other LLM provider, like azure and anthropic: # - ENABLE_ANTHROPIC=true # - LLM_KEY=ANTHROPIC_CLAUDE3_OPUS # - ANTHROPIC_API_KEY= # - ENABLE_AZURE=true # - LLM_KEY=AZURE_OPENAI_GPT4V # - AZURE_DEPLOYMENT= # - AZURE_API_KEY= # - AZURE_API_BASE= # - AZURE_API_VERSION= depends_on: postgres: condition: service_healthy healthcheck: test: ["CMD", "test", "-f", "/app/.streamlit/secrets.toml"] interval: 5s timeout: 5s retries: 5 streamlit: image: public.ecr.aws/t6d4b5t4/skyvern:latest restart: on-failure ports: - 8501:8501 volumes: - ./artifacts:/data/artifacts - ./videos:/data/videos - ./har:/data/har - ./.streamlit:/app/.streamlit command: ["/bin/bash", "entrypoint-streamlit.sh"] depends_on: skyvern: condition: service_healthy