哪吒 v1 部署笔记
本文部署非官方版本,是 yumusb 大佬修改的版本,只需要一个域名,使用 cf argo 隧道反代。本文讲解部署全过程,不含哪吒面板的进阶设置,如有需要请参考官方文档。
相关资源
必须一个 cf 账号并注册 cf 隧道;必须一个 github 账号;必须一个托管在 cf 上的域名,下文以 222333.xyz
为例;一台 vps,内存最好不要低于 512m
准备工作
Github 准备
- fork 上文列出的仓库 https://github.com/yumusb/nezha-new
- 设置 Github auth (非必须步骤,但是考虑安全性,建议设置)
- 登录 Github 后,依次点击:
右上角图像 → settings → 左下角 Developer settings → 左上角 OAuth Apps → 右上角 New OAuth App
新建一个 OAuth 认证程序
- 依次填写以下内容,其他保持默认:
- Application name = 随意
- Homepage URL =
https://你计划用于登录面板的域名
,完整示例:https://nezha.222333.xyz
- Authorization callback URL = 哪吒面板认证回调地址,以 https 开头,在
https://你计划用于登录面板的域名
后面加上 /api/v1/oauth2/callback
,完整示例:https://nezha.222333.xyz/api/v1/oauth2/callback
- 记录
Client ID
- 生成一个
Client secrets
并记录
CF 准备
- 访问 Cloudflare One
- 依次点击:
左侧 网络 → Tunnels → 创建隧道
,隧道类型选择 Cloudflared
,下一步,依次填写:
- 隧道名称:随意,如
Nezha-V1
- 获取隧道 token:一串以
ey
开头的很长的一段字符串,记录下来
- 添加公共主机名
- 子域名 = 随意,示例:
nezha
- 域 = 选择你托管的域名,例如
222333.xyz
- 路径 = 留空
- 服务类型 = HTTP
- URL = nginx:80
开始部署
1
| sudo wget -qO- https://get.docker.com/ | bash
|
- 执行命令
docker --version
验证 docker 环境是否安装成功
- 执行以下命令克隆项目到 vps
1
| git clone https://github.com/yumusb/nezha-new.git
|
- 通过 ssh 自带的 sftp 工具,进入
/root/nezha-new
目录,编辑以下文件并保存
1 2 3 4 5 6 7 8
| TUNNEL_TOKEN=eyJhIjoiMWFmODZjMzNiY TELEGRAM_BOT_TOKEN=7654321:ABCDEFG TELEGRAM_CHAT_ID=7654321 GITHUB_USER=xxx GITHUB_TOKEN=xxxxx
GIT_REMOTE_URL=https://github.com/xxx/xxx.git CRON_SCHEDULE=0 */4 * * *
|
compose.yml
文件,将最后一段的 #
全部删除,以开启 自动备份
1 2 3 4 5 6 7 8 9 10
| # backup: # image: ghcr.io/yumusb/autobackup:latest # restart: always # volumes: # - ./:/app # environment: # - GITHUB_USER # - GITHUB_TOKEN # - GIT_REMOTE_URL # - CRON_SCHEDULE
|
1 2 3
| cd /root/nezha-new docker compose pull docker compose up -d
|
- 进入 /root/nezha-new/data 目录
cd /root/nezha-new/data
,修改 config.yaml
文件,在最后面加入以下内容,保存
1 2 3 4 5 6 7 8 9
| oauth2: GitHub: clientid: "xxxxxxxxxx" clientsecret: "xxxxxxxxxx" endpoint: authurl: "https://github.com/login/oauth/authorize" tokenurl: "https://github.com/login/oauth/access_token" userinfourl: "https://api.github.com/user" useridpath: "id"
|
- 依次运行一下命令,重启 docker 并检查 docker 运行状态
1 2
| sudo service docker restart sudo service docker status
|
基础设置
- 访问
https://nezha.222333.xyz
,进入面板
- 首次登录输入默认的用户名(admin)和密码(admin)
- 依次点击
右上角头像 → 个人信息 → 更新个人资料
,修改用户名和密码
- 点击 Oauth2 bindings 下面 github
bind
,绑定 github 登录
- 重新登录哪吒面板,点击
右上角头像 → 系统设置
,往下拉,找到 Agent对接地址【域名/IP:端口】
,填写 nezha.222333.xyz:443
(即你的哪吒面板域名:443 端口),并勾选 Agent 使用 TLS 连接
- 访问
https://nezha.222333.xyz/dashboard
,点击安装命令,选择对应系统,会生成 agent 客户端的一键安装脚本
- ssh 登录需要监控的 vps,粘贴上面生成的 agent 脚本,回车执行即可

需要注意的几点
- 系统设置里的
真实IP请求头
建议保持默认,不要修改,网上的教程大多数是修改为 CF-Connecting-IP
或 nz-realip
,修改后会导致哪吒自带的 web应用防火墙
拦截你的 ip 导致无法访问面板。坏处是不设置真实 ip 请求头会导致无法识别访问者的真实 ip。由于我的教程已经开启了 github auth 验证,可以在个人信息设置中 禁止使用密码登录
,而只使用 github 登录,安全性有保障,真实 IP 请求头的设置就并非必要了
- 如果你因为设置了真实 IP 请求头而导致无法访问,不要急,ssh 登录部署面板的 vps,执行一下命令清理全部用户,从而重置设置
1 2 3
| sudo apt install sqlite3 sqlite3 –version sqlite3 /root/nezha-new/data/sqlite.db "DELETE FROM users;"
|
- 关于自动生成的 agent 命令,v0 和 v1 完全不同,v0 会对每个 agent 客户机生成一个 token,而 v1 只有一个 agent token,所有被监控端都使用一个 token,因此你可以将生成的安装命令保存起来,直接在新的 agent 机器上安装。我推荐的
electerm
工具支持批量执行命令,先将需要安装的 vps 全部登录,然后在底部输入 agent 安装脚本,点击回车,即可在所有客户机上全部安装
- 安装 v1 的 agent 前,需要先卸载 v0 版本的 agent
1 2
| cd /opt/nezha/agent && ./nezha-agent service uninstall rm -rf /opt/nezha/agent/
|
#cloudflare #github #面板 #docker