AirGap · 华宇气隙Huayu AirGap

AirGap(华宇气隙)是气隙环境的一站式更新与分发仓库:软件包、安装程序与签名摆渡包统一入库、验签、分发,数据不出内网。

产品介绍

AirGap(华宇气隙)面向“数据不出内网”的客户场景,把软件分发做成一座受控仓库: 更新物资本地入库、校验签名后按需供给,彻底隔离外部网络依赖。

核心特性

  • 统一更新通道:安装包、脚本、依赖统一入库,客户端从一个入口下载,支持断点续传;
  • 签名摆渡:可把任意目录打包成 Ed25519 签名的 .airgap 包,经 U 盘等物理介质摆渡,导入时自动验签 + SHA-256 校验;
  • 公网同源分发:API 发布的文件即刻通过 https://lanhc.com/lanhc/airgap/ 对外可见,无需二次同步;
  • 气隙友好:密钥在本机生成,签名包离线可验;verify.py 纯标准库,断网机无需安装任何依赖;
  • 轻量部署:单容器(Python + Flask),数据目录自包含,Docker Compose 一键起服务。

关键地址

用途地址
产品看板https://airgap.lanhc.com/
公网文件通道https://lanhc.com/lanhc/airgap/
仓库 APIhttps://airgap.lanhc.com/api/status
发布接口POST /api/publish(multipart 上传)
签名打包POST /api/pack(导出 .airgap)
验签导入POST /api/import(校验后入库)

典型流程

  1. 发布:在 AirGap 看板上传安装包(可指定子目录),文件落盘到仓库持久存储;
  2. 分发:客户端从 https://lanhc.com/lanhc/airgap/<目录>/<文件> 或 https://airgap.lanhc.com/repo/<路径> 下载;
  3. 摆渡(可选):把某目录导出为签名 .airgap 包,经 U 盘带入气隙环境,在断网机用 verify.py 校验后导入;
  4. 审计:每次发布 / 打包 / 导入都有记录,旧版本按目录保留,可回滚。

数据与安全

  • 数据唯一存储:/lucky/repo/data(public/ 可分发文件、outbox/ 签名包、keys/ 密钥对);
  • 官网只读挂载同一份数据:静态站点永远无法改写仓库内容,数据单向流动;
  • Ed25519 密钥在首次运行时本地生成,私钥不出机器;
  • 管理接口与文件下载同域,HTTPS 由 Let’s Encrypt 自动签发。

部署

AirGap 运行在 baizor 上(/lucky/repo),与官网(lanhc-hugo)共享公网文件通道:

cd /lucky/repo
docker compose up -d

看板:https://airgap.lanhc.com/;内网直连:http://127.0.0.1:8001/。

如需在客户侧私有化部署,使用与官网相同的容器镜像 ccr.ccs.tencentyun.com/lucky/airgap, 把 /data 挂载到本地持久卷,并按客户网络规划反向代理即可。