{
  "schema_version": 1,
  "channel": "homelab-runtime",
  "command_id": "GITEA-READER-INGRESS-EXACT-273",
  "status": "OK",
  "rc": 0,
  "host": "pve01",
  "mode": "read-only",
  "component": "cluster-audit",
  "started_at_utc": "2026-07-22T20:56:23Z",
  "finished_at_utc": "2026-07-22T20:56:23Z",
  "reference_register_checked": true,
  "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
  "error_register_checked": true,
  "error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752",
  "command_sha256": "06f2c7b54af545f6ba485d06a2900b9f5571e9ccf92a02e6987f493a69f63fe4",
  "duplicate_failed_command_blocked": false,
  "block_reason": null,
  "execution_started": true,
  "changes_made": false,
  "sanitized": true,
  "secrets_included": false,
  "private_addresses_included": false,
  "raw_evidence_retained_locally": true,
  "raw_evidence_sha256": "76f713a69cd3dd4d8bcfb1ce089f6a5ca6c249b795c946bfc620f0ce5b753e6d",
  "sanitized_output_sha256": "c78c0efd1caa2deb4350997be3e0eca32b7ab000af0643cd5763d7a0ae0c84b6",
  "output_truncated_in_json": false,
  "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
  "output": "DETAIL=RAW_272_PRESENT=YES\nDETAIL=PREVIOUS_COMMAND_ID=GITEA-READER-NGINX-ROOTCAUSE-271\nDETAIL==== GITEA_DNS ===\nDETAIL=[PRIVATE_IP]   STREAM git.gram1.ru\nDETAIL=  homelab-gitea-secondary-backup.service                                                    loaded    inactive   dead          Create and copy a verified Gitea backup to pve03\nDETAIL==== GITEA_SERVICE ===\nDETAIL=No files found for gitea.service.\nDETAIL==== CLUSTER_CANDIDATES ===\nDETAIL=pve03\tqemu\t130\tedge-vm\trunning\nDETAIL=pve02\tqemu\t9130\tedge-cold-standby\tstopped\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:398:- pve01 timers cover VPN/NetBird health, health metrics, smartctl, disk space, MkDocs refresh, VPS identity audit, storage capacity, quality gate, evidence catalog, backup freshness, docker health, Filebrowser backup/offhost/restore, NPMplus/Kuma backup, NetBird VPS backup/offhost, Authentik/Gitea/Vaultwarden backup, SOPS secret coverage, mail cloud upload/restore, Immich/Memos/Paperless backup/offhost/restore, auto backup, edge-vm vzdump, secret sanity.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:614:- git.gram1.ru -> [PRIVATE_IP].\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:636:- Public listen ports on edge-vm: 0.0.0.0:80 and 0.0.0.0:443 by nginx/NPMplus.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:647:- git.gram1.ru -> http://127.0.0.1:3002, cert=29, ssl_forced=1, enabled=1.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:658:- gitea.vpn.gram1.ru -> http://127.0.0.1:3002, cert=32.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:696:- cert=29: git.gram1.ru, expires 2026-09-13 17:36:55.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:736:- gitea.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:771:- Data apps: immich, paperless, memos, gitea, netbox, actual-budget, homebox, mealie, n8n, node-red, vikunja, bookstack.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:778:- Gitea: 127.0.0.1:3002.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:889:- Gitea backup: STATUS=OK, archive under /mnt/staging/gitea-backups/snapshots.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:890:- Gitea offhost: STATUS=OK to pve02.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:891:- Gitea restore: STATUS=OK, DB integrity OK, tables counted.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:1000:  - https://git.gram1.ru\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:1056:- external canary checks include nc.gram1.ru, git.gram1.ru, auth.gram1.ru, backup.gram1.ru.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:1299:- Reverse proxy: NPMplus on edge-vm, container npmplus, host networking, admin bound to 127.0.0.1:81.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:1313:| git.gram1.ru | http://127.0.0.1:3002 | edge-vm / gitea | gitea backup/offhost/restore |\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:1326:| gitea.vpn.gram1.ru | http://127.0.0.1:3002 | gitea |\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:1968:- Explicit VPN duplicate cards were removed from Homepage with a short transparent perl edit: Homepage VPN, Authentik VPN, Gitea VPN and Uptime Kuma VPN.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:1984:- Removed targets: Homepage VPN, Authentik VPN, Gitea VPN and Uptime Kuma VPN, plus matching vpn.gram1.ru duplicate URLs.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2089:- SURY PHP repo added; PHP 8.5.7 available and installed with Nginx 1.22.1, MariaDB 10.11.14 and required XenForo modules.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2095:- Bulk import of five forums reached DB/files/nginx/php-fpm ready state, but frontend body stayed empty under PHP 8.5.7.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2102:- Runtime: Debian 12, Nginx, MariaDB 10.11, PHP 8.3-FPM.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2309:- Runtime services are configured: nginx, MariaDB, PHP 8.3 FPM, qemu-agent, cron, msmtp/sendmail transport.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2337:- Runtime: nginx, MariaDB 10.11, PHP 8.3 FPM, qemu-agent, cron, msmtp/sendmail transport.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2411:- NPMplus manual managed route files: /data/nginx/proxy_host/998.conf for newfi.ru, 997.conf for hapusya.ru and 996.conf for kingofwolk.ru.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2425:- NPMplus managed route file: /data/nginx/proxy_host/995.conf.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2439:- NPMplus managed route file: /data/nginx/proxy_host/994.conf.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2502:- NPMplus route: /opt/npmplus/nginx/proxy_host/993.conf.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2519:- Deploy hook copies renewed cert/key into NPMplus /data/tls/router-certs/taftauto.ru and reloads nginx after nginx -t.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2525:- NPMplus cert copy and nginx config validate OK.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2531:- Removed obsolete NPMplus route aliases without Homepage cards: auth.vpn.gram1.ru, gitea.vpn.gram1.ru, homepage.vpn.gram1.ru, kuma.vpn.gram1.ru.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2532:- NPMplus nginx config validates after removal.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2540:- NPMplus nginx config validates.\nDETAIL=/etc/pve/31_HOMELAB_REFERENCE.md:2804:Destination: immutable Gitea runtime history with CONTEXT-AUTO UTC command IDs.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md.bak.20260721T112115Z:334:- Rule: avoid nested SSH heredoc/Python for this task; use simpler commands, generated nginx configs, or uploaded/local script files.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md.bak.20260721T112115Z:352:- Rule: publish forum routes through backed-up manual nginx proxy_host configs, then issue proper certificates after DNS points to edge.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md.bak.20260721T112115Z:375:- Important corrections: initial NPMplus API route failed; manual Nginx routes were used. Initial Cloudflare token had no zone access; corrected token passed zone/DNS probe.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md.bak.20260721T112115Z:528:- Rule: validate `/.well-known/acme-challenge/<token>` for HTTP-01 readiness, not HTTP `/`; also scan all active NPMplus nginx config dirs for unmanaged domain conflicts before writing routes.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md.bak.20260721T112115Z:533:- Rule: do not run another apply stage until active NPMplus nginx route selection for newfi.ru is diagnosed with nginx -T and Host-header probes.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md.bak.20260721T112115Z:555:- Result: exact per-host route files 700-705 passed nginx -t but bare newfi.ru still hit HTTP->HTTPS redirect on ACME path.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md.bak.20260721T112115Z:563:- Stage12 cleanup confirmed temp files 980-985 absent and nginx reload OK.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md:334:- Rule: avoid nested SSH heredoc/Python for this task; use simpler commands, generated nginx configs, or uploaded/local script files.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md:352:- Rule: publish forum routes through backed-up manual nginx proxy_host configs, then issue proper certificates after DNS points to edge.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md:375:- Important corrections: initial NPMplus API route failed; manual Nginx routes were used. Initial Cloudflare token had no zone access; corrected token passed zone/DNS probe.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md:528:- Rule: validate `/.well-known/acme-challenge/<token>` for HTTP-01 readiness, not HTTP `/`; also scan all active NPMplus nginx config dirs for unmanaged domain conflicts before writing routes.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md:533:- Rule: do not run another apply stage until active NPMplus nginx route selection for newfi.ru is diagnosed with nginx -T and Host-header probes.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md:555:- Result: exact per-host route files 700-705 passed nginx -t but bare newfi.ru still hit HTTP->HTTPS redirect on ACME path.\nDETAIL=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md:563:- Stage12 cleanup confirmed temp files 980-985 absent and nginx reload OK.\nCHANGES_MADE=NO\n"
}
