pagepiper/compose.cloud.yml
pyr0ball c24bd33478 feat(deploy): add cloud deploy config for pagepiper.circuitforge.tech
- compose.cloud.yml: pagepiper-cloud project on port 8533 (avoids
  conflict with Linnet dev on 8521/Magpie on 8531)
- docker/web/nginx.cloud.conf: handles both /pagepiper/* path (primary
  domain, no Caddy strip) and / path (menagerie, Caddy strips prefix)
- docker/web/Dockerfile: NGINX_CONF build arg to select dev vs cloud conf
- .env.cloud.example: cloud env template with BYOK gate vars
- manage.sh: cloud:start|stop|restart|status|logs|build commands

Caddy config updated separately (not in this repo).
DNS record needed: pagepiper.circuitforge.tech → Heimdall edge IP.
2026-05-05 07:12:48 -07:00

44 lines
1.4 KiB
YAML

# 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
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