Files
fisher 952de1ea8e Fix health endpoint, align with the documented manual runbook
The health router is mounted at prefix="/api" in domaindingo's main.py, so
/health 404s. Checking it would have failed every deploy and rolled back a
perfectly good image.

Also adopts three conventions from the vault's DomainDingo Development note:
recreate a single named service (--no-deps --force-recreate), validate with
compose config --quiet before touching the running container, and write the
rollback record in the documented format and location.
2026-08-23 08:53:26 +00:00

79 lines
2.6 KiB
JSON

{
"version": 1,
"_comment": [
"Single source of truth for the fleet's continuous-deployment targets.",
"A target is uniquely identified by (repo, branch). The 'host' field decides",
"which machine acts on it -- every host runs the same daemon from the same",
"checkout of this repo and simply ignores targets that are not its own.",
"",
"Adding an environment is an edit here plus a re-run of install/install.sh on",
"the owning host. It is never a change to the project repository."
],
"defaults": {
"ntfy_base_url": "https://ntfy.fisher.hu",
"image_wait_seconds": 900,
"image_poll_interval": 15,
"health_retries": 30,
"health_interval": 5,
"lock_wait_seconds": 600,
"compose_timeout_seconds": 300,
"rollback_record_dir": "."
},
"hosts": {
"s5.fisher.hu": {
"bind": "10.255.255.1",
"port": 21600
},
"s4.fisher.hu": {
"bind": "10.255.255.12",
"port": 21600
}
},
"targets": [
{
"name": "domaindingo-test",
"enabled": true,
"repo": "webdev/domaindingo",
"branch": "test",
"env": "test",
"host": "s5.fisher.hu",
"stack_dir": "/home/fisher/S/uas-ng/docker/domaindingo/s5.fisher.hu",
"compose_file": "docker-compose.yml",
"compose_project": "domaindingo-test",
"container": "domaindingo-test",
"compose_service": "domaindingo-test",
"image_repo": "gitea.fisher.hu/webdev/domaindingo",
"image_tag_template": "{branch}-sha-{short7}",
"image_env_var": "DOMAINDINGO_TEST_IMAGE",
"pull_policy_env_var": "DOMAINDINGO_TEST_PULL_POLICY",
"health_url": "http://127.0.0.1:9101/api/health",
"health_expect_key": "db",
"health_expect_value": "ok",
"rollback_on_failure": true,
"rollback_record_dir": "backup-test"
},
{
"name": "domaindingo-prod",
"enabled": true,
"repo": "webdev/domaindingo",
"branch": "prod",
"env": "prod",
"host": "s5.fisher.hu",
"stack_dir": "/home/fisher/S/uas-ng/docker/domaindingo/s5.fisher.hu",
"compose_file": "docker-compose-prod.yml",
"compose_project": "domaindingo-prod",
"container": "domaindingo-prod",
"compose_service": "domaindingo-prod",
"image_repo": "gitea.fisher.hu/webdev/domaindingo",
"image_tag_template": "{branch}-sha-{short7}",
"image_env_var": "DOMAINDINGO_PROD_IMAGE",
"pull_policy_env_var": "DOMAINDINGO_PROD_PULL_POLICY",
"health_url": "http://127.0.0.1:9103/api/health",
"health_expect_key": "db",
"health_expect_value": "ok",
"rollback_on_failure": true,
"rollback_record_dir": "backup-prod"
}
]
}