services: app: build: . container_name: tk-safety restart: unless-stopped ports: - "3100:3000" environment: - DATABASE_URL=postgres://tksafety:tksafety_password@db:5432/tksafety - ADMIN_PASSWORD=${ADMIN_PASSWORD:-changeme} - SESSION_SECRET=${SESSION_SECRET:-tk-safety-session-secret-change-me} - OLLAMA_BASE_URL=http://host.docker.internal:11434 - OLLAMA_MODEL=qwen3.5:35b-a3b - EMBEDDING_BASE_URL=http://100.111.160.84:11434 - EMBEDDING_MODEL=bge-m3 - QDRANT_URL=http://host.docker.internal:6333 - QDRANT_COLLECTION=safety-docs - TIKA_URL=http://host.docker.internal:9998 volumes: - ./uploads:/app/uploads depends_on: db: condition: service_healthy extra_hosts: - "host.docker.internal:host-gateway" db: image: postgres:16-alpine container_name: tk-safety-db restart: unless-stopped ports: - "127.0.0.1:5433:5432" environment: - POSTGRES_USER=tksafety - POSTGRES_PASSWORD=tksafety_password - POSTGRES_DB=tksafety volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U tksafety"] interval: 5s timeout: 5s retries: 5 volumes: pgdata: