51 lines
1.6 KiB
YAML
51 lines
1.6 KiB
YAML
services:
|
|
pentestgpt:
|
|
container_name: pentestgpt
|
|
image: pentestgpt:latest
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
volumes:
|
|
# Mount workspace for file operations
|
|
- ./workspace:/workspace
|
|
# Persist Claude Code configuration across container restarts
|
|
- claude-config:/home/pentester/.claude
|
|
# Persist CCR configuration
|
|
- ccr-config:/home/pentester/.claude-code-router
|
|
stdin_open: true
|
|
tty: true
|
|
# Required for OpenVPN (HackTheBox/TryHackMe connectivity)
|
|
cap_add:
|
|
- NET_ADMIN
|
|
devices:
|
|
- /dev/net/tun:/dev/net/tun
|
|
# Use host network for easy access to benchmark containers
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
# Resource allocation - adjust based on your system
|
|
# More CPUs and memory improve performance for complex tasks
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '4' # Max 4 CPU cores (adjust higher if available)
|
|
memory: 8G # Max 8GB RAM
|
|
reservations:
|
|
cpus: '2' # Guarantee 2 CPU cores
|
|
memory: 4G # Guarantee 4GB RAM
|
|
environment:
|
|
# Terminal settings
|
|
- TERM=xterm-256color
|
|
# Python settings
|
|
- PYTHONUNBUFFERED=1
|
|
# Auth mode: "openrouter", "anthropic", or "manual"
|
|
- PENTESTGPT_AUTH_MODE=${PENTESTGPT_AUTH_MODE:-manual}
|
|
# API keys (set based on auth mode via .env.auth)
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
|
|
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}
|
|
|
|
volumes:
|
|
# Named volume for Claude Code config persistence
|
|
claude-config:
|
|
# Named volume for CCR config persistence
|
|
ccr-config:
|