Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.6 KiB
HiveOps Deployment Environments
Two repos, one per environment — no duplication. Production config lives only in the prod repo; dev config lives only in the dev repo.
| Env | Repo (cloned as) | Config path | Live URL | VM |
|---|---|---|---|---|
| PRODUCTION | hiveiq-openmetal-prod (hiveiq-openmetal/) |
hiveops/instances/services/ |
bcos.cloud | 173.231.195.250 |
| DEV / staging | hiveiq-openmetal-dev/ |
hiveops/instances/dev/ |
bcos.dev | 173.231.195.251 |
Production also keeps its other instances in the prod repo: database, browser, ollama,
logging, and the bcos-* services (mail, office, share, proxy, gitea, odoo). Dev is all-in-one
— one VM bundles postgres/kafka/registry/etc that prod splits across VMs.
Compare dev vs prod
The two repos are structurally parallel (compose/<svc>.yml, nginx/conf.d/<svc>.conf):
./compare-prod-dev.sh # drift summary — which configs differ or are env-only
./compare-prod-dev.sh incident # full diff of a specific service
# or diff directly:
diff hiveiq-openmetal-dev/hiveops/instances/dev/nginx/conf.d/api.conf \
hiveiq-openmetal/hiveops/instances/services/nginx/conf.d/api.conf
(For this to work, clone both repos side by side under this directory.)
Source of truth
The live VMs are hand-managed (not git-fed). These repos are the reference/backup — keep
them in sync with the VMs whenever you change deployment config. .env secrets are gitignored:
they live only on the VMs and in Vaultwarden (pw.bcos.cloud).