services: boocode: build: . container_name: boocode restart: unless-stopped ports: - "100.114.205.53:9500:3000" env_file: .env environment: CONTAINER_GUIDANCE_FILE: /app/BOOCHAT.md DATABASE_URL: postgres://boocode:${POSTGRES_PASSWORD}@boocode_db:5432/boochat BOOCODER_URL: http://100.114.205.53:9502 LLAMA_SIDECAR_URL: http://100.101.41.16:8402 volumes: - /opt:/opt - /opt/projects:/opt/projects:rw - ./secrets/boocode_gitea:/root/.ssh/id_ed25519:ro - ./data:/data # v1.13.12: override-mount /opt/skills:/data/skills removed. Skill # library now lives in the boocode repo at data/skills/, audited # per-batch. The host-level /opt/skills is preserved for other tools # (Claude Code, etc.) but boocode reads only from its repo-local # data/skills/ tree. # v1.12: bind-mount BOOCHAT.md so host-side edits land in the container # without a rebuild. system-prompt.ts mtime-watch picks up changes on the # next chat turn. Read-only — the chat surface must never write here. - /opt/boocode/BOOCHAT.md:/app/BOOCHAT.md:ro depends_on: - boocode_db networks: - boocode_net booterm: build: context: . dockerfile: apps/booterm/Dockerfile container_name: booterm restart: unless-stopped ports: - "100.114.205.53:9501:3000" env_file: .env environment: NODE_ENV: production PORT: 3000 DATABASE_URL: postgres://boocode:${POSTGRES_PASSWORD}@boocode_db:5432/boochat volumes: - /opt:/opt:rw - /home/samkintop:/home/samkintop:rw depends_on: - boocode_db networks: - boocode_net # v2.1.1: boocoder moved to systemd service on host (boocoder.service). # Kept commented for rollback reference. # boocoder: # build: # context: . # dockerfile: apps/coder/Dockerfile # container_name: boocoder # restart: unless-stopped # ports: # - "100.114.205.53:9502:3000" # env_file: .env # environment: # CONTAINER_GUIDANCE_FILE: /app/BOOCODER.md # DATABASE_URL: postgres://boocode:${POSTGRES_PASSWORD}@boocode_db:5432/boochat # volumes: # - /opt:/opt:rw # - /opt/projects:/opt/projects:rw # - ./data:/data # - /opt/boocode/BOOCODER.md:/app/BOOCODER.md:ro # depends_on: # - boocode_db # networks: # - boocode_net boocode_db: image: postgres:16-alpine container_name: boocode_db restart: unless-stopped environment: POSTGRES_USER: boocode POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: boochat ports: - "127.0.0.1:5500:5432" volumes: - boocode_pgdata:/var/lib/postgresql/data networks: - boocode_net volumes: boocode_pgdata: networks: boocode_net: driver: bridge