import{_ as a,o as e,c as s,R as t}from"./chunks/framework.44fd0451.js";const u=JSON.parse('{"title":"使用 Argo 隧道的哪吒服务端","description":"","frontmatter":{},"headers":[],"relativePath":"case/case5.md","filePath":"case/case5.md","lastUpdated":1698060756000}'),n={name:"case/case5.md"},l=t(`
贡献者:
项目地址:Argo-Nezha-Service-Container
镜像备份(非实时更新):Argo-Nezha-Service-Container
Argo 隧道认证方式有 json 和 token,使用两个方式其中之一
DNS
记录里加上客户端上报数据(tcp)和 ssh(可选)的域名,打开橙色云启用 CDN 网络
选项将 gRPC
开关打开面板域名加上 https://
开头,回调地址再加上 /oauth2/callback
结尾
镜像 fscarmen/argo-nezha:latest
, 支持 amd64 和 arm64 架构
用到的变量
变量名 | 是否必须 | 备注 |
---|---|---|
GH_USER | 是 | github 的用户名,用于面板管理授权 |
GH_CLIENTID | 是 | 在 github 上申请 |
GH_CLIENTSECRET | 是 | 在 github 上申请 |
GH_BACKUP_USER | 否 | 在 github 上备份哪吒服务端数据库的 github 用户名,不填则与面板管理授权的账户 GH_USER 一致 |
GH_REPO | 否 | 在 github 上备份哪吒服务端数据库文件的 github 库 |
GH_EMAIL | 否 | github 的邮箱,用于备份的 git 推送到远程库 |
GH_PAT | 否 | github 的 PAT |
ARGO_AUTH | 是 | Json: 从 https://fscarmen.cloudflare.now.cc 获取的 Argo Json Token: 从 Cloudflare 官网获取 |
DATA_DOMAIN | 是 | 客户端与服务端的通信 argo 域名 |
WEB_DOMAIN | 是 | 面板 argo 域名 |
SSH_DOMAIN | 否 | ssh 用的 argo 域名 |
SSH_PASSWORD | 否 | ssh 的密码,只有在设置 SSH_JSON 后才生效,默认值 password |
Koyeb
docker run -dit \\
--name nezha_dashboard \\
--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 WEB_DOMAIN=<填自定义的> \\
-e DATA_DOMAIN=<填自定义的> \\
-e SSH_DOMAIN=<填自定义的> \\
-e SSH_PASSWORD=<填自定义的> \\
fscarmen/argo-nezha
version: '3.8'
services:
argo-nezha:
image: fscarmen/argo-nezha
container_name: nezha_dashboard
restart: always
environment:
- GH_USER=<填 github 用户名>
- GH_EMAIL=<<填 github 邮箱>
- GH_PAT=<填获取的>
- GH_REPO=<填自定义的>
- GH_CLIENTID=<填获取的>
- GH_CLIENTSECRET=<填获取的>
- ARGO_AUTH='<填获取的 Argo json 或者 token>'
- WEB_DOMAIN=<填自定义的>
- DATA_DOMAIN=<填自定义的>
- SSH_DOMAIN=<填自定义的>
- SSH_PASSWORD=<填自定义的>
通过gRPC传输,无需额外配置。使用面板给到的安装方式,举例
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh install_agent data.seales.nom.za 443 eAxO9IF519fKFODlW0 --tls
<file path>/cloudflared access ssh --hostname ssh.seales.nom.za
README.md
,定时服务会每分钟检测更新,并把上次同步的文件名记录在本地 /dbfile
处以与在线的文件内容作比对下图为以还原文件名为 dashboard-2023-04-23-13:08:37.tar.gz
作示例
bash /dashboard/restore.sh <文件名>
/dashboard
文件夹,压缩备份为 dashboard.tar.gz
文件tar czvf dashboard.tar.gz /dashboard
dashboard.tar.gz
.
|-- dashboard
| |-- app # 哪吒面板主程序
| |-- argo.json # Argo 隧道 json 文件,记录着使用隧道的信息
| |-- argo.yml # Argo 隧道 yml 文件,用于在一同隧道下,根据不同域名来分流 web, gRPC 和 ssh 协议的作用
| |-- backup.sh # 备份数据脚本
| |-- data
| | |-- config.yaml # 哪吒面板的配置,如 Github OAuth2 / gRPC 域名 / 端口 / 是否启用 TLS 等信息
| | \`-- sqlite.db # SQLite 数据库文件,记录着面板设置的所有 severs 和 cron 等信息
| |-- entrypoint.sh # 主脚本,容器运行后执行
| |-- nezha.csr # SSL/TLS 证书签名请求
| |-- nezha.key # SSL/TLS 证书的私钥信息
| |-- nezha.pem # SSL/TLS 隐私增强邮件
| \`-- restore.sh # 还原备份脚本
|-- usr
| \`-- local
| \`-- bin
| |-- cloudflared # Cloudflare Argo 隧道主程序
| |-- grpcwebproxy # gRPC 反代主程序
| \`-- nezha-agent # 哪吒客户端,用于监控本地 localhost
|-- dbfile # 记录最新的还原或备份文件名
\`-- version # 记录当前的面板 app 版本