部署哪吒 v1-Argo 版

部署哪吒 v1-Argo 版

相关资源

Githu 仓库

Docker 镜像


项目特点

  • 自动备份: 支持自动备份到 github 私有仓库
  • argo 反代: 通过 caddy 和 Cloudflare Tunnel 提供安全的访问
  • 一键部署: 运行 nezhav1.sh 输入必要变量后,实现一键部署

部署前置准备

必须事项

  1. 设置 Tunnel Public hostname
    • Type: HTTPS
    • URL: localhost:443
    • Additional application settings → TLS
      - No TLS Verify: on
      - HTTP2 connection: on
    • 记录 argo 域名token 备用
  2. aogo 域名必须开启 grpc 和 webSockets 连接

可选事项

设置 GitHub Apps

  • 入口地址:https://github.com/settings/developers
  • 点击右上角 new OAuth app 开始新建
  • 填写以下参数:
    • Application name:nezha_v1
    • Homepage URL: https://用于哪吒面板的argo域名
    • Authorization callback URL: https://用于哪吒面板的argo域名/api/v1/oauth2/callback
  • 记录 Client ID 和 Client secrets 备用

快速部署

VPS 平台

方法 1:执行一键脚本

1
bash <(curl -sSL https://raw.githubusercontent.com/yutian81/argo-nezha-v1/github/nezhav1.sh
  • 按提示输入以下变量
  • GITHUB_TOKEN=github 的访问令牌
  • GITHUB_REPO_OWNER=github 用户名
  • GITHUB_REPO_NAME=用于备份的 github 仓库名
  • ARGO_AUTH=’Cloudflare Argo Tunnel 令牌 ‘,json 格式的秘钥必须用英文单引号包裹
  • ARGO_DOMAIN=在 argo 中设置的哪吒面板域名
  • 访问面板
1
https://你在argo隧道中设置的面板域名

初始用户名/密码为:admin/admin


方法 2:手动部署

依次执行以下命令:

注意 – 需要先在 /root/argo-nezha-v1/.env 文件中填入变量值

1
2
git clone -b github --depth 1 https://ghproxy.net/https://github.com/yutian81/argo-nezha-v1.git
cd argo-nezha-v1 && docker compose pull && docker compose up -d

PaaS 平台

  • 拉取 dockhub 镜像
1
docker pull yutian81/argo-nezha-v1:latest
  • 设置变量

变量名与 vps 搭建相同,新增一个可选变量 BACKUP_BRANCH,默认为 nezha-v1,即备份仓库的分支名

  • 暴露 443 端口

其他操作

更新镜像

手动更新:登录 vps,执行以下命令:

1
cd argo-nezha-v1 && docker compose pull && docker compose up -d

自动更新:加入系统 corn 任务。注意:需要定期手动清理旧的 docker 镜像,避免磁盘被大量占用

1
2
3
(crontab -l 2>/dev/null | grep -vF "# NEZHA-V1-UPDATE"
echo "0 3 * * * (export TZ=Asia/Shanghai; cd /root/argo-nezha-v1 && mkdir -p logs && log_file=\"logs/update-\$(date +\\%Y\\%m\\%d-\\%H\\%M\\%S).log\"; /usr/bin/docker compose pull && /usr/bin/docker compose up -d > \"\$log_file\" 2>&1) # NEZHA-V1-UPDATE"
) | crontab -

备份和恢复

项目支持自动备份到 Github 私有仓库

备份脚本 /backup.sh 会在每天凌晨 2 点执行,并且会自动清理 7 天前的旧日志以及旧的备份数据

备份日志目录:/root/argo-nezha-v1/logs

自动备份

如果自动备份没有生效,运行以下命令以添加自动备份的定时任务, 可以通过 crontab -l 命令查看是否成功

1
2
3
(crontab -l 2>/dev/null | grep -vF "# NEZHA-V1-BACKUP"
echo "0 2 * * * (export TZ=Asia/Shanghai; cd /root/argo-nezha-v1 && mkdir -p logs && log_file=\"logs/backup-\$(date +\\%Y\\%m\\%d-\\%H\\%M\\%S).log\"; /bin/bash backup.sh backup > \"\$log_file\" 2>&1) # NEZHA-V1-BACKUP"
) | crontab -

备份目录

  • 如果启用了自动备份,则数据备份在 github 仓库的 nezha-v1 分支
  • 如需备份在其他分支,修改本脚本约 310 行,示例:BACKUP_BRANCH=main

手动备份

1
2
3
4
# 在vps终端执行
cd argo-nezha-v1 && chmod +x backup.sh && ./backup.sh backup
# 在docker内执行
docker exec -it argo-nezha-v1 /backup.sh backup

手动恢复

1
2
3
4
# 在vps终端执行
cd argo-nezha-v1 && chmod +x backup.sh && ./backup.sh restore
# 在docker内执行
docker exec -it argo-nezha-v1 /backup.sh restore

基础设置

Agent 设置

  1. Agent 对接地址【域名/IP: 端口】面板域名:443
  2. Agent 使用 TLS 连接:打 √
  3. 前端真实 IP 请求头nz-realip (也可以不设置),千万不要填 CF-Connecting-lP

绑定 Github 登录

  1. 访问 vps 目录:/root/argo-nezha-v1/dashboard
  2. 修改 config.yaml 文件,在最后面加上以下代码:
1
2
3
4
5
6
7
8
9
10
oauth2:
GitHub:
client_id: 你在前置准备中获得的 github Client ID
client_secret: 你在前置准备中获得的 github Client secret
# 以下代码不要动
endpoint:
auth_url: https://github.com/login/oauth/authorize
token_url: https://github.com/login/oauth/access_token
user_id_path: id
user_info_url: https://api.github.com/user
  1. 登录哪吒管理后台,打开个人设置

在头像右侧找到 Oauth2 bindings,点击绑定,即可以 github 账户登录

同时建议点击 更新个人资料,勾选 禁止密码登录

设置前端界面背景图

打开 系统设置,找到 自定义代码(样式和脚本),输入以下代码:

1
2
3
4
<script>
window.CustomBackgroundImage = "改为你喜欢的背景图直链,以 http(s) 开头";
window.CustomDesc = "VPS探针";
</script>

设置 TG 通知

只说 TG 通知,其他通知方式请看官方文档

  • 打开 系统设置 —— 通知,点 + 号创建
  • 名称:TG 通知
  • URL:https://api.telegram.org/bot<tg token>/sendMessage?chat_id=<tg id>&text=#NEZHA#,替换 <> 及其中的内容
  • 跳转到 警报规则,点 + 号创建
  • 离线警报
    - 名称:⚡ 离线
    - 规则:[{"type":"offline","duration":180,"cover":0}]
  • 其他警报规则请看官方文档

#面板 #监控 #cloudflare #容器