fieldwitness/deploy/docker/docker-compose.yml
Aaron D. Lee 490f9d4a1d Rebrand SooSeF to FieldWitness
Complete project rebrand for better positioning in the press freedom
and digital security space. FieldWitness communicates both field
deployment and evidence testimony — appropriate for the target audience
of journalists, NGOs, and human rights organizations.

Rename mapping:
- soosef → fieldwitness (package, CLI, all imports)
- soosef.stegasoo → fieldwitness.stego
- soosef.verisoo → fieldwitness.attest
- ~/.soosef/ → ~/.fwmetadata/ (innocuous data dir name)
- SOOSEF_DATA_DIR → FIELDWITNESS_DATA_DIR
- SoosefConfig → FieldWitnessConfig
- SoosefError → FieldWitnessError

Also includes:
- License switch from MIT to GPL-3.0
- C2PA bridge module (Phase 0-2 MVP): cert.py, export.py, vendor_assertions.py
- README repositioned to lead with provenance/federation, stego backgrounded
- Threat model skeleton at docs/security/threat-model.md
- Planning docs: docs/planning/c2pa-integration.md, docs/planning/gtm-feasibility.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 15:05:13 -04:00

52 lines
1.5 KiB
YAML

# FieldWitness Docker Compose — Three-Tier Deployment
#
# Tier 2 (Org Server): Full web UI + attestation + federation
# Tier 3 (Federation Relay): Lightweight attestation API only
#
# Usage:
# Full org server: docker compose up server
# Federation relay only: docker compose up relay
# Both (e.g., testing): docker compose up
services:
# === Tier 2: Organizational Server ===
# Full FieldWitness instance with web UI, stego, attestation, federation.
# Deploy on a mini PC in the newsroom or a trusted VPS.
server:
build:
context: ../..
dockerfile: deploy/docker/Dockerfile
target: server
ports:
- "5000:5000" # Web UI (Flask/Waitress)
- "8000:8000" # Federation API (FastAPI/uvicorn)
volumes:
- server-data:/data
environment:
- FIELDWITNESS_DATA_DIR=/data
- FIELDWITNESS_GOSSIP_INTERVAL=60
restart: unless-stopped
# === Tier 3: Federation Relay ===
# Lightweight relay for cross-organization attestation sync.
# Deploy on a VPS in a friendly jurisdiction (Iceland, Switzerland).
# Stores only attestation records — no key material, no stego, no web UI.
relay:
build:
context: ../..
dockerfile: deploy/docker/Dockerfile
target: relay
ports:
- "8001:8000" # Federation API
volumes:
- relay-data:/data
environment:
- FIELDWITNESS_DATA_DIR=/data
restart: unless-stopped
volumes:
server-data:
driver: local
relay-data:
driver: local