青龙面板2.8+Ninja从零安装教程

青龙面板2.8+Ninja从零安装教程

烟雨
2021-07-28 / 17 评论 / 7,033 阅读 / 正在检测是否收录...

Ninja介绍

Ninja是@MoonBegonia大佬开发的一个开源安全的青龙面板扫码工具。

JDC被曝出安全漏洞,建议尽快更换Ninja使用!

注意

新手建议保存好ck,重置系统从0安装。教程从0开始。

第一步 安装docker,docker-compose。

#安装docker
sudo yum check-update
curl -sSL https://get.daocloud.io/docker | sh
sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker

安装完docker以后 安装docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

不想重置系统就删除容器

 docker stop $(docker ps -a -q) //  stop停止所有容器 
 docker rm $(docker ps -a -q) //   remove删除所有容器
第二步

在root文件夹下创建一个目录,目录内创建docker-compose.yml

填入一下内容

version: "3"
services:
  qinglong:
    image: whyour/qinglong:latest
    container_name: qinglong
    restart: unless-stopped
    tty: true
    ports:
      - 5700:5700
      - 5701:5701
    environment:
      - ENABLE_HANGUP=true
      - ENABLE_WEB_PANEL=true
    volumes:
      - ./config:/ql/config
      - ./log:/ql/log
      - ./db:/ql/db
      - ./repo:/ql/repo
      - ./raw:/ql/raw
      - ./scripts:/ql/scripts
      - ./jbot:/ql/jbot
      - ./ninja:/ql/ninja
    labels:
      - com.centurylinklabs.watchtower.enable=false

命令行里cd进docker-compose.yml所在的文件夹,执行命令

docker-compose up -d
run模式
docker run -dit \
  -v $PWD/ql/config:/ql/config \
  -v $PWD/ql/log:/ql/log \
  -v $PWD/ql/db:/ql/db \
  -v $PWD/ql/repo:/ql/repo \
  -v $PWD/ql/raw:/ql/raw \
  -v $PWD/ql/scripts:/ql/scripts \
  -v $PWD/ql/jbot:/ql/jbot \
  -v $PWD/ql/ninja:/ql/ninja \
  -p 5700:5700 \
  -p 5701:5701 \
  --name qinglong \
  --hostname qinglong \
  --restart unless-stopped \
  whyour/qinglong:latest

然后登录ip:5700 重置一下密码。

进入容器

ql为容器名 本文机器容器名为qinglong

docker exec -it qinglong bash

为了打击代挂,大佬限制扫码数量为20。感觉有点少。。所以我修改成了一个很舒服的数字

执行以下命令

git clone https://github.com/MoonBegonia/ninja.git /ql/ninja
cd /ql/ninja/backend
pnpm install
pm2 start
cp sendNotify.js /ql/scripts/sendNotify.js
国内机器

git clone https://ghproxy.com/https://github.com/MoonBegonia/ninja.git /ql/ninja
cd /ql/ninja/backend
pnpm install
pm2 start
cp sendNotify.js /ql/scripts/sendNotify.js

第三步

打开青龙configs文件夹的extra.sh文件

将以下内容粘贴进去。

cd /ql/ninja/backend
git pull -f
pnpm install
pm2 start
cp sendNotify.js /ql/scripts/sendNotify.js

容器外

此种方式需要宿主机安装 node pnpm 等环境,不做过多介绍。

使用此种方法无法跟随青龙一起启动,无法发送扫码通知,请知悉。

git clone https://github.com/MoonBegonia/ninja.git
cd ninja/backend
pnpm install
# 复制 sendNotify.js 到容器内 scripts 目录,`qinglong` 为容器名
sudo docker cp sendNotify.js qinglong:/ql/scripts/sendNotify.js
cp .env.example .env
# 修改env文件
vi .env
node app.js

.env 文件中添加以下内容:

QL_DIR=qinglong 容器的本地路径
QL_URL=http://localhost:5700

