Files
bootstrap-public/README.md
2026-11-04 03:01:27 +08:00

61 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 原生 Shell 安装入口
这里直接维护 Bash 源码,由 Gitea 保存版本,Caddy 提供 HTTPS 下载。无需 Python 安装载荷。
当前已完成本地实现,尚未在真实 Debian 主机和实际 Caddy 域名验收。
## Debian 13 接入 Komodo
以下命令以 root 执行。如果系统尚未安装 curl,或缺少 HTTPS 根证书,先安装下载所需的基础工具:
```bash
apt update && apt install -y curl ca-certificates
```
以下为域名占位示例;正式域名在控制机部署后替换:
```bash
curl -fsSL 'https://scripts.example.com/releases/<40位小写Git提交>/install.sh' | bash -s -- \
--name prod-app-web-01 \
--core-url wss://komodo.example.com \
--core-public-key 'MCowBQYDK2VuAyEA<43个Base64字符>=' \
--assets-url 'https://scripts.example.com/releases/<40位小写Git提交>'
```
支持原生 systemd Debian 13 x86_64、Periphery/Core 2.3.4。Periphery 固定版本和 SHA-256;二进制只从 --assets-url 指定的 Caddy 下载,没有上游下载回退。
`--core-public-key` 是单行 X25519 SPKI 公钥的 Base64(固定前缀 `MCowBQYDK2VuAyEA`,结尾一个 `=`),不是 PEM,也不能带空格或换行。`--assets-url` 必须是 HTTPS `/releases/` 加 40 位小写提交;稳定入口不能直接作为安装资源基址。
脚本通过 apt 补齐 curl、jq、git、CA,配置 systemd,复用或生成节点身份,输出公开回执。
--check 做本地输入/身份检查,使用临时文件但不安装软件或修改主机配置;它不证明网络或 Core 状态。
回执在 /var/lib/platform-bootstrap/receipt.json,明确标记 Core 注册未验证、主机初始化未开始。
Docker、Headscale、公钥注入和安全配置后续由 Komodo 任务处理。没有 Core API 凭据下发。
已有身份、配置或二进制不符时停止,不自动替换身份。源文件可直接 bash install.sh --help。
## 独立手工升级
```bash
curl -fsSL https://scripts.example.com/upgrade-debian12-13.sh | bash -s -- --check
curl -fsSL https://scripts.example.com/upgrade-debian12-13.sh | bash -s -- --upgrade
# 人工重启并重新登录后,继续原任务或验收:
bash upgrade-debian12-13.sh --resume
bash upgrade-debian12-13.sh --verify
```
resume/verify 可使用同一固定版本 URL 再次下载执行,或保存该版本的文件后执行。
升级使用真实终端 /dev/tty,APT 配置冲突由人判断,不自动重启、不自动 autoremove。
仅接受显式官方 Debian 源的受支持格式;第三方源、混合版本、复杂 Deb822 需先人工处理。
检查 APT、磁盘、UEFI 挂载;实际引导布局、救援入口和应用备份由操作者在升级前确认。
状态与系统归档在 /var/lib/platform-debian-upgrade;归档不替代异机或应用一致性备份。
## 发布
Caddy 同时提供 /install.sh 稳定入口与 /releases/<40位小写Git提交>/install.sh 固定版本入口;生产接入命令固定使用后者。
发布脚本只提取 `install.sh`、`upgrade-debian12-13.sh`、`host-init.sh`、`tailscale.sh`、README、artifacts.lock 及清单列出的 vendor 文件,生成 VERSION、SHA256SUMS;不暴露 .git 或工作区其他文件。
源代码与修复就在此仓库维护,无生成器、内嵌 Python 或第二份安装源码。
## 固定资源
`artifacts.lock` 是数据清单,每行三个制表符分隔字段:SHA-256、仓库内路径、准备时使用的上游 HTTPS URL。文件实际保存在 `vendor/<组件>/<版本>/<文件>`,与清单一同提交到 Gitea。目标机不读取上游 URL。
当前包含 `vendor/komodo/2.3.4/periphery-x86_64`,不是空目录或下载占位符。控制端使用 platform 的 `control/vendor.sh --source <本仓库目录>` 准备资源,再用 `--check` 做完全离线校验。已有正确文件直接复用;摘要不符时停止,不静默覆盖。
新增版本时增加新路径和已核实摘要,准备二进制,同步修改 install.sh 的固定版本/摘要,检查后提交发布。不得改写已发布版本文件;固定提交及其 Caddy release 用于同版本回退。版本维护单独执行。