import{_ as a,o as e,c as s,R as t}from"./chunks/framework.1625126e.js";const m=JSON.parse('{"title":"使用 Argo 隧道的哪吒服务端","description":"","frontmatter":{},"headers":[],"relativePath":"case/case5.md","filePath":"case/case5.md","lastUpdated":1691456305000}'),l={name:"case/case5.md"},n=t(`

使用 Argo 隧道的哪吒服务端

贡献者:

项目地址:Argo-Nezha-Service-Container

镜像备份(非实时更新):Argo-Nezha-Service-Container


目录


项目特点:

image

准备需要用的变量

imageimageimageimage

面板域名加上 https:// 开头,回调地址再加上 /oauth2/callback 结尾

imageimageimageimageimage

PaaS 部署实例

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

用到的变量

变量名是否必须备注
GH_USERgithub 的用户名,用于面板管理授权
GH_CLIENTID在 github 上申请
GH_CLIENTSECRET在 github 上申请
GH_BACKUP_USER在 github 上备份哪吒服务端数据库的 github 用户名,不填则与面板管理授权的账户 GH_USER 一致
GH_REPO在 github 上备份哪吒服务端数据库文件的 github 库
GH_EMAILgithub 的邮箱,用于备份的 git 推送到远程库
GH_PATgithub 的 PAT
ARGO_JSONhttps://fscarmen.cloudflare.now.cc 获取的 Argo Json
DATA_DOMAIN客户端与服务端的通信 argo 域名
WEB_DOMAIN面板 argo 域名
SSH_DOMAINssh 用的 argo 域名
SSH_PASSWORDssh 的密码,只有在设置 SSH_JSON 后才生效,默认值 password

Koyeb

Deploy to Koyeb

imageimageimageimageimage

VPS 部署实例

docker 部署

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_JSON='<填获取的>' \\
           -e WEB_DOMAIN=<填自定义的> \\
           -e DATA_DOMAIN=<填自定义的> \\
           -e SSH_DOMAIN=<填自定义的> \\
           -e SSH_PASSWORD=<填自定义的> \\
           fscarmen/argo-nezha

docker-compose 部署

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_JSON='<填获取的>'
            - 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

SSH 接入

<file path>/cloudflared access ssh --hostname ssh.seales.nom.za
imageimageimage

自动还原备份

下图为以还原文件名为 dashboard-2023-04-23-13:08:37.tar.gz 作示例

image

手动还原备份

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

完美搬家

tar czvf dashboard.tar.gz /dashboard

主体目录文件及说明

.
|-- 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-agent          # 哪吒客户端,用于监控本地 localhost
|   |-- nezha.csr            # SSL/TLS 证书签名请求
|   |-- nezha.key            # SSL/TLS 证书的私钥信息
|   |-- nezha.pem            # SSL/TLS 隐私增强邮件
|   \`-- restore.sh           # 还原备份脚本
\`-- dbfile                   # 记录最新的还原或备份文件名

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

免责声明:

`,73),r=[n];function o(c,i,p,h,d,g){return e(),s("div",null,r)}const b=a(l,[["render",o]]);export{m as __pageData,b as default};