# Pagepiper — cloud managed instance # Project: pagepiper-cloud (docker compose -f compose.cloud.yml -p pagepiper-cloud ...) # Web: http://127.0.0.1:8533 → pagepiper.circuitforge.tech (primary) # → menagerie.circuitforge.tech/pagepiper (secondary) # API: internal only on pagepiper-cloud-net (nginx proxies /api/ → api:8522) services: api: build: context: .. dockerfile: pagepiper/Dockerfile restart: unless-stopped env_file: .env environment: CLOUD_MODE: "true" PAGEPIPER_DATA_DIR: /devl/pagepiper-cloud-data PAGEPIPER_BOOKS_DIR: /devl/pagepiper-cloud-data/books # PAGEPIPER_OLLAMA_URL — set in .env (BYOK gate for hybrid search + RAG) # HEIMDALL_URL, HEIMDALL_ADMIN_TOKEN — set in .env for license validation # cf-orch: route LLM inference through coordinator for managed GPU access CF_ORCH_URL: http://host.docker.internal:7700 CF_APP_NAME: pagepiper COORDINATOR_URL: http://10.1.10.71:7700 COORDINATOR_PAGEPIPER_KEY: ${COORDINATOR_PAGEPIPER_KEY:-} extra_hosts: - "host.docker.internal:host-gateway" volumes: - /devl/pagepiper-cloud-data:/devl/pagepiper-cloud-data - ${HOME}/.config/circuitforge:/root/.config/circuitforge:ro networks: - pagepiper-cloud-net web: build: context: . dockerfile: docker/web/Dockerfile args: VITE_BASE_URL: /pagepiper VITE_API_BASE: /pagepiper NGINX_CONF: docker/web/nginx.cloud.conf restart: unless-stopped ports: - "8533:80" networks: - pagepiper-cloud-net depends_on: - api networks: pagepiper-cloud-net: driver: bridge