# pewpewstudio on nh3-docker: laser job studio (FastAPI + React SPA), composes Thunder Aurora marking jobs and exports # LightBurn .lbrn. Prime 2026-10-13 via pewpew-dev. NO user auth in v1, so LAN/mesh only: published on the host's LAN # address, never on a public ingress. Images are built on nh3-dev and loaded here (see README). # State: the SQLite DB + assets on the named volume `state` (local disk, never NFS). The shop's own config (machine # profiles, lenses, denylist, sizing) on the named volume `config`, because the app EDITS it from the browser (temp # file + os.replace in the directory); a volume, not /opt/docker/conf, so deploy-stack's --delete can never touch it. # Seeded once at first deploy (README). Both volumes ride nh3-docker's whole-VM backup. name: pewpewstudio services: api: image: pewpewstudio:${PEWPEW_REV:?set PEWPEW_REV} container_name: pewpewstudio-api restart: unless-stopped env_file: .env # WORLDTREE_API_KEY (secret get nh3-dev/.config/worldtree/pewpewstudio-demo-key) environment: PEWPEW_DB_PATH: /state/shop.db PEWPEW_ASSETS_ROOT: /state/assets PEWPEW_PROFILE_DIR: /config PEWPEW_DENYLIST: /config/materials.toml PEWPEW_SIZING: /config/sizing.toml PEWPEW_FONTS_DIR: /config/fonts PEWPEW_BASELINE: /config/settings_baseline.toml ARBO_BASE_URL: http://100.64.0.6:8201 WORLDTREE_BASE_URL: http://10.250.50.152:8080 volumes: - state:/state - config:/config healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/machines', timeout=5)"] interval: 30s timeout: 10s retries: 3 start_period: 30s web: image: pewpewstudio-web:${PEWPEW_REV:?set PEWPEW_REV} container_name: pewpewstudio restart: unless-stopped depends_on: [api] ports: - "10.100.50.40:${PORT:-8185}:80" volumes: - /opt/docker/conf/pewpewstudio:/etc/caddy:ro # the DIRECTORY: deploy-stack replaces the file, and a single-file bind would keep the old inode labels: - homepage.group=AI - Studios - homepage.name=pewpewstudio - homepage.icon=mdi-laser-pointer - "homepage.description=Laser job studio: composes Thunder Aurora marking jobs, exports LightBurn .lbrn" - homepage.href=http://10.100.50.40:${PORT:-8185}/ volumes: state: config: