《冰与孤魂》续章十二:豆子

跑过来的孩子 “娘——” 孩子的声音穿过风雪,脆生生的,带着一路跑来的笑气。他的小靴子踩在雪地上,咯吱咯吱,一步比一步急,张开的双臂像要抱住整个冬天。 卡尔玛的心一下子提到了喉咙口。 她站在路中央,羽翼在身后完全展开,冰晶一片片凝实,发出风铃一样的轻响。她不能让孩子就这样扑过去——扑进一副没有血、没有心跳的怀抱里。可她也不能直接喊“那是假的”,上一章的教训还烫在她心里:村民凭什么信一个外来的姑娘,而不信一张活生生的母亲的脸? 她深吸一口气,喊出的不是警告,而是一个问题。 “等等!”她朝着孩子喊,“你先看看她的手!” 孩子脚步一顿,雪地上拖出一道长长的痕。他怔怔地看着前方,又回头看看卡尔玛,眼睛里全是不解:“姐姐?” 那张母亲的脸也停住了。它转过头,笑容依然温和,声音依然是母亲的声音:“孩子,别听她的。娘在这里,娘刚从雪原那边回来——” “你娘的手,”卡尔玛打断它,声音稳得连自己都意外,“左手虎口上有一道烫伤。是去年冬天烤面包时,炉膛里的火星溅出来的。她抱你的时候,那道疤总会硌着你的脸颊,你还说过,硌得痒痒的。” 这是她在村子里三天里亲眼见过的细节。母亲给孩子递热汤时,左手虎口那道浅浅的疤在火光下泛着淡粉色,孩子接碗时还伸手摸过,笑嘻嘻地说“娘的手会咬人”。 孩子愣住了。他慢慢地、慢慢地把目光移向那双伸向他的手。 那双手白皙、温热、光滑得没有一丝痕迹。像刚捏出来的雪,像没有用过的瓷。 “你的手……”孩子喃喃地说,脚步不由自主地往后退了半步,“娘的手不是这样的。” 空壳的回答 那张母亲的脸上的笑容,第一次裂开了一道缝。 它低头看着自己的手,仿佛也是第一次发现这处破绽。随即,它轻轻笑了一声,笑声里母亲的温柔褪去了,露出底下那种冰面裂缝般的冷意:“一张脸不够,那就再加一道疤——这有什么难的?” 话音未落,它左手虎口处便缓缓浮出一道浅粉色的痕,形状、位置,竟与卡尔玛说的一模一样。 孩子倒吸一口凉气。 “你看,”它重新抬起头,对孩子伸出手,“娘的手回来了。过来,孩子,外面冷,娘抱你回家吃饭。炉子里还有你最爱吃的烤红薯,娘给你留了最大的一个。” 卡尔玛的心沉了下去。她终于明白了冰眼最可怕的地方:它不是学不会,而是学得太快。只要有人说出一样东西,它立刻就能捏出第二样、第三样。脸可以捏,疤可以捏,声音可以捏,记忆里的话也可以捏——它照见的从来不...

Argo-Nezha-Service-Container哪吒面板搭建

Argo-Nezha-Service-Container

Argo-Nezha-Service-Container

使用 Argo 隧道的哪吒服务端

Documentation: English version | 中文版


目录


项目特点:

  • 适用范围更广 --- 只要能连通网络,就能安装哪吒服务端,如 LXC, OpenVZ VPS,Nas 虚拟机 , Container PaaS 等
  • Argo 隧道突破需要公网入口的限制 --- 传统的哪吒需要有两个公网端口,一个用于面板的访问,另一个用于客户端上报数据,本项目借用 Cloudflare Argo 隧道,使用内网穿透的办法
  • IPv4 / v6 具备更高的灵活性 --- 传统哪吒需要处理服务端和客户端的 IPv4/v6 兼容性问题,还需要通过 warp 等工具来解决不对应的情况。然而,本项目可以完全不需要考虑这些问题,可以任意对接,更加方便和简便
  • 一条 Argo 隧道分流多个域名和协议 --- 建立一条内网穿透的 Argo 隧道,即可分流三个域名(hostname)和协议(protocal),分别用于面板的访问(http),客户端上报数据(tcp)和 ssh(可选)
  • Grpc 反向代理的 gRPC 数据端口 --- 配上证书做 tls 终结,然后 Argo 的隧道配置用 https 服务指向这个反向代理,启用http2回源,grpc(nezha)->Grpc Proxy->h2(argo)->cf cdn edge->agent
  • 每天自动备份 --- 数据持久化从本地改为线上,北京时间每天 4 时 0 分自动备份整个哪吒面板文件夹到指定的 github 私库,包括面板主题,面板设置,探针数据和隧道信息,备份保留近 5 天数据;鉴于内容十分重要,必须要放在私库
  • 每天自动更新面板和更新脚本 -- 北京时间每天 4 时 0 分自动检测最新的官方面板版本及备份还原脚本,有升级时自动更新
  • 每天自动优化 SQLite 数据库 --- 北京时间每天 4 时 0 分自动使用 sqlite3 "sqlite.db" 'VACUUM;' 优化瘦身数据库
  • 手/自一体还原备份 --- 每分钟检测一次在线还原文件的内容,遇到有更新立刻还原
  • 默认内置本机探针 --- 能很方便的监控自身服务器信息
