Docker Deployment
Run the SOFE Community Server as a Docker container. No Python required — just Docker.
Quick Start
# Clone the repo
git clone https://github.com/breakingthecloud/sofe.git
cd sofe
# Start with docker compose (mounts your AWS credentials)
docker compose up
# Test
curl http://localhost:8080/health
# → {"status":"ok","version":"0.2.0","edition":"community"}Docker Run (manual)
# Option A: Mount AWS credentials (recommended) docker run -p 8080:8080 \ -v ~/.aws:/root/.aws:ro \ ghcr.io/breakingthecloud/sofe-community # Option B: Pass credentials as env vars docker run -p 8080:8080 \ -e AWS_ACCESS_KEY_ID=AKIA... \ -e AWS_SECRET_ACCESS_KEY=xxx \ -e AWS_DEFAULT_REGION=us-east-1 \ ghcr.io/breakingthecloud/sofe-community # Option C: Use a specific AWS profile docker run -p 8080:8080 \ -v ~/.aws:/root/.aws:ro \ -e AWS_PROFILE=my-profile \ ghcr.io/breakingthecloud/sofe-community
Build From Source
git clone https://github.com/breakingthecloud/sofe.git cd sofe docker build -t sofe-community . docker run -p 8080:8080 -v ~/.aws:/root/.aws:ro sofe-community
Custom Policies
Mount your own policies directory:
docker run -p 8080:8080 \ -v ~/.aws:/root/.aws:ro \ -v ./my-policies:/app/policies:ro \ ghcr.io/breakingthecloud/sofe-community
API Endpoints
GET
/health— Status check (no AWS needed)POST
/evaluate— Run all policies against your AWS accountGET
/policies— List available policiesGET
/collectors— List registered collectors (18)POST
/validate— Validate policy YAML syntaxEvaluate Example
curl -X POST http://localhost:8080/evaluate \
-H "Content-Type: application/json" \
-d '{"profile": "default"}'
# Response:
# {
# "resources_scanned": 64,
# "policies_evaluated": 20,
# "findings_count": 48,
# "findings": [...]
# }Docker Compose (Production-like)
# docker-compose.yml
services:
sofe:
build: .
ports:
- "8080:8080"
volumes:
- ~/.aws:/root/.aws:ro
# - ./my-policies:/app/policies:ro
environment:
- AWS_DEFAULT_REGION=us-east-1
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8080/health')"]
interval: 30s
timeout: 3s
restart: unless-stoppedWhat's Included vs Pro
✅ Community (Docker)
- • All 18 collectors
- • All 20 policies
- • Unlimited evaluations
- • No auth required
- • Custom policies supported
Pro (platform.sofe.dev)
- • + Dashboard & history
- • + Scheduled evaluations
- • + Alerts (Slack/email)
- • + Multi-account
- • + Team collaboration