ops: retire Gitea and decouple Forgejo database

This commit is contained in:
冰朔 2026-09-13 18:35:50 +08:00
commit f6591c6544
6 changed files with 435 additions and 8 deletions

View file

@ -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
}

View file

@ -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"
}

View file

@ -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
}

View file

@ -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.

View file

@ -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 语义。

View file

@ -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"; }
}