feat(docker): add official Docker sandbox template for isolated GSD auto mode (#2360)
Ship a Dockerfile.sandbox, docker-compose.yml, .env.example, and docs so
users can run GSD auto mode inside an isolated Docker sandbox (MicroVM)
without risk to the host filesystem, SSH keys, or other projects.
- Dockerfile.sandbox: Node 22 base, gsd-pi pre-installed, non-root user, port 3000
- docker-compose.yml: workspace volume mount, persistent .gsd state, env_file support
- .env.example: template for LLM provider keys and optional tool credentials
- docker/README.md: setup guide covering sandbox CLI, Compose, two-terminal workflow,
credential injection, and network allowlisting
- .dockerignore: project-root ignore file for efficient Docker builds
- src/tests/docker-template.test.ts: 13 structural tests verifying all template files
Fixes #1544
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:57:59 -04:00
|
|
|
# ──────────────────────────────────────────────
|
2026-04-15 14:54:20 +02:00
|
|
|
# SF Docker Sandbox — Environment Variables
|
feat(docker): add official Docker sandbox template for isolated GSD auto mode (#2360)
Ship a Dockerfile.sandbox, docker-compose.yml, .env.example, and docs so
users can run GSD auto mode inside an isolated Docker sandbox (MicroVM)
without risk to the host filesystem, SSH keys, or other projects.
- Dockerfile.sandbox: Node 22 base, gsd-pi pre-installed, non-root user, port 3000
- docker-compose.yml: workspace volume mount, persistent .gsd state, env_file support
- .env.example: template for LLM provider keys and optional tool credentials
- docker/README.md: setup guide covering sandbox CLI, Compose, two-terminal workflow,
credential injection, and network allowlisting
- .dockerignore: project-root ignore file for efficient Docker builds
- src/tests/docker-template.test.ts: 13 structural tests verifying all template files
Fixes #1544
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:57:59 -04:00
|
|
|
# Copy this file to .env and fill in your keys.
|
|
|
|
|
# ──────────────────────────────────────────────
|
|
|
|
|
|
2026-03-26 18:10:49 -04:00
|
|
|
# ── Container User Identity ──
|
|
|
|
|
# Match your host UID/GID to avoid permission issues on bind mounts.
|
|
|
|
|
# Run `id -u` and `id -g` on your host to find the right values.
|
|
|
|
|
PUID=1000
|
|
|
|
|
PGID=1000
|
|
|
|
|
|
feat(docker): add official Docker sandbox template for isolated GSD auto mode (#2360)
Ship a Dockerfile.sandbox, docker-compose.yml, .env.example, and docs so
users can run GSD auto mode inside an isolated Docker sandbox (MicroVM)
without risk to the host filesystem, SSH keys, or other projects.
- Dockerfile.sandbox: Node 22 base, gsd-pi pre-installed, non-root user, port 3000
- docker-compose.yml: workspace volume mount, persistent .gsd state, env_file support
- .env.example: template for LLM provider keys and optional tool credentials
- docker/README.md: setup guide covering sandbox CLI, Compose, two-terminal workflow,
credential injection, and network allowlisting
- .dockerignore: project-root ignore file for efficient Docker builds
- src/tests/docker-template.test.ts: 13 structural tests verifying all template files
Fixes #1544
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:57:59 -04:00
|
|
|
# ── LLM Provider API Keys (at least one required) ──
|
|
|
|
|
|
|
|
|
|
# Anthropic (Claude)
|
|
|
|
|
# ANTHROPIC_API_KEY=sk-ant-...
|
|
|
|
|
|
|
|
|
|
# OpenAI
|
|
|
|
|
# OPENAI_API_KEY=sk-...
|
|
|
|
|
|
|
|
|
|
# Google (Gemini)
|
|
|
|
|
# GOOGLE_API_KEY=...
|
|
|
|
|
|
|
|
|
|
# OpenRouter (multi-provider gateway)
|
|
|
|
|
# OPENROUTER_API_KEY=sk-or-...
|
|
|
|
|
|
|
|
|
|
# ── Optional: Research & Search Tools ──
|
|
|
|
|
|
|
|
|
|
# Brave Search API
|
|
|
|
|
# BRAVE_API_KEY=...
|
|
|
|
|
|
|
|
|
|
# Tavily Search API
|
|
|
|
|
# TAVILY_API_KEY=tvly-...
|
|
|
|
|
|
|
|
|
|
# Jina AI (reader/search)
|
|
|
|
|
# JINA_API_KEY=...
|
|
|
|
|
|
|
|
|
|
# ── Optional: Git & GitHub ──
|
|
|
|
|
|
|
|
|
|
# GitHub personal access token (for PR operations)
|
|
|
|
|
# GITHUB_TOKEN=ghp_...
|
|
|
|
|
|
|
|
|
|
# Git author identity inside the sandbox
|
|
|
|
|
# GIT_AUTHOR_NAME=Your Name
|
|
|
|
|
# GIT_AUTHOR_EMAIL=you@example.com
|