# DeepSeek Harness — one chat instance per family member. # Deploy on .13 at /home/sam/Docker/Containers/dsh/ (this compose + app live in # repo folder `dsh/`). Build once, run 4 replicas on host ports 3081-3084. # # docker compose build # builds image `dsh:latest` from dsh/ # docker compose up -d # # Kids instances (jo/harry/finn) run no shell/bash tooling by default (this # build ships none, so the restriction is inherent). name: dsh x-dsh-common: &common image: dsh:latest restart: unless-stopped security_opt: - no-new-privileges:true cap_drop: - ALL read_only: true tmpfs: - /tmp environment: &env-base DSH_LLM_BASE: http://192.168.20.13:20129/v1 DSH_LLM_MODEL: auto/best-chat DSH_HISTORY_DIR: /data DSH_VISION_KEY: ${DSH_VISION_KEY:-} DSH_VISION_MODEL: openai/gpt-5 volumes: &vol - /mnt/data/family-home-lab/dsh/__USER__/workspace:/workspace logging: driver: json-file options: { max-size: "10m", max-file: "3" } services: dsh-sam: build: . # build the shared image once (keeping dsh:latest) <<: *common container_name: dsh-sam environment: <<: *env-base DSH_USER: sam DSH_SLOT: Sam’s workspace ports: ["3081:8000"] volumes: - /mnt/data/family-home-lab/dsh/sam/workspace:/workspace - /mnt/data/family-home-lab/dsh/sam/history:/data dsh-jo: <<: *common container_name: dsh-jo environment: <<: *env-base DSH_USER: jo DSH_SLOT: Jo’s space ports: ["3082:8000"] volumes: - /mnt/data/family-home-lab/dsh/jo/workspace:/workspace - /mnt/data/family-home-lab/dsh/jo/history:/data dsh-harry: <<: *common container_name: dsh-harry environment: <<: *env-base DSH_USER: harry DSH_SLOT: Harry’s space ports: ["3083:8000"] volumes: - /mnt/data/family-home-lab/dsh/harry/workspace:/workspace - /mnt/data/family-home-lab/dsh/harry/history:/data dsh-finn: <<: *common container_name: dsh-finn environment: <<: *env-base DSH_USER: finn DSH_SLOT: Finn’s space ports: ["3084:8000"] volumes: - /mnt/data/family-home-lab/dsh/finn/workspace:/workspace - /mnt/data/family-home-lab/dsh/finn/history:/data