78 lines
3.9 KiB
JSON
78 lines
3.9 KiB
JSON
{
|
|
"schema": "guanghu.enterprise-gitea-retirement-forgejo-decoupling-receipt/v1",
|
|
"outcome": "PASS_WITH_RECOVERY_DISCLOSURE",
|
|
"completed_at": "2026-09-13T18:32:38+08:00",
|
|
"node": "GH-CVM-MAIN-PROD-01",
|
|
"node_dmi_uuid": "10ace744-13e1-472e-8dba-6bb823a073bf",
|
|
"decision_source_sha256": "7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e",
|
|
"retired": {
|
|
"service": "Gitea 1.21.11",
|
|
"containers_removed": ["lighthouse-gitea", "lighthouse-gitea-db", "lighthouse-gitea-redis"],
|
|
"images_removed": ["gitea/gitea:1.21.11", "postgres:15-alpine", "redis:7-alpine"],
|
|
"data_path_removed": "/opt/guanghu/lighthouse-cn",
|
|
"public_ports_removed": [3000, 2222],
|
|
"active_nginx_references_remaining": 0
|
|
},
|
|
"migration_proof": {
|
|
"legacy_repositories": 2,
|
|
"legacy_collaboration_objects": {"issues":0,"pull_requests":0,"releases":0,"comments":0,"attachments":0},
|
|
"hololake_world_main": "d1823008e1401d1875d863109b69f8ed145d4532",
|
|
"lighthouse_main": "fec90a5bb6a5dc380232c2a207fd0a9b4d6f377f",
|
|
"both_legacy_commits_present_in_forgejo": true,
|
|
"legacy_and_current_git_fsck": "PASS"
|
|
},
|
|
"recovery_disclosure": {
|
|
"trigger": "retirement exposed that the current Forgejo application still depended on the retired container database service name",
|
|
"impact": "Forgejo health returned HTTP 424 during the maintenance window",
|
|
"action": "stopped Forgejo, restored the verified 2026-08-08 Forgejo database dump into a dedicated PostgreSQL cluster, separated the database role and route, then adopted every repository present on current storage",
|
|
"baseline_restored_users": 7,
|
|
"baseline_restored_repositories": 2,
|
|
"re_adopted_repositories": 12,
|
|
"recovered_owner_user": "huaer",
|
|
"recovered_owner_organization": "guanghu-team",
|
|
"post_recovery_users": 9,
|
|
"post_recovery_organizations": 1,
|
|
"post_recovery_repositories": 14,
|
|
"unadopted_repositories": 0,
|
|
"temporary_admin_token_removed": true,
|
|
"remaining_human_action": "huaer owner account uses a forced-change recovery password and needs an administrator reset before interactive login"
|
|
},
|
|
"current_forgejo": {
|
|
"container": "guanghu-forgejo-blue",
|
|
"image": "guanghu/forgejo:16.0.1-offline",
|
|
"restart_policy": "unless-stopped",
|
|
"database_service": "postgresql@14-forgejo.service",
|
|
"database_bind": "172.19.0.1:55432",
|
|
"database_role": "forgejo",
|
|
"database_data_bytes": 62003859,
|
|
"public_url": "https://guanghu.chat/code/",
|
|
"public_root_http": 200,
|
|
"public_health_http": 200,
|
|
"public_asset_http": 200,
|
|
"all_repository_fsck": "PASS",
|
|
"filesystem_database_repository_sets_equal": true,
|
|
"systemd_failed_units": 0
|
|
},
|
|
"rolling_backup": {
|
|
"primary_path": "/var/lib/guanghu-enterprise-code-channel/backups/CURRENT/forgejo-current.dump",
|
|
"backup_path": "/home/guanghu-ops/enterprise-archive/GH-CVM-MAIN-PROD-01/2026-09-13/gitea-retirement/forgejo-current.dump",
|
|
"backup_node": "QY-LH-MAIN-PROD-01",
|
|
"size_bytes": 481025,
|
|
"sha256": "4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c",
|
|
"timer": "guanghu-forgejo-backup.timer",
|
|
"retention": "single rolling current-state dump"
|
|
},
|
|
"minimum_evidence_retention": {
|
|
"full_historical_payloads_purged_bytes": 1236163123,
|
|
"backup_directory_after": "492K",
|
|
"summary": "/home/guanghu-ops/enterprise-archive/GH-CVM-MAIN-PROD-01/2026-09-13/RETENTION-SUMMARY-20260913.json",
|
|
"full_gitea_archive_created": false
|
|
},
|
|
"current_config_hashes": {
|
|
"forgejo_app_ini_sha256": "5f930ce11c827d06293d67692b088219ea0988e01cd8ed7e56d05e4021ddc9d2",
|
|
"nginx_guanghu_chat_sha256": "90d8b27d319a4ec6d5bb95f70a26f68b837413fcb2426a2b62caf6524c9eb1cd",
|
|
"nginx_default_forgejo_sha256": "b264f111b2a3c206ceb8702644f042f6d90d5c8d67076f6bd1aa0190ba0820e1",
|
|
"rolling_backup_script_sha256": "de687096b4c4361bfb5584b71090ee86b9672534f5c56a330011d8afaa4782d0"
|
|
},
|
|
"secrets_in_receipt": false
|
|
}
|