node app.js 想要在后台运行可以使用 & nohup screen 等命令。

Ninja 环境变量
目前支持的环境变量有:

- `ALLOW_ADD`: 是否允许添加账号 不允许添加时则只允许已有账号登录(默认 `true`)
- `ALLOW_NUM`: 允许添加账号的最大数量(默认 `40`)
- `NINJA_PORT`: Ninja 运行端口(默认 `5701`)
- `NINJA_NOTIFY`: 是否开启通知功能(默认 `true`)
- `NINJA_UA`: 自定义 UA,默认为随机
##配置方式:
cd /ql/ninja/backend
cp .env.example .env
vi .env
pm2 start

修改完成后需要 pm2 start 重启生效 !!!

sendNotify 环境变量
  • Ninja目前支持的环境变量有:
  • ALLOW_ADD: 是否允许添加账号 不允许添加时则只允许已有账号登录(默认 true)
  • ALLOW_NUM: 允许添加账号的最大数量(默认 40)
  • NINJA_PORT: Ninja 运行端口(默认 5701)
  • NINJA_NOTIFY: 是否开启通知功能(默认 true)
  • NINJA_UA: 自定义 UA,默认为随机
此环境变量在青龙中配置!!!
NOTIFY_SKIP_LIST: 通知黑名单,使用 & 分隔,例如 东东乐园&东东萌宠;

那么老样子打开Finalshell 按顺序复制粘贴代码

docker exec -it qinglong bash
cd /ql/ninja/backend
cp .env.example .env

然后在文件管理器找到.env文件

Untitled.png

按需修改内容保存。

Untitled1.png

修改完文件记得

pm2 start

Ninja更新方法

那么老样子打开Finalshell 按顺序复制粘贴代码

docker exec -it qinglong bash
cd /ql/ninja/backend
git pull
pm2 start

注意事项

重启后务必执行一次 ql extra 保证 Ninja 配置成功。

更新 Ninja 只需要在容器中 ninja/backend 目录执行 git pull 然后 pm2 start

Qinglong 需要在登录状态(auth.json 中有 token)

常见问题

Q:为什么我 git pull 失败?
A:一般是修改过文件,先运行一次 git checkout . 再 gi t pull。

Q:为什么访问不了?
A:一般为端口映射错误/失败,请自行检查配置文件。

Q:为什么访问白屏?
A:使用现代的浏览器,而不是古代的。

关于Ninja弹窗通知

提供了弹窗的设置教程

在容器内执行

## 去除 Ninja 弹窗
sed -i "s/\(.*\){.\+提醒.\+\"},\(.*\)/\1\2/" /ql/ninja/backend/static/assets/index.5f39b46a.js

## 还原 Ninja 弹窗
sed -i "s/l,{footer/l,{title:\"Ninja 提醒您\",modelValue:e.dialogVisible,\"onUpdate:modelValue\":a[3]||(a[3]=a=>e.dialogVisible=a),center:\"\",\"destroy-on-close\":\"\",\"custom-class\":\"notice-dialog\",top:\"25vh\"},{footer/" /ql/ninja/backend/static/assets/index.5f39b46a.js

项目地址:https://github.com/MoonBegonia/ninja

8

评论 (17)

