services: postgres: image: postgres:14-alpine restart: always # 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/skyvern/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 - ./log:/data/log - ./.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 # - 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 skyvern-ui: image: public.ecr.aws/skyvern/skyvern-ui:latest restart: on-failure ports: - 8080:8080 - 9090:9090 volumes: - ./artifacts:/data/artifacts - ./videos:/data/videos - ./har:/data/har - ./.streamlit:/app/.streamlit environment: # if you want to run skyvern on a remote server, # you need to change the host in VITE_WSS_BASE_URL and VITE_API_BASE_URL to match your server ip - VITE_WSS_BASE_URL=ws://localhost:8000/api/v1 # - VITE_API_BASE_URL=http://localhost:8000/api/v1 # - VITE_SKYVERN_API_KEY= depends_on: skyvern: condition: service_healthy