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 # Uncomment if you want to connect to any local changes # - ./skyvern:/app/skyvern 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.5_SONNET # - ANTHROPIC_API_KEY= # - ENABLE_AZURE=true # - LLM_KEY=AZURE_OPENAI # - AZURE_DEPLOYMENT= # - AZURE_API_KEY= # - AZURE_API_BASE= # - AZURE_API_VERSION= # Amazon Bedrock Support: # Amazon Bedrock is a managed service that enables you to invoke LLMs and bill them through your AWS account. # To use Amazon Bedrock as the LLM provider for Skyvern, specify the following environment variables. # 1. In the AWS IAM console, create a new AWS IAM User (name it whatever you want) # 2. Assign the "AmazonBedrockFullAccess" policy to the user # 3. Generate an IAM Access Key under the IAM User's Security Credentials tab # 4. In the Amazon Bedrock console, go to "Model Access" # 5. Click Modify Model Access button # 6. Enable "Claude 3.5 Sonnet v2" and save changes # - ENABLE_BEDROCK=true # - LLM_KEY=BEDROCK_ANTHROPIC_CLAUDE3.5_SONNET # This is the Claude 3.5 Sonnet "V2" model. Change to BEDROCK_ANTHROPIC_CLAUDE3.5_SONNET_V1 for the non-v2 version. # - AWS_REGION=us-west-2 # Replace this with a different AWS region, if you desire # - AWS_ACCESS_KEY_ID=FILL_ME_IN_PLEASE # - AWS_SECRET_ACCESS_KEY=FILL_ME_IN_PLEASE 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