docker-compose.yml
Rama main · réplica de lectura del repositorio original.
# wshm — self-hosted GitHub agent
#
# Quick start:
# 1. cp .env.example .env and fill in your tokens
# 2. docker compose up -d
# 3. Open http://localhost:3000
#
# Defaults are deliberately safe:
# - polling mode (no public IP / webhook needed)
# - no --apply (dry-run; wshm observes but does not post comments,
# labels, or merges). Add --apply to the command list once you've
# reviewed the dashboard and trust the pipelines.
#
# Data lives in the wshm-data volume (SQLite DB, credentials, config).
# Snapshot it with `docker compose cp wshm:/home/wshm/.wshm ./backup`.
services:
wshm:
image: innovtech/wshm:latest
container_name: wshm
restart: unless-stopped
ports:
- "127.0.0.1:3000:3000"
volumes:
- wshm-data:/home/wshm/.wshm
environment:
# GitHub PAT with `repo` scope — required.
GITHUB_TOKEN: ${GITHUB_TOKEN:-}
# One of the two — needed for triage and PR analysis.
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
ANTHROPIC_OAUTH_TOKEN: ${ANTHROPIC_OAUTH_TOKEN:-}
# Optional: 32-byte hex key to enable the encrypted secret store
# (otherwise tokens stay in ~/.wshm/credentials in plaintext).
# Generate with: openssl rand -hex 32
WSHM_MASTER_KEY: ${WSHM_MASTER_KEY:-}
RUST_LOG: ${RUST_LOG:-info,wshm_core=info}
command:
- daemon
- --bind=0.0.0.0:3000
- --poll
- --poll-interval=60
# Uncomment to let wshm post comments, set labels, merge PRs, …
# - --apply
volumes:
wshm-data: