- Add phoenix-deploy-gov-portal-live-from-workspace.sh (DBIS/ICCC/OMNL/XOM); DBIS script delegates to it. - deploy-targets: Gov_Web_Portals ICCC/OMNL/XOM with xom-dev healthchecks. - server.js: optional PHOENIX_DEPLOY_VERIFY_SHA_ON_BRANCH via Gitea commit + compare. - Gitea workflow templates: dbis/iccc/omnl/xom portal-ci-and-live (monorepo overlay CI, deploy needs verify); concurrency groups; document deploy-only DBIS fallback. - Docs: GITEA_GOV_PORTALS_LIVE_SOURCE_OF_TRUTH.md; matrix/checklist/AGENTS/MASTER_INDEX/Gov portals deployment cross-links. - scripts: gitea-tag-repo-release.sh; report-gitea-cd-parity lists repos/*.yml templates. Co-authored-by: Cursor <cursoragent@cursor.com>
541 lines
16 KiB
JSON
541 lines
16 KiB
JSON
{
|
|
"defaults": {
|
|
"timeout_sec": 1800
|
|
},
|
|
"targets": [
|
|
{
|
|
"repo": "d-bis/proxmox",
|
|
"branch": "main",
|
|
"target": "default",
|
|
"description": "Install the Phoenix deploy API locally on the dev VM from the synced repo workspace.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"phoenix-deploy-api/scripts/install-systemd.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT"
|
|
],
|
|
"healthcheck": {
|
|
"url": "http://192.168.11.59:4001/health",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "phoenix-deploy-api",
|
|
"attempts": 8,
|
|
"delay_ms": 3000,
|
|
"timeout_ms": 10000
|
|
}
|
|
},
|
|
{
|
|
"repo": "d-bis/proxmox",
|
|
"branch": "main",
|
|
"target": "cloudflare-sync",
|
|
"description": "Optional: sync Cloudflare DNS from repo .env (path-gated; set PHOENIX_CLOUDFLARE_SYNC=1 on host).",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/gitea-cloudflare-sync.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT"
|
|
],
|
|
"timeout_sec": 600
|
|
},
|
|
{
|
|
"repo": "d-bis/proxmox",
|
|
"branch": "main",
|
|
"target": "cloudflare-sync-force",
|
|
"description": "Same as cloudflare-sync but skips path filter (operator / manual).",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/gitea-cloudflare-sync.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT"
|
|
],
|
|
"timeout_sec": 600
|
|
},
|
|
{
|
|
"repo": "d-bis/proxmox",
|
|
"branch": "main",
|
|
"target": "portal-live",
|
|
"description": "Deploy the Sankofa portal to CT 7801 on Proxmox.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/sync-sankofa-portal-7801.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"SANKOFA_PORTAL_SRC"
|
|
],
|
|
"healthcheck": {
|
|
"url": "http://192.168.11.51:3000/",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "<html",
|
|
"attempts": 10,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 10000
|
|
}
|
|
},
|
|
{
|
|
"repo": "d-bis/explorer-monorepo",
|
|
"branch": "main",
|
|
"target": "explorer-live",
|
|
"description": "Redeploy the live explorer stack on VMID 5000 from the staged explorer-monorepo checkout.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-explorer-live-from-workspace.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 2400,
|
|
"healthcheck": {
|
|
"url": "https://blockscout.defi-oracle.io/api/config/capabilities",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "\"chainId\"",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "Gov_Web_Portals/DBIS",
|
|
"branch": "main",
|
|
"target": "dbis-portal-live",
|
|
"description": "Redeploy the DBIS public portal on CT 7804 from the staged DBIS checkout overlaid into the Gov Portals workspace.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-dbis-portal-live-from-workspace.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 2400,
|
|
"healthcheck": {
|
|
"url": "https://d-bis.org/.well-known/trust.json",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "\"organization\"",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "Gov_Web_Portals/DBIS",
|
|
"branch": "main",
|
|
"target": "default",
|
|
"description": "Default push-webhook alias for DBIS public portal live deployment on CT 7804.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-dbis-portal-live-from-workspace.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 2400,
|
|
"healthcheck": {
|
|
"url": "https://d-bis.org/.well-known/trust.json",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "\"organization\"",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "Gov_Web_Portals/ICCC",
|
|
"branch": "main",
|
|
"target": "iccc-portal-live",
|
|
"description": "Redeploy the ICCC portal on CT 7804 from the staged ICCC checkout overlaid into the Gov Portals workspace.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-gov-portal-live-from-workspace.sh",
|
|
"ICCC"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 2400,
|
|
"healthcheck": {
|
|
"url": "https://iccc.xom-dev.phoenix.sankofa.nexus/",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "<html",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "Gov_Web_Portals/ICCC",
|
|
"branch": "main",
|
|
"target": "default",
|
|
"description": "Default push-webhook alias for ICCC portal live deployment on CT 7804.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-gov-portal-live-from-workspace.sh",
|
|
"ICCC"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 2400,
|
|
"healthcheck": {
|
|
"url": "https://iccc.xom-dev.phoenix.sankofa.nexus/",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "<html",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "Gov_Web_Portals/OMNL",
|
|
"branch": "main",
|
|
"target": "omnl-portal-live",
|
|
"description": "Redeploy the OMNL portal on CT 7804 from the staged OMNL checkout overlaid into the Gov Portals workspace.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-gov-portal-live-from-workspace.sh",
|
|
"OMNL"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 2400,
|
|
"healthcheck": {
|
|
"url": "https://omnl.xom-dev.phoenix.sankofa.nexus/",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "<html",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "Gov_Web_Portals/OMNL",
|
|
"branch": "main",
|
|
"target": "default",
|
|
"description": "Default push-webhook alias for OMNL portal live deployment on CT 7804.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-gov-portal-live-from-workspace.sh",
|
|
"OMNL"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 2400,
|
|
"healthcheck": {
|
|
"url": "https://omnl.xom-dev.phoenix.sankofa.nexus/",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "<html",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "Gov_Web_Portals/XOM",
|
|
"branch": "main",
|
|
"target": "xom-portal-live",
|
|
"description": "Redeploy the XOM portal on CT 7804 from the staged XOM checkout overlaid into the Gov Portals workspace.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-gov-portal-live-from-workspace.sh",
|
|
"XOM"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 2400,
|
|
"healthcheck": {
|
|
"url": "https://xom.xom-dev.phoenix.sankofa.nexus/",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "<html",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "Gov_Web_Portals/XOM",
|
|
"branch": "main",
|
|
"target": "default",
|
|
"description": "Default push-webhook alias for XOM portal live deployment on CT 7804.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-gov-portal-live-from-workspace.sh",
|
|
"XOM"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 2400,
|
|
"healthcheck": {
|
|
"url": "https://xom.xom-dev.phoenix.sankofa.nexus/",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "<html",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "Gov_Web_Portals/CyberSecur-Global",
|
|
"branch": "main",
|
|
"target": "default",
|
|
"description": "Deploy CyberSecur Global static site to CT 7810 docroot (NPM/Cloudflare upstream) from the staged repo workspace.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-cybersecur-from-workspace.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 900,
|
|
"healthcheck": {
|
|
"url": "https://cybersecur.d-bis.org/",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "CyberSecur",
|
|
"attempts": 10,
|
|
"delay_ms": 4000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "d-bis/CurrenciCombo",
|
|
"branch": "main",
|
|
"target": "default",
|
|
"description": "Deploy CurrenciCombo from the staged Gitea workspace into Phoenix CT 8604 and verify the public hostname end to end.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-currencicombo-from-workspace.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"healthcheck": {
|
|
"url": "https://curucombo.xn--vov0g.com/api/ready",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "\"ready\":true",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "d-bis/CROMERO",
|
|
"branch": "main",
|
|
"target": "default",
|
|
"description": "Deploy CROMERO dapp from the staged Gitea workspace: build dist/, rsync to NPMplus host /var/www/ecosystem/cromero/, served at https://d-bis.org/ecosystem/cromero/.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-cromero-from-workspace.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"healthcheck": {
|
|
"url": "https://d-bis.org/ecosystem/cromero/",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "<div id=\"root\">",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "d-bis/proxmox",
|
|
"branch": "main",
|
|
"target": "atomic-swap-dapp-live",
|
|
"description": "Deploy the Atomic Swap dApp to VMID 5801 on Proxmox.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/deploy-atomic-swap-dapp-5801.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT"
|
|
],
|
|
"healthcheck": {
|
|
"url": "https://atomic-swap.defi-oracle.io/data/live-route-registry.json",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "\"liveBridgeRoutes\"",
|
|
"attempts": 10,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "d-bis/proxmox",
|
|
"branch": "master",
|
|
"target": "default",
|
|
"description": "Install the Phoenix deploy API locally on the dev VM from the synced repo workspace.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"phoenix-deploy-api/scripts/install-systemd.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT"
|
|
],
|
|
"healthcheck": {
|
|
"url": "http://192.168.11.59:4001/health",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "phoenix-deploy-api",
|
|
"attempts": 8,
|
|
"delay_ms": 3000,
|
|
"timeout_ms": 10000
|
|
}
|
|
},
|
|
{
|
|
"repo": "d-bis/proxmox",
|
|
"branch": "master",
|
|
"target": "atomic-swap-dapp-live",
|
|
"description": "Deploy the Atomic Swap dApp to VMID 5801 on Proxmox.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/deploy-atomic-swap-dapp-5801.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT"
|
|
],
|
|
"healthcheck": {
|
|
"url": "https://atomic-swap.defi-oracle.io/data/live-route-registry.json",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "\"liveBridgeRoutes\"",
|
|
"attempts": 10,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "d-bis/proxmox",
|
|
"branch": "master",
|
|
"target": "cloudflare-sync",
|
|
"description": "Optional: sync Cloudflare DNS from repo .env (path-gated; set PHOENIX_CLOUDFLARE_SYNC=1 on host).",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/gitea-cloudflare-sync.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT"
|
|
],
|
|
"timeout_sec": 600
|
|
},
|
|
{
|
|
"repo": "d-bis/proxmox",
|
|
"branch": "master",
|
|
"target": "cloudflare-sync-force",
|
|
"description": "Same as cloudflare-sync but skips path filter (operator / manual).",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/gitea-cloudflare-sync.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT"
|
|
],
|
|
"timeout_sec": 600
|
|
},
|
|
{
|
|
"repo": "d-bis/proxmox",
|
|
"branch": "master",
|
|
"target": "portal-live",
|
|
"description": "Deploy the Sankofa portal to CT 7801 on Proxmox.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/sync-sankofa-portal-7801.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"SANKOFA_PORTAL_SRC"
|
|
],
|
|
"healthcheck": {
|
|
"url": "http://192.168.11.51:3000/",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "<html",
|
|
"attempts": 10,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 10000
|
|
}
|
|
},
|
|
{
|
|
"repo": "d-bis/CurrenciCombo",
|
|
"branch": "master",
|
|
"target": "default",
|
|
"description": "Deploy CurrenciCombo from the staged Gitea workspace into Phoenix CT 8604 and verify the public hostname end to end.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-currencicombo-from-workspace.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"healthcheck": {
|
|
"url": "https://curucombo.xn--vov0g.com/api/ready",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "\"ready\":true",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
},
|
|
{
|
|
"repo": "d-bis/explorer-monorepo",
|
|
"branch": "master",
|
|
"target": "explorer-live",
|
|
"description": "Redeploy the live explorer stack on VMID 5000 from the staged explorer-monorepo checkout.",
|
|
"cwd": "${PHOENIX_REPO_ROOT}",
|
|
"command": [
|
|
"bash",
|
|
"scripts/deployment/phoenix-deploy-explorer-live-from-workspace.sh"
|
|
],
|
|
"required_env": [
|
|
"PHOENIX_REPO_ROOT",
|
|
"PHOENIX_DEPLOY_WORKSPACE"
|
|
],
|
|
"timeout_sec": 2400,
|
|
"healthcheck": {
|
|
"url": "https://blockscout.defi-oracle.io/api/config/capabilities",
|
|
"expect_status": 200,
|
|
"expect_body_includes": "\"chainId\"",
|
|
"attempts": 12,
|
|
"delay_ms": 5000,
|
|
"timeout_ms": 15000
|
|
}
|
|
}
|
|
]
|
|
}
|