OpenSandbox
★ 17.3kAbout
Community Ratings
No ratings yetNew this week
Read recap →Features
- Fast sandbox runtime
- Pause/resume with preserved state
- Command execution
- File management
- Browser and desktop automation
- Network access control
- Credential vault
- SDKs and CLI
- MCP server
- Sandbox lifecycle API
Details
- Last Updated
- Nov 14, 2026
- Created
- Dec 17, 2025
- Install Methods
- dockerkubernetespackage-manager
- Requirements
- DockerPython 3.10+
- Default Port
- 8090From the project's Compose file
- API
- REST
- Privacy & Independence
- Cloud: Optional
- Deployment
Deployment: Docker Compose ✓2 Containers — light hosting footprintRuns as 2 containers
Run OpenSandbox yourself
Pick how much you want to manage.
netcupBest match
Full control
A small server, then Docker Compose.
About 20 minutes with Docker
Hetzner
Full control
A small server, then Docker Compose.
About 20 minutes with Docker
DigitalOcean
Full control
A small server, then Docker Compose.
About 20 minutes with Docker
1 more way to host
Some links earn us a commission. netcup pays us one and is our preferred VPS host.
Is this your project? Sponsor a listing
Run OpenSandbox with Docker Compose
Compose file from the OpenSandbox project repository.
2 services · 1 unclassified (python)
no resource limits declared
needs persistent storage (1 volume)
server/docker-compose.example.yaml · @ f5fe25a · scanned Nov 3, 2026
configs:
opensandbox-config:
content: |
[server]
host = "0.0.0.0"
port = 8090
[proxy]
# The lifecycle server is attached to opensandbox-net, while sandboxes
# created through the mounted Docker socket use Docker's bridge network.
# Route through host-published ports instead of unreachable sandbox IPs.
resolve_internal = false
[log]
level = "INFO"
[runtime]
type = "docker"
# execd_image = "opensandbox/execd:v1.1.0"
execd_image = "sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/execd:v1.1.0"
[egress]
image = "opensandbox/egress:v1.1.7"
# image = "sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/egress:v1.1.7"
readiness_timeout_seconds = 30.0
[docker]
network_mode = "bridge"
# Required when the server runs in a container: host-mapped endpoints and
# proxy targets must resolve back to the Docker host.
host_ip = "host.docker.internal"
port_range_min = 40000
port_range_max = 60000
# Optional: publish sandbox ports on ONE host address instead of every interface, e.g. the
# Docker bridge gateway (an IP, not a name) — then only containers on the host reach execd.
# publish_host = "172.17.0.1"
drop_capabilities = ["AUDIT_WRITE", "MKNOD", "NET_ADMIN", "NET_RAW", "SYS_ADMIN", "SYS_MODULE", "SYS_PTRACE", "SYS_TIME", "SYS_TTY_CONFIG"]
no_new_privileges = true
# TODO: For production environments, it is recommended to set this to '4096' or higher to avoid
# "can't start new thread" errors when multiple sandboxes are running concurrently.
# See: https://github.com/opensandbox-group/OpenSandbox/issues/447
pids_limit = 4096
[ingress]
mode = "direct"
version: '3.8'
services:
opensandbox-server:
# Includes configurable proxy resolution for this Compose/bridge topology.
image: opensandbox/server:release-1.1.0
container_name: opensandbox-server
networks:
- opensandbox-net
extra_hosts:
- "host.docker.internal:host-gateway"
ports:
- "8090:8090"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
configs:
- source: opensandbox-config
target: /etc/opensandbox/config.toml
environment:
- SANDBOX_CONFIG_PATH=/etc/opensandbox/config.toml
sdk-client:
image: python:3.11-slim
container_name: sdk-client
networks:
- opensandbox-net
extra_hosts:
- "host.docker.internal:host-gateway"
command: >
sh -c "pip install opensandbox && tail -f /dev/null"
environment:
- OPENSANDBOX_SERVER_URL=http://opensandbox-server:8090
networks:
opensandbox-net:
driver: bridge
This file may be out of date. Check the OpenSandbox documentation for current setup steps.
Tags
Track your self-hosted stack
Bookmark software to try, rate tools you've used, and keep your collection in one place.