ops: retire Gitea and decouple Forgejo database
This commit is contained in:
parent
c392ef1c68
commit
f6591c6544
6 changed files with 435 additions and 8 deletions
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"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
|
||||
}
|
||||
|
|
@ -1,16 +1,18 @@
|
|||
{
|
||||
"schema": "guanghu.enterprise-server-archive-cleanup-map/v1",
|
||||
"map_id": "GH-ENTERPRISE-SERVER-ARCHIVE-CLEANUP-001",
|
||||
"version": "2026-09-13.1",
|
||||
"state": "PRIMARY_CLEANED_BACKUP_ARCHIVE_RESTORE_VERIFIED",
|
||||
"primary": {"node_id":"GH-CVM-MAIN-PROD-01","boot_id":"dd900230-92e7-4cfa-8b99-3eec3c78be89","before_used_bytes":22305280000,"after_used_bytes":17148575744,"freed_bytes":5156704256,"source_receipt":"/var/lib/guanghu/receipts/GH-CVM-MAIN-PROD-01/enterprise-audit-cleanup-20260913/FINAL-RECEIPT.json","source_receipt_sha256":"bb311523d9ba6b0ae8b382f9bb54db2de8158cbe053e9b8cb2048b328c090f09"},
|
||||
"backup": {"node_id":"QY-LH-MAIN-PROD-01","region":"CN-SHANGHAI","host_identity":"QY-LH-MAIN-PROD-01","boot_id":"83d87912-6afb-420f-86c5-58bd1dbde14d","archive_root":"/home/guanghu-ops/enterprise-archive/GH-CVM-MAIN-PROD-01/2026-09-13","archive_bytes":1236163123,"receipt_sha256":"2f825548e7c46ec27d0fbfd8340f026cbcc9448daf447f3c7045012f5b3d6604","restore_verified":{"artifact_files":20944,"journal_files":39}},
|
||||
"version": "2026-09-13.2",
|
||||
"state": "PRIMARY_CLEANED_GITEA_RETIRED_FORGEJO_DECOUPLED_MINIMUM_EVIDENCE_RETAINED",
|
||||
"primary": {"node_id":"GH-CVM-MAIN-PROD-01","boot_id":"dd900230-92e7-4cfa-8b99-3eec3c78be89","before_used_bytes":22305280000,"after_used_bytes":16801497088,"freed_bytes":5503782912,"source_receipt":"/var/lib/guanghu/receipts/GH-CVM-MAIN-PROD-01/enterprise-audit-cleanup-20260913/FINAL-RECEIPT.json","source_receipt_sha256":"bb311523d9ba6b0ae8b382f9bb54db2de8158cbe053e9b8cb2048b328c090f09"},
|
||||
"backup": {"node_id":"QY-LH-MAIN-PROD-01","region":"CN-SHANGHAI","host_identity":"QY-LH-MAIN-PROD-01","boot_id":"83d87912-6afb-420f-86c5-58bd1dbde14d","archive_root":"/home/guanghu-ops/enterprise-archive/GH-CVM-MAIN-PROD-01/2026-09-13","retained_bytes":487458,"retention_summary":"RETENTION-SUMMARY-20260913.json","full_historical_payloads_purged_bytes":1236163123,"receipt_sha256":"2f825548e7c46ec27d0fbfd8340f026cbcc9448daf447f3c7045012f5b3d6604","prior_restore_verification":{"artifact_files":20944,"journal_files":39}},
|
||||
"removed_after_archive": ["/root/ghdr-c96f43c","/home/ubuntu/guanghu-native-staging","/opt/fifth-domain-release.glOrXN","/var/tmp/hlcc-offline-20260726"],
|
||||
"retired_services": [{"unit":"pm2-root.service","port":3910},{"unit":"api-router.service","port":5001},{"unit":"revive-guard.service","port":8922}],
|
||||
"rebuildable_cleanup": ["JOURNAL_ABOVE_512M","NPM_CACHE","PIP_CACHE","APT_CACHE","DOCKER_BUILD_CACHE","UNATTACHED_DOCKER_VOLUME","DISABLED_SNAP_REVISIONS"],
|
||||
"kept_current": ["DOCKER_GUANGHU_FORGEJO_BLUE","LEGACY_GITEA_STILL_NGINX_REFERENCED","GUANGHU_PORTAL","POSTGRESQL","ENTERPRISE_IDENTITY_AND_DEVICE_GATES","ENTERPRISE_AND_LIVING_LIGHTHOUSES","JD_WORLD_TUNNEL","PRIMARY_CODE_CHANNEL_DATA","ACTIVE_RESCUE_ARCHIVE"],
|
||||
"current_code_channel": {"runtime":"docker:guanghu-forgejo-blue","restart_policy":"unless-stopped","legacy_systemd_candidate":"disabled_inactive"},
|
||||
"deferred": ["LEGACY_GITEA_REQUIRES_ASSET_AND_DEFAULT_VHOST_MIGRATION_BEFORE_RETIREMENT","ENTERPRISE_PERMISSION_HANDOVER_REQUIRES_SEPARATE_OPERATIONS_KEY_AND_TEAM_ACCEPTANCE"],
|
||||
"kept_current": ["DOCKER_GUANGHU_FORGEJO_BLUE","FORGEJO_POSTGRESQL_14_CLUSTER","FORGEJO_SINGLE_ROLLING_DATABASE_BACKUP","GUANGHU_PORTAL","ENTERPRISE_IDENTITY_AND_DEVICE_GATES","ENTERPRISE_AND_LIVING_LIGHTHOUSES","JD_WORLD_TUNNEL","PRIMARY_CODE_CHANNEL_DATA","ACTIVE_RESCUE_ARCHIVE"],
|
||||
"retired_code_stack": {"application":"Gitea 1.21.11","containers_removed":3,"images_removed":3,"data_path_removed":"/opt/guanghu/lighthouse-cn","public_ports_removed":[3000,2222],"repositories_verified_migrated":2,"legacy_collaboration_objects":0,"full_archive_created":false},
|
||||
"current_code_channel": {"runtime":"docker:guanghu-forgejo-blue","restart_policy":"unless-stopped","database":"postgresql@14-forgejo.service:172.19.0.1:55432","database_role":"forgejo","repository_count":14,"organization_count":1,"public_health":"HTTP_200","rolling_backup_sha256":"4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c"},
|
||||
"retention_policy": "RETIRED_NO_UNIQUE_VALUE_SUMMARY_AND_HASH_ONLY_CURRENT_DATA_SINGLE_ROLLING_BACKUP",
|
||||
"deferred": ["ENTERPRISE_PERMISSION_HANDOVER_REQUIRES_SEPARATE_OPERATIONS_KEY_AND_TEAM_ACCEPTANCE","HUAER_RECOVERED_OWNER_ACCOUNT_REQUIRES_ADMIN_PASSWORD_RESET_BEFORE_INTERACTIVE_LOGIN"],
|
||||
"public_health": "EIGHT_ENDPOINTS_HTTP_200",
|
||||
"source_tcs": "runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-SERVER-AUDIT-ARCHIVE-CLEANUP-20260913.tcs"
|
||||
"source_tcs": "runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,88 @@
|
|||
{
|
||||
"compiled_from": {
|
||||
"compiler_id": "TCS-COMPILER-STAGE1-0001",
|
||||
"compiler_state": "TCS_COMPILER_GIR_EXECUTED",
|
||||
"source_sha256": "f5df6f8cfd5bc29e5bee286b64330bda41009f006e3ed3767087ce2eb8ae663d"
|
||||
},
|
||||
"declaration": {
|
||||
"emergence": {
|
||||
"value": "先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。"
|
||||
},
|
||||
"event_time": {
|
||||
"precision": "SERVER_SECOND",
|
||||
"value": "2026-09-13T18:32:38+08:00"
|
||||
},
|
||||
"evidence": {
|
||||
"decision_source_sha256": "7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e",
|
||||
"forgejo_current_backup_sha256": "4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c",
|
||||
"old_hololake_world_commit": "d1823008e1401d1875d863109b69f8ed145d4532",
|
||||
"old_lighthouse_commit": "fec90a5bb6a5dc380232c2a207fd0a9b4d6f377f",
|
||||
"receipt": "deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json"
|
||||
},
|
||||
"header": {
|
||||
"canonical_uri": "runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs",
|
||||
"compatibility": [
|
||||
"GH-CVM-MAIN-PROD-01",
|
||||
"QY-LH-MAIN-PROD-01",
|
||||
"TCS-0002∞"
|
||||
],
|
||||
"language": "TCS/0.1",
|
||||
"lifecycle": "CANDIDATE",
|
||||
"name_en": "Enterprise Gitea Retirement and Forgejo Database Decoupling Completion",
|
||||
"name_zh": "企业Gitea退役与Forgejo数据库解耦完成事件",
|
||||
"profile": "HLDP-HUMAN-ENGINEERING/0.1",
|
||||
"protocols": [
|
||||
"GLS-0200",
|
||||
"GLS-0234",
|
||||
"GLS-0241",
|
||||
"GLS-0254"
|
||||
],
|
||||
"schema": "tcs.event/v1",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"lock": {
|
||||
"value": "retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200"
|
||||
},
|
||||
"observation": {
|
||||
"value": "旧Gitea含2个仓库且无issue、pull request、release、comment和attachment;两仓库main提交已在Forgejo同名仓库中存在,新旧git fsck均通过。退役时发现现行Forgejo仍依赖旧容器数据库名,健康度曾返回424;已从校验通过的2026-08-08备份恢复至独立PostgreSQL集群,重新登记12个磁盘仓库,当前14个仓库一致且公网端点为200。"
|
||||
},
|
||||
"rejected": {
|
||||
"values": [
|
||||
"继续保留Gitea容器和公网端口",
|
||||
"仅因仓库同名就删除旧数据",
|
||||
"把1.24GB旧构建与日志压缩包当作必须永久保留的历史",
|
||||
"隐瞒数据库耦合导致的424维护事件",
|
||||
"用新的Gitea命名继续伪装退役结构",
|
||||
"让恢复用临时管理员令牌常驻"
|
||||
]
|
||||
},
|
||||
"source": {
|
||||
"source_id": "BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913",
|
||||
"source_role": "DIRECT_HUMAN",
|
||||
"source_sha256": "7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e",
|
||||
"source_uri": "source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention"
|
||||
},
|
||||
"subject": {
|
||||
"channel_id": "ICE-CH-ZC001",
|
||||
"subject_id": "GH-CVM-MAIN-PROD-01",
|
||||
"subject_kind": "SYSTEM",
|
||||
"verification": "企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。"
|
||||
},
|
||||
"trigger": {
|
||||
"value": "冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。"
|
||||
},
|
||||
"why": {
|
||||
"value": "把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。"
|
||||
}
|
||||
},
|
||||
"executable": false,
|
||||
"identity": {
|
||||
"declaration_id": "TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913",
|
||||
"declaration_kind": "EVENT",
|
||||
"language_version": "0.1"
|
||||
},
|
||||
"native_self_hosted": true,
|
||||
"natural_language_is_typed_data": true,
|
||||
"schema": "guanghu.declaration-gir/v1",
|
||||
"unresolved_natural_language": false
|
||||
}
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
# Enterprise Gitea Retirement and Forgejo Database Decoupling Completion · Human Engineering Language (English)
|
||||
|
||||
> This is an English reading projection of validated native TCS/HLDP source. It is not a new canonical source and grants no execution authority.
|
||||
|
||||
## What this is
|
||||
|
||||
This is a **event** declaration with identifier `TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913` and version `1.0.0`. The projector validates it with the Stage-1 compiler before changing its reading order.
|
||||
|
||||
## Who is here
|
||||
|
||||
- **subject** `subject`
|
||||
- **channel_id**:ICE-CH-ZC001 `subject.channel_id`
|
||||
- **subject_id**:GH-CVM-MAIN-PROD-01 `subject.subject_id`
|
||||
- **subject_kind**:SYSTEM `subject.subject_kind`
|
||||
- **verification**:企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。 `subject.verification`
|
||||
|
||||
## Why this started
|
||||
|
||||
- **trigger** `trigger`
|
||||
- **value**:冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。 `trigger.value`
|
||||
- **why** `why`
|
||||
- **value**:把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。 `why.value`
|
||||
- **source** `source`
|
||||
- **source identifier**:BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913 `source.source_id`
|
||||
- **source role**:DIRECT_HUMAN `source.source_role`
|
||||
- **source checksum**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `source.source_sha256`
|
||||
- **source address**:source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention `source.source_uri`
|
||||
|
||||
## What changed
|
||||
|
||||
- **emergence** `emergence`
|
||||
- **value**:先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。 `emergence.value`
|
||||
- **lock** `lock`
|
||||
- **value**:retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200 `lock.value`
|
||||
|
||||
## How it will execute
|
||||
|
||||
This is a non-executable declaration and has no action graph.
|
||||
|
||||
## Boundaries and exception handling
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## How completion is proven
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## Where to continue next time
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## Source and verification
|
||||
|
||||
- **Native declaration identifier**: `TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913`
|
||||
- **Native declaration kind**: `EVENT`
|
||||
- **TCS source SHA-256**: `f5df6f8cfd5bc29e5bee286b64330bda41009f006e3ed3767087ce2eb8ae663d`
|
||||
- **Validation compiler**: `TCS-COMPILER-STAGE1-0001`
|
||||
- **Projection protocol**: `GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
|
||||
|
||||
## Complete native structure cross-reference
|
||||
|
||||
All top-level structures and field paths are retained below so a reader can audit whether the projection omitted information.
|
||||
|
||||
- **emergence** `emergence`
|
||||
- **value**:先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。 `emergence.value`
|
||||
- **event_time** `event_time`
|
||||
- **precision**:SERVER_SECOND `event_time.precision`
|
||||
- **value**:2026-09-13T18:32:38+08:00 `event_time.value`
|
||||
- **evidence** `evidence`
|
||||
- **decision_source_sha256**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `evidence.decision_source_sha256`
|
||||
- **forgejo_current_backup_sha256**:4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c `evidence.forgejo_current_backup_sha256`
|
||||
- **old_hololake_world_commit**:d1823008e1401d1875d863109b69f8ed145d4532 `evidence.old_hololake_world_commit`
|
||||
- **old_lighthouse_commit**:fec90a5bb6a5dc380232c2a207fd0a9b4d6f377f `evidence.old_lighthouse_commit`
|
||||
- **receipt**:deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json `evidence.receipt`
|
||||
- **header** `header`
|
||||
- **canonical source path**:runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs `header.canonical_uri`
|
||||
- **compatibility** `header.compatibility`
|
||||
- GH-CVM-MAIN-PROD-01
|
||||
- QY-LH-MAIN-PROD-01
|
||||
- TCS-0002∞
|
||||
- **language**:TCS/0.1 `header.language`
|
||||
- **lifecycle**:CANDIDATE `header.lifecycle`
|
||||
- **English name**:Enterprise Gitea Retirement and Forgejo Database Decoupling Completion `header.name_en`
|
||||
- **Chinese name**:企业Gitea退役与Forgejo数据库解耦完成事件 `header.name_zh`
|
||||
- **profile**:HLDP-HUMAN-ENGINEERING/0.1 `header.profile`
|
||||
- **protocols** `header.protocols`
|
||||
- GLS-0200
|
||||
- GLS-0234
|
||||
- GLS-0241
|
||||
- GLS-0254
|
||||
- **schema**:tcs.event/v1 `header.schema`
|
||||
- **version**:1.0.0 `header.version`
|
||||
- **lock** `lock`
|
||||
- **value**:retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200 `lock.value`
|
||||
- **observation** `observation`
|
||||
- **value**:旧Gitea含2个仓库且无issue、pull request、release、comment和attachment;两仓库main提交已在Forgejo同名仓库中存在,新旧git fsck均通过。退役时发现现行Forgejo仍依赖旧容器数据库名,健康度曾返回424;已从校验通过的2026-08-08备份恢复至独立PostgreSQL集群,重新登记12个磁盘仓库,当前14个仓库一致且公网端点为200。 `observation.value`
|
||||
- **rejected** `rejected`
|
||||
- **values** `rejected.values`
|
||||
- 继续保留Gitea容器和公网端口
|
||||
- 仅因仓库同名就删除旧数据
|
||||
- 把1.24GB旧构建与日志压缩包当作必须永久保留的历史
|
||||
- 隐瞒数据库耦合导致的424维护事件
|
||||
- 用新的Gitea命名继续伪装退役结构
|
||||
- 让恢复用临时管理员令牌常驻
|
||||
- **source** `source`
|
||||
- **source identifier**:BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913 `source.source_id`
|
||||
- **source role**:DIRECT_HUMAN `source.source_role`
|
||||
- **source checksum**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `source.source_sha256`
|
||||
- **source address**:source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention `source.source_uri`
|
||||
- **subject** `subject`
|
||||
- **channel_id**:ICE-CH-ZC001 `subject.channel_id`
|
||||
- **subject_id**:GH-CVM-MAIN-PROD-01 `subject.subject_id`
|
||||
- **subject_kind**:SYSTEM `subject.subject_kind`
|
||||
- **verification**:企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。 `subject.verification`
|
||||
- **trigger** `trigger`
|
||||
- **value**:冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。 `trigger.value`
|
||||
- **why** `why`
|
||||
- **value**:把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。 `why.value`
|
||||
|
||||
---
|
||||
|
||||
This page changes only the reading order; it does not change TCS/HLDP semantics.
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
# 企业Gitea退役与Forgejo数据库解耦完成事件 · 简体中文人类工程语言版
|
||||
|
||||
> 这是 TCS/HLDP 原生源码的简体中文阅读投影,不是新的正本,也不授予执行权限。若本页与 `.tcs` 源码不一致,以经过校验的 `.tcs` 源码为准。
|
||||
|
||||
## 这是什么
|
||||
|
||||
这是一份 **事件** 声明,编号为 `TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913`,版本为 `1.0.0`。转换器已先用 Stage-1 编译器校验原生源码,再把机器枚举翻译成汉语;原始编号保留在括号和字段路径中。
|
||||
|
||||
## 谁在这里
|
||||
|
||||
- **执行主体** `subject`
|
||||
- **channel_id**:ICE-CH-ZC001 `subject.channel_id`
|
||||
- **subject_id**:GH-CVM-MAIN-PROD-01 `subject.subject_id`
|
||||
- **subject_kind**:SYSTEM `subject.subject_kind`
|
||||
- **verification**:企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。 `subject.verification`
|
||||
|
||||
## 为什么开始
|
||||
|
||||
- **触发** `trigger`
|
||||
- **value**:冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。 `trigger.value`
|
||||
- **为什么** `why`
|
||||
- **value**:把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。 `why.value`
|
||||
- **来源** `source`
|
||||
- **来源编号**:BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913 `source.source_id`
|
||||
- **来源角色**:人类直接语言来源(`DIRECT_HUMAN`) `source.source_role`
|
||||
- **来源校验值**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `source.source_sha256`
|
||||
- **来源地址**:source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention `source.source_uri`
|
||||
|
||||
## 发生了什么变化
|
||||
|
||||
- **认知或状态变化** `emergence`
|
||||
- **value**:先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。 `emergence.value`
|
||||
- **锁定结论** `lock`
|
||||
- **value**:retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200 `lock.value`
|
||||
|
||||
## 准备怎样执行
|
||||
|
||||
这是非执行声明,没有动作图。
|
||||
|
||||
## 边界与异常处理
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 怎样算完成
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 下一次从哪里继续
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 来源与校验
|
||||
|
||||
- **原生声明编号**:`TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913`
|
||||
- **原生声明类型**:`EVENT`
|
||||
- **TCS 源码 SHA-256**:`f5df6f8cfd5bc29e5bee286b64330bda41009f006e3ed3767087ce2eb8ae663d`
|
||||
- **校验编译器**:`TCS-COMPILER-STAGE1-0001`
|
||||
- **投影协议**:`GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
|
||||
|
||||
## 原生结构逐项对照
|
||||
|
||||
下面保留源码的全部顶层结构和字段路径,供人类审计投影有没有漏掉信息。
|
||||
|
||||
- **认知或状态变化** `emergence`
|
||||
- **value**:先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。 `emergence.value`
|
||||
- **event_time** `event_time`
|
||||
- **precision**:SERVER_SECOND `event_time.precision`
|
||||
- **value**:2026-09-13T18:32:38+08:00 `event_time.value`
|
||||
- **evidence** `evidence`
|
||||
- **decision_source_sha256**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `evidence.decision_source_sha256`
|
||||
- **forgejo_current_backup_sha256**:4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c `evidence.forgejo_current_backup_sha256`
|
||||
- **old_hololake_world_commit**:d1823008e1401d1875d863109b69f8ed145d4532 `evidence.old_hololake_world_commit`
|
||||
- **old_lighthouse_commit**:fec90a5bb6a5dc380232c2a207fd0a9b4d6f377f `evidence.old_lighthouse_commit`
|
||||
- **回执**:deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json `evidence.receipt`
|
||||
- **语言头** `header`
|
||||
- **正本路径**:runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs `header.canonical_uri`
|
||||
- **compatibility** `header.compatibility`
|
||||
- GH-CVM-MAIN-PROD-01
|
||||
- QY-LH-MAIN-PROD-01
|
||||
- TCS-0002∞
|
||||
- **语言**:TCS/0.1 `header.language`
|
||||
- **生命周期**:候选版本,尚未成为正式正本(`CANDIDATE`) `header.lifecycle`
|
||||
- **英文名**:Enterprise Gitea Retirement and Forgejo Database Decoupling Completion `header.name_en`
|
||||
- **中文名**:企业Gitea退役与Forgejo数据库解耦完成事件 `header.name_zh`
|
||||
- **协议配置**:HLDP-HUMAN-ENGINEERING/0.1 `header.profile`
|
||||
- **protocols** `header.protocols`
|
||||
- GLS-0200
|
||||
- GLS-0234
|
||||
- GLS-0241
|
||||
- GLS-0254
|
||||
- **schema**:tcs.event/v1 `header.schema`
|
||||
- **版本**:1.0.0 `header.version`
|
||||
- **锁定结论** `lock`
|
||||
- **value**:retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200 `lock.value`
|
||||
- **observation** `observation`
|
||||
- **value**:旧Gitea含2个仓库且无issue、pull request、release、comment和attachment;两仓库main提交已在Forgejo同名仓库中存在,新旧git fsck均通过。退役时发现现行Forgejo仍依赖旧容器数据库名,健康度曾返回424;已从校验通过的2026-08-08备份恢复至独立PostgreSQL集群,重新登记12个磁盘仓库,当前14个仓库一致且公网端点为200。 `observation.value`
|
||||
- **已排除路径** `rejected`
|
||||
- **values** `rejected.values`
|
||||
- 继续保留Gitea容器和公网端口
|
||||
- 仅因仓库同名就删除旧数据
|
||||
- 把1.24GB旧构建与日志压缩包当作必须永久保留的历史
|
||||
- 隐瞒数据库耦合导致的424维护事件
|
||||
- 用新的Gitea命名继续伪装退役结构
|
||||
- 让恢复用临时管理员令牌常驻
|
||||
- **来源** `source`
|
||||
- **来源编号**:BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913 `source.source_id`
|
||||
- **来源角色**:人类直接语言来源(`DIRECT_HUMAN`) `source.source_role`
|
||||
- **来源校验值**:7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e `source.source_sha256`
|
||||
- **来源地址**:source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention `source.source_uri`
|
||||
- **执行主体** `subject`
|
||||
- **channel_id**:ICE-CH-ZC001 `subject.channel_id`
|
||||
- **subject_id**:GH-CVM-MAIN-PROD-01 `subject.subject_id`
|
||||
- **subject_kind**:SYSTEM `subject.subject_kind`
|
||||
- **verification**:企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。 `subject.verification`
|
||||
- **触发** `trigger`
|
||||
- **value**:冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。 `trigger.value`
|
||||
- **为什么** `why`
|
||||
- **value**:把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。 `why.value`
|
||||
|
||||
---
|
||||
|
||||
本页只改变阅读顺序,不改变 TCS/HLDP 语义。
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
TCS 0.1;
|
||||
|
||||
EVENT TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913 {
|
||||
header { schema = "tcs.event/v1"; name_zh = "企业Gitea退役与Forgejo数据库解耦完成事件"; name_en = "Enterprise Gitea Retirement and Forgejo Database Decoupling Completion"; version = "1.0.0"; language = "TCS/0.1"; profile = "HLDP-HUMAN-ENGINEERING/0.1"; protocols = ["GLS-0200", "GLS-0234", "GLS-0241", "GLS-0254"]; lifecycle = "CANDIDATE"; canonical_uri = "runtime/fifth-domain-language-system/language/protocols/TCS-EVENT-ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.tcs"; compatibility = ["GH-CVM-MAIN-PROD-01", "QY-LH-MAIN-PROD-01", "TCS-0002∞"]; }
|
||||
source { source_id = "BINGSHUO-DIRECT-GITEA-RETIREMENT-AND-MINIMUM-RETENTION-20260913"; source_uri = "source://codex-current-dialogue/2026-09-13/gitea-retirement-minimum-retention"; source_sha256 = "7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e"; source_role = "DIRECT_HUMAN"; }
|
||||
subject { subject_id = "GH-CVM-MAIN-PROD-01"; subject_kind = "SYSTEM"; channel_id = "ICE-CH-ZC001"; verification = "企业主机、上海备用节点、Docker、PostgreSQL、Nginx、UFW、Git对象、HTTPS健康端点与滚动备份哈希现场读回。"; }
|
||||
event_time { value = "2026-09-13T18:32:38+08:00"; precision = "SERVER_SECOND"; }
|
||||
trigger { value = "冰朔纠正:Gitea早已退役,现行是完全自主的开源Forgejo,未来还会建设光湖自有代码频道;无价值旧实体应删除,历史只留能证明发生过的摘要和哈希。"; }
|
||||
observation { value = "旧Gitea含2个仓库且无issue、pull request、release、comment和attachment;两仓库main提交已在Forgejo同名仓库中存在,新旧git fsck均通过。退役时发现现行Forgejo仍依赖旧容器数据库名,健康度曾返回424;已从校验通过的2026-08-08备份恢复至独立PostgreSQL集群,重新登记12个磁盘仓库,当前14个仓库一致且公网端点为200。"; }
|
||||
emergence { value = "先比对旧仓库引用和新Forgejo提交 → 保留最小证据 → 退出旧应用、Redis、PostgreSQL容器和公网入口 → 健康回执暴露隐藏数据库耦合 → 停止继续清理并恢复Forgejo数据 → 独立数据库角色、路由和备份 → 磁盘与数据库仓库集合对齐 → 删除无价值大包,只留摘要和单份滚动当前备份。"; }
|
||||
lock { value = "retired=Gitea; current=Forgejo-16.0.1; current_repositories=14; unadopted=0; current_database=postgresql@14-forgejo:172.19.0.1:55432; database_role=forgejo; backup_node=QY-LH-MAIN-PROD-01; rolling_backup_sha256=4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c; purged_historical_payload_bytes=1236163123; public_health=HTTP_200"; }
|
||||
why { value = "把时间线证据与旧运行实体分开:证明历史不等于无限保留原字节;现行系统则必须有可验证的数据、恢复路径和健康回执。"; }
|
||||
rejected { values = ["继续保留Gitea容器和公网端口", "仅因仓库同名就删除旧数据", "把1.24GB旧构建与日志压缩包当作必须永久保留的历史", "隐瞒数据库耦合导致的424维护事件", "用新的Gitea命名继续伪装退役结构", "让恢复用临时管理员令牌常驻"] ; }
|
||||
evidence { decision_source_sha256 = "7c4d44bddea5050327f456a9694b557d49aae16fe1bb9ac1d6e994556799719e"; old_hololake_world_commit = "d1823008e1401d1875d863109b69f8ed145d4532"; old_lighthouse_commit = "fec90a5bb6a5dc380232c2a207fd0a9b4d6f377f"; forgejo_current_backup_sha256 = "4151d0bdfd844624840bdbefdcfb73e60ba503e594463c5562e9ff9e3dc9e44c"; receipt = "deployment/receipts/ENTERPRISE-GITEA-RETIREMENT-FORGEJO-DECOUPLING-20260913.json"; }
|
||||
}
|
||||
Loading…
Reference in a new issue