yau-plant-assistant/compose/langfuse-compose.yml
Claude 34d2ccc576 Scaffold the WRPS plant operations assistant repository
Build spec and host brief carried in from C:\Claude and WRPS/02-env; the
plant model (equipment, tags, alarm bitmask, enums, unit conversions) is
derived from WRPS/04-plc/register-map.csv, WRPS/05-scada/modbus/scada-points.csv
and WRPS-CTL-003.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 13:56:32 +10:00

66 lines
2 KiB
YAML

# =============================================================================
# langfuse-compose.yml -> deployed to ~/langfuse-compose.yml on lin001
#
# Deployed early, deliberately (spec Phase 2): from here on, every experiment is
# traced. MIT licensed, self-hosted, no licence cost.
#
# ai-internal is created by ai-compose.yml - bring that up first.
#
# docker compose -f ~/langfuse-compose.yml up -d
# =============================================================================
services:
lf-db:
image: postgres:16-alpine
container_name: lf-db
restart: unless-stopped
networks: [ai-internal]
env_file:
- /home/azureuser/ai/langfuse.env # 0600, not in Git
environment:
POSTGRES_DB: langfuse
POSTGRES_USER: langfuse
PGDATA: /var/lib/postgresql/data/pgdata
# POSTGRES_PASSWORD comes from langfuse.env.
volumes:
- /datadisk/langfuse/db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U langfuse -d langfuse"]
interval: 10s
timeout: 5s
retries: 5
logging:
driver: json-file
options: { max-size: "10m", max-file: "3" }
langfuse:
image: langfuse/langfuse:2
container_name: langfuse
restart: unless-stopped
depends_on:
lf-db:
condition: service_healthy
networks: [ai-internal, proxy]
env_file:
- /home/azureuser/ai/langfuse.env # 0600, not in Git
environment:
NEXTAUTH_URL: https://lf.yokogawa.tech
TELEMETRY_ENABLED: "false"
# Authelia already gates this at the edge - no second sign-up flow wanted.
AUTH_DISABLE_SIGNUP: "true"
# DATABASE_URL, NEXTAUTH_SECRET and SALT come from langfuse.env.
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:3000/api/public/health || exit 1"]
interval: 30s
timeout: 5s
retries: 3
logging:
driver: json-file
options: { max-size: "10m", max-file: "3" }
networks:
ai-internal:
external: true
proxy:
external: true