Argo-Nezha-Service-Container

准备需要用的变量

到 Cloudflare 官网,选择使用的域名,打开 网络 选项将 gRPC 开关打开

Cloudflare gRPC setting

获取 github 认证授权: GitHub Applications

GitHub OAuth Settings GitHub OAuth Callback URL

Argo 认证的获取方式: json 或 token

方式 1 - Json

通过 Cloudflare Json 生成网轻松获取 Argo 隧道 json 信息: Argo Json

Cloudflare JSON Info

方式 2 - Token

通过 Cloudflare 官网,手动生成 Argo 隧道 token 信息

Cloudflare Token Setup

PaaS 部署实例

镜像 fscarmen/argo-nezha:latest , 支持 amd64 和 arm64 架构

VPS 部署方式 1 --- docker

docker run -dit \
           --name nezha_dashboard \
           --pull always \
           --restart always \
           -e GH_USER=<填 github 用户名> \
           -e GH_EMAIL=<填 github 邮箱> \
           -e GH_PAT=<填获取的> \
           -e GH_REPO=<填自定义的> \
           -e GH_CLIENTID=<填获取的>  \
           -e GH_CLIENTSECRET=<填获取的> \
           -e ARGO_AUTH='<填获取的 Argo json 或者 token>' \
           -e ARGO_DOMAIN=<填自定义的> \
           -e GH_BACKUP_USER=<选填,选填,选填! 如与 GH_USER 一致,可以不要该环境变量> \
           -e REVERSE_PROXY_MODE=<选填,选填,选填! 如想用 Nginx 或 gRPCwebProxy 替代 Caddy 反代的话,请设置该变量并赋值为 `nginx` 或 `grpcwebproxy`> \
           -e NO_AUTO_RENEW=<选填,选填,选填! 如果不需要自动在线同步最新的 backup.sh 和 restore.sh,请设置该变量并赋值为 `1`> \
           -e DASHBOARD_VERSION=<选填,选填,选填! 指定面板的版本,以 `v0.00.00` 的格式,后续将固定在该版本不会升级,不填则使用默认的 `v0.20.13`> \
           fscarmen/argo-nezha
    

VPS 部署方式 2 --- 宿主机

bash <(wget -qO- https://raw.githubusercontent.com/fscarmen2/Argo-Nezha-Service-Container/main/dashboard.sh)
    

客户端接入

curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh install_agent nezha.seales.nom.za 443 eAxO9IF519fKFODlW0 --tls
    

SSH 接入

以 macOS + WindTerm 为例,其他根据使用的 SSH 工具,结合官方官方说明文档: Cloudflare SSH

手动备份数据

方法一: 把 Github 备份库里的 README.md 文件内容改为 backup

Backup GitHub

手动更新备份和还原脚本

ssh 进去后,容器版本运行 /dashboard/renew.sh; 非容器版本运行 /opt/nezha/dashboard/renew.sh
    

自动还原备份

把需要还原的文件名改到 github 备份库里的 README.md,定时服务会每分钟检测更新,并把上次同步的文件名记录在本地 /dbfile 处以与在线的文件内容作比对

手动还原备份

bash /dashboard/restore.sh <文件名>
    

完美搬家

tar czvf dashboard.tar.gz /dashboard
    

主体目录文件及说明

/dashboard/
|-- app                  # 哪吒面板主程序
...
    

鸣谢下列作者的文章和项目:

免责声明:

本程序仅供学习了解, 非盈利目的,未完事项请看原版,转载的F佬,网址:https://github.com/fscarmen2/Argo-Nezha-Service-Container。

使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。

评论