# Canonical compose project on the VPS is "periscope" (not the GitHub # clone folder name "pinscope"). Bind mounts stay relative to the checkout. # Host Caddy (railway-caddy) lives on Docker network pinscope_pinscope and # reverse_proxies periscope-frontend:3000 / periscope-backend:8080. The # update script connects these containers to that network after up. name: periscope services: backend: build: context: . dockerfile: backend/Dockerfile container_name: periscope-backend restart: unless-stopped env_file: - .env environment: DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY} ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} GEMINI_API_KEY: ${GEMINI_API_KEY:-} volumes: - ./data:/app/data - ./taxonomy:/app/taxonomy ports: - "8080:8080" networks: periscope: aliases: - periscope-backend - pinscope-backend frontend: build: context: ./frontend dockerfile: dockerfile args: NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8080} NEXT_PUBLIC_AUTH_MODE: ${NEXT_PUBLIC_AUTH_MODE:-} container_name: periscope-frontend restart: unless-stopped depends_on: - backend ports: - "3000:3000" networks: periscope: aliases: - periscope-frontend - pinscope - pinscope-frontend networks: periscope: driver: bridge