Skip to main content

Overview

Skyvern can be self-hosted to give you complete control over your browser automation infrastructure. Self-hosting allows you to:
  • Run Skyvern behind your firewall for enhanced security
  • Customize infrastructure to meet your specific requirements
  • Integrate with existing authentication and storage systems
  • Scale horizontally based on your workload

Architecture Components

A self-hosted Skyvern deployment consists of three main components:

1. Skyvern Backend

The core automation engine that:
  • Executes browser automation tasks using Playwright
  • Manages LLM interactions for intelligent navigation
  • Handles workflow execution and task orchestration
  • Exposes REST API on port 8000
  • Provides Chrome DevTools Protocol (CDP) on port 9222
Docker Image: public.ecr.aws/skyvern/skyvern:latest

2. Skyvern UI

The web-based interface that:
  • Provides task and workflow management
  • Enables livestreaming of browser sessions
  • Displays execution history and artifacts
  • Runs on port 8080 (UI) and 9090 (artifact API)
Docker Image: public.ecr.aws/skyvern/skyvern-ui:latest

3. PostgreSQL Database

Stores:
  • Task and workflow definitions
  • Execution history and logs
  • User configurations and credentials
  • Extracted data and artifacts metadata
Recommended Version: PostgreSQL 14 or higher

Deployment Options

Skyvern supports multiple deployment methods:

Docker Compose

Quick setup for single-server deployments

Kubernetes

Production-grade orchestration for scalable deployments

System Requirements

Minimum Requirements

  • CPU: 4 cores
  • RAM: 8GB
  • Storage: 50GB (for artifacts, videos, logs)
  • OS: Linux (Ubuntu 20.04+), macOS, or Windows with WSL2
  • CPU: 8+ cores
  • RAM: 16GB+
  • Storage: 200GB+ SSD (with proper backup strategy)
  • Network: Stable internet connection for LLM API calls

Prerequisites

Before deploying Skyvern, ensure you have:
  1. LLM Provider Access: API keys for at least one supported provider (OpenAI, Anthropic, Azure, etc.)
  2. Database: PostgreSQL 14+ instance
  3. Storage (Optional): S3-compatible storage or Azure Blob Storage for artifacts
  4. Container Runtime: Docker or Kubernetes cluster

Data Storage Paths

Skyvern stores various types of data during execution:
TypeDefault PathDescription
Artifacts/data/artifactsScreenshots, downloaded files
Videos/data/videosBrowser session recordings
HAR Files/data/harNetwork traffic logs
Logs/data/logApplication logs
Streamlit Config/app/.streamlitUI configuration

Security Considerations

It is not recommended to expose Skyvern directly to the internet without authentication. Always use:
  • Network isolation (VPN, private networks)
  • Reverse proxy with authentication
  • TLS/SSL encryption for production deployments

Best Practices

  1. Secrets Management: Use environment variables or secret management tools (never commit secrets to version control)
  2. Network Security: Deploy behind a firewall or use network policies in Kubernetes
  3. API Authentication: Generate and rotate API keys regularly
  4. Database Security: Use strong passwords and restrict database access
  5. TLS Certificates: Enable HTTPS for production deployments

Next Steps

Docker Setup

Deploy with Docker Compose

LLM Configuration

Configure LLM providers

Environment Variables

Complete configuration reference

Build docs developers (and LLMs) love