# HiveOps Project Memory ## Key Facts - CLAUDE.md created at `/source/hiveops-src/CLAUDE.md` — read this first on every session - Monorepo with 16 sub-projects, all in `/source/hiveops-src/` - Production server (services): `173.231.252.40` (SSH: `hiveops@173.231.252.40`) - Production DB server: `173.231.252.45` - Production CDN server: `173.231.252.43` (SSH: `hiveops@173.231.252.43`) — cdn.bcos.cloud + bcos.cloud (DNS confirmed) - Production registry: `registry.directlx.dev` - Local registry: `192.168.200.200:5000` - Production domain: `*.bcos.cloud` - Git user: `directlx ` ## Deployment Paths (Production) - Services: `~/hiveops/hiveops-openmetal/instances/services/` on 173.231.252.40 - Browser CDN: `~/hiveops/hiveops-openmetal/instances/browser/` on 173.231.252.43 - Database: `shared/database/` on 173.231.252.45 ## Browser CDN Release Use `./scripts/release-browser.sh [deb]` Files go in `downloads/`, script updates `downloads/browser/latest.json` **No git on production — scp files directly to 173.231.252.43:** - Downloads dir: `~/hiveops/hiveops-openmetal/instances/browser/downloads/` - latest.json: `~/hiveops/hiveops-openmetal/instances/browser/downloads/browser/` - HTML dir: `~/hiveops/hiveops-openmetal/instances/browser/html/` - Files are bind-mounted; nginx serves them immediately, no restart needed - After nginx config change: `docker exec hiveops-cdn-nginx nginx -s reload` ## CDN URL Behaviour (confirmed working) - `bcos.cloud` → serves `html/status.html` (HiveOps Production Status — API/incident health) - `cdn.bcos.cloud/` → 301 to `cdn.bcos.cloud/downloads/` - `cdn.bcos.cloud/downloads/` → browser installer download page (reads latest.json) - `cdn.bcos.cloud/downloads/browser/latest.json` → current browser version manifest ## Sub-project CLAUDE.md locations - hiveops-agent, hiveops-browser, hiveops-incident, hiveops-mgmt, hiveops-tools/hiveops-generator all have their own CLAUDE.md