Files
boocode/docker-compose.yml

69 lines
1.7 KiB
YAML

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/boocode
volumes:
- /opt:/opt
- /opt/projects:/opt/projects:rw
- ./secrets/boocode_gitea:/root/.ssh/id_ed25519:ro
- ./data:/data
- /opt/skills:/data/skills
# 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/boocode
volumes:
- /opt:/opt:rw
- /home/samkintop:/home/samkintop:rw
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: boocode
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