services: senia: build: context: . dockerfile: Dockerfile args: USER_UID: 750 USER_GID: 750 image: senia/claude:latest container_name: senia stdin_open: true tty: true volumes: # workspace — read/write, this is where senia does its work - ../workspace:/workspace # claude config and auth: read/write so /login persists - ../claude:/home/senia/.claude - ../.claude.json:/home/senia/.claude.json # persona: real if submodule initialized, placeholder otherwise - ../private/CLAUDE.md:/home/senia/.claude/CLAUDE.md:ro # contexts: real if submodule initialized, empty dir otherwise # - ../private/contexts:/etc/senia/data/contexts:ro # dockerfile read-only — senia can read it, suggest edits in conversation, can't modify - ./Dockerfile:/etc/senia/Dockerfile:ro # mcp servers source, read-only - ../mcp:/etc/senia/mcp:ro - ../scripts:/etc/senia/scripts # data dir — read-write, where mcp servers store sqlite dbs and other state - ../data:/etc/senia/data working_dir: /workspace command: tail -f /dev/null