取消
  1. 头像
    秀儿
    Windows 10 · Google Chrome

    ninjia跑路了 扫码坏掉了

    回复
  2. 头像
    neilyo
    MacOS · Google Chrome

    ninja的弹窗可以改吗

    回复
  3. 头像
    MinanaYa
    Windows 10 · Google Chrome

    修改过文件的要先执行git stash才能git pull
    不用推倒青龙重建的,只要改一下映射也是很快的

    回复
  4. 头像
    豆豆
    Windows 10 · FireFox

    开始执行 京东多合一签到总是报错咋回事老大
    internal/modules/cjs/loader.js:905
    throw err;
    ^

    Error: Cannot find module 'png-js'
    Require stack:
    - /ql/scripts/utils/JDJRValidator_Pure.js
    - /ql/scripts/utils/JD_DailyBonus.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
    at Function.Module._load (internal/modules/cjs/loader.js:746:27)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object. (/ql/scripts/utils/JDJRValidator_Pure.js:11:13)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:14)
    at Module.require (internal/modules/cjs/loader.js:974:19) {
    code: 'MODULE_NOT_FOUND',
    requireStack: [
    '/ql/scripts/utils/JDJRValidator_Pure.js',
    '/ql/scripts/utils/JD_DailyBonus.js'
    ]
    }
    京东签到脚本执行异常:Error: Command failed: /usr/local/bin/node ./utils/JD_DailyBonus.js >> ./result.txt
    internal/modules/cjs/loader.js:905
    throw err;
    ^

    Error: Cannot find module 'png-js'
    Require stack:
    - /ql/scripts/utils/JDJRValidator_Pure.js
    - /ql/scripts/utils/JD_DailyBonus.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
    at Function.Module._load (internal/modules/cjs/loader.js:746:27)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object. (/ql/scripts/utils/JDJRValidator_Pure.js:11:13)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:14)
    at Module.require (internal/modules/cjs/loader.js:974:19) {
    code: 'MODULE_NOT_FOUND',
    requireStack: [
    '/ql/scripts/utils/JDJRValidator_Pure.js',
    '/ql/scripts/utils/JD_DailyBonus.js'
    ]
    }

    回复
    1. 头像
      莫凌
      Windows 10 · Google Chrome
      @ 豆豆

      这不是我要做的事png-js依赖没安装

      回复
  5. 头像
    老林
    Windows 10 · Google Chrome

    容器部署完后在执行完这些命令
    git clone https://github.com/MoonBegonia/ninja.git /ql/ninja
    cd /ql/ninja/backend
    pnpm install
    pm2 start
    cp sendNotify.js /ql/scripts/sendNotify.js
    以后,重启容器后就只能访问5701端口的ninja了,访问5700端口的青龙面版直接403 Forbidden了,大佬如何解决?

    回复
  6. 头像
    无名
    Windows 10 · Google Chrome

    老哥,80端口不能做为扫码端口吗,我在浏览器打不开,只有在linux里可以使用location:80或者127.0.0.1:80能

    回复
    1. 头像
      莫凌
      Windows 10 · Google Chrome
      @ 无名

      改改代码说不定可以,要想那样的话我建议你反代

      回复
  7. 头像
    小萝卜
    Windows 10 · Google Chrome

    老哥,请问一下ninja里面没有这个文件index.5f39b46a.js,咋去除弹窗啊

    回复
    1. 头像
      烟雨 作者
      Windows 10 · Google Chrome
      @ 小萝卜

      怎么没有这个文件
      backend/static/assets/
      这个目录看看

      回复
      1. 头像
        小萝卜
        Windows 10 · Google Chrome
        @ 烟雨

        index.1a8beboejs.gz

        index.1a8beb0ejs

        index.fdd9895.css.gz

        index.cdd9895.css
        目录里只有这四个文件,老哥

        回复
  8. 头像
    浅羽
    Android · Google Chrome

    老哥,有一个js脚本怎么添加运行呢,憨憨发言

    回复
  9. 头像
    啦啦啦
    MacOS · Google Chrome

    能实现ninja多容器吗

    回复
  10. 头像
    jinyuan
    Windows 10 · Google Chrome

    大佬你好,安装教程搭建出现二维码,京东扫码也显示请升级,但就是扫不上青龙服务器,请问这是什么情况

    回复
  11. 头像
    试试
    Windows 10 · Google Chrome

    如何降级青龙 啊

    回复
  12. 头像
    Frey
    iPhone · Safari

    用的啥主题啊,挺好看的

    回复
    1. 头像
      烟雨 作者
      Windows 10 · Google Chrome
      @ Frey

      joe

      回复