Architecture
Self-hosted Skyvern has four components running on your infrastructure:How a task executes
Skyvern runs a perception-action loop for each task step:- Screenshot: The browser captures the current page state
- Analyze: The screenshot is sent to your LLM, which identifies interactive elements and decides the next action
- Execute: Skyvern performs the action in the browser (click, type, scroll, extract data)
- Repeat: Steps 1-3 loop until the task goal is met or the step limit (
MAX_STEPS_PER_RUN) is reached
What changes from Cloud
The most significant operational difference is proxies. Skyvern Cloud routes browser traffic through managed residential proxies to avoid bot detection. Self-hosted deployments need you to configure your own proxy provider.
Prerequisites
Before deploying, ensure you have:1
Docker and Docker Compose
Required for containerized deployment. Install Docker
2
4GB+ RAM
Browser instances are memory-intensive. Production deployments benefit from 8GB+.
3
LLM API key
From OpenAI, Anthropic, Azure OpenAI, Google Gemini, or AWS Bedrock. Alternatively, run local models with Ollama.
4
Proxy provider (recommended)
For automating external websites at scale. Not required for internal tools or development.
DATABASE_STRING to point to your own instance.
For local server commands from PyPI, install the server extra: pip install "skyvern[server]". The lightweight pip install skyvern package is for Skyvern Cloud / remote API SDK usage and does not include the local server stack. Guided quickstart and migrations currently require Docker Compose or a source checkout.
For a full self-hosted deployment with the web UI, use Docker Compose. The Compose stack starts the API server, browser runtime, Postgres, and the Skyvern web UI together.
For the source-checkout pip install ".[server]" path (Option A in the README), the default is a SQLite database at ~/.skyvern/data.db — zero-config for local dev. To opt into Postgres for that path, run skyvern quickstart --database-string=postgresql+psycopg://user:pass@host:5432/dbname.
Choose your deployment method
Most teams start with Docker Compose. It’s the fastest path to a working deployment. Move to Kubernetes when you need horizontal scaling or want to integrate with existing orchestration infrastructure.
Next steps
Docker Setup
Get Skyvern running in 10 minutes with Docker Compose
Kubernetes Deployment
Deploy to production with Kubernetes manifests

