一.docker和docker-compose
1、服务器安装docker-compose
安装docker
sudo yum check-update
sudo yum -y install docker-ce
sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker
2、openwrt(默认预置了docker-compose)安装docker-compose
opkg update
opkg install python3
opkg install python3-pip
pip install docker-compose==1.23.2
pip install docker-compose
3、群晖已默认预置了docker-compose
二.portainer
1、portainer-ce汉化版一键自动安装代码
群晖X86 CPU一键安装
sh -c "$(curl -kfsSl https://gitee.com/expin/public/raw/master/onex86.sh)"
N1等ARM64架构CPU一键安装
sh -c "$(curl -kfsSl https://gitee.com/expin/public/raw/master/one.sh)"
默认9999端口,重新安装portainer。
手动安装portainer
docker run -d -p 8000:8000 -p 9999:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer:/data portainer/portainer-ce
2、为了让openwrt上的portainer能够接管群晖的portainer,需要开通群晖上portainer的对外访问权限,让群晖的docker服务允许通过TCP进行连接
用SSH连到群晖的命令行上,编辑/var/packages/Docker/etc/dockerd.json这个文件:
sudo vi /var/packages/Docker/etc/dockerd.json
添加如下代码:
"hosts" : [ "tcp://192.168.50.50:2375", "unix:///var/run/docker.sock" ],
3、在openwrt中添加群晖的oportainer
打开IP:9999,端点→添加端点
三.青龙和ninja
1、openwrt和主机 安装青龙
docker run -dit \
-v /opt/docker/qinglong/config:/ql/config \
-v /opt/docker/qinglong/log:/ql/log \
-v /opt/docker/qinglong/db:/ql/db \
-v /opt/docker/qinglong/scripts:/ql/scripts \
-v /opt/docker/qinglong/repo:/ql/repo \
-v /opt/docker/qinglong/raw:/ql/raw \
-v /opt/docker/qinglong/jbot:/ql/jbot \
--network host \
-e ENABLE_HANGUP=true \
-e ENABLE_TG_BOT=true \
-e ENABLE_WEB_PANEL=true \
--name qinglong \
--hostname qinglong \
--restart always \
docker-compose代码:
---
version: "2"
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:
- /opt/docker/qinglong/config:/ql/config
- /opt/docker/qinglong/log:/ql/log
- /opt/docker/qinglong/db:/ql/db
- /opt/docker/qinglong/repo:/ql/repo
- /opt/docker/qinglong/raw:/ql/raw
- /opt/docker/qinglong/scripts:/ql/scripts
- /opt/docker/qinglong/jbot:/ql/jbot
- /opt/docker/qinglong/ninja:/ql/ninja
2、群晖 安装青龙
docker run -dit \
-v /volume1/docker/qinglong/config:/ql/config \
-v /volume1/docker/qinglong/log:/ql/log \
-v /volume1/docker/qinglong/db:/ql/db \
-v /volume1/docker/qinglong/scripts:/ql/scripts \
-v /volume1/docker/qinglong/repo:/ql/repo \
-v /volume1/docker/qinglong/raw:/ql/raw \
-v /volume1/docker/qinglong/jbot:/ql/jbot \
--network host \
-e ENABLE_HANGUP=true \
-e ENABLE_TG_BOT=true \
-e ENABLE_WEB_PANEL=true \
--name qinglong \
--hostname qinglong \
--restart always \
docker-compose代码:
---
version: "2"
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:
- /volume1/docker/qinglong/config:/ql/config
- /volume1/docker/qinglong/log:/ql/log
- /volume1/docker/qinglong/db:/ql/db
- /volume1/docker/qinglong/repo:/ql/repo
- /volume1/docker/qinglong/raw:/ql/raw
- /volume1/docker/qinglong/scripts:/ql/scripts
- /volume1/docker/qinglong/jbot:/ql/jbot
- /volume1/docker/qinglong/ninja:/ql/ninja
3、登录qinglong
登录ip:5700 重置一下密码。
/opt/docker/qinglong
进入容器
ql为容器名 本文机器容器名为qinglong
docker exec -it qinglong bash
最主要的是下面安装
执行以下命令
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
打开青龙configs文件夹的extra.sh文件
将以下内容粘贴进去。
cd /ql/ninja/backend
git pull -f
pnpm install
pm2 start
cp sendNotify.js /ql/scripts/sendNotify.js
Ninja更新方法
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)
config.sh 修改2处位置
## 由于github仓库拉取较慢,所以会默认添加代理前缀,如不需要请移除
GithubProxyUrl=""
## 设置定时任务执行的超时时间,默认1h,后缀"s"代表秒(默认值), "m"代表分, "h"代表小时, "d"代表天
CommandTimeoutTime="1h"
## 设置批量执行任务时的并发数,默认同时执行5个任务
MaxConcurrentNum="5"
## 在运行 task 命令时,随机延迟启动任务的最大延迟时间
## 默认给javascript任务加随机延迟,如 RandomDelay="300" ,表示任务将在 1-300 秒内随机延迟一个秒数,然后再运行,取消延迟赋值为空
RandomDelay="300"
## 如果你自己会写shell脚本,并且希望在每次运行 ql update 命令时,额外运行你的 shell 脚本,请赋值为 "true",默认为true
EnableExtraShell="true"
## 是否自动启动bot,默认不启动,设置为true时自动启动,目前需要自行克隆bot仓库所需代码,存到ql/repo目录下,文件夹命名为dockerbot
AutoStartBot=""
## 安装bot依赖时指定pip源,默认使用清华源,如不需要源,设置此参数为空
PipMirror="https://pypi.tuna.tsinghua.edu.cn/simple"
## 通知环境变量
## 1. Server酱
## https://sct.ftqq.com
## 下方填写 SCHKEY 值或 SendKey 值
export PUSH_KEY="SCT22411TG9cNqivT5TZimHDywn8dqpgO"
4、配置更新文件
推荐安装这一个就够了,在青龙右上角里面任务里添加。 时间写早上8点更新:
0 8 * * *
ql repo https://github.com/yuannian1112/jd_scripts.git "jd_|jx_|getJDCookie" "activity|backUp" "^jd[^_]|USER|utils" "main"
备用,暂时不添加
ql repo https://github.com/Annyoo2021/scripts.git "jd_|jx_|long_|getJDCookie" "activity|backUp" "^jd[^_]|USER|ZooFaker_Necklace|JDJRValidator_Pure|JDJRValidator" "main"
5、京东扫码登录
IP:5701
四.mariadb和nextcloud创建
1、MariaDB创建
先建个mynet网络
然后在堆栈里面创建代码
---
version: "2"
services:
mariadb:
image: linuxserver/mariadb
container_name: mariadb
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=password
- TZ=Asia/Shanghai
volumes:
- /www/server/mariadb:/config
ports:
- 3306:3306
networks:
- mynet
restart: unless-stopped
adminer:
image: adminer
container_name: adminer
environment:
- ADMINER_DEFAULT_SERVER=mariadb
ports:
- 9091:9091
networks:
- mynet
restart: unless-stopped
networks:
mynet:
external:
name: mynet
2、访问adminer,新建nextcloud
创建数据库,格式选utf8mb4_general_c
3、创建nextcloud
---
version: "2"
services:
nextcloud:
image: linuxserver/nextcloud
container_name: linuxservernextcloud
environment:
- TZ=Asia/Shanghai
volumes:
- /www/server/nextcloud/config:/config
- /www/server/nextcloud/data:/data
networks:
- mynet
ports:
- 5000:443
restart: unless-stopped
networks:
mynet:
external:
name: mynet
4、登录nextcloud
https://ip:5000/login
数据库那里选中间MySQL/MariaDB
root
password
nextcloud
mariadb
为了方便域名访问,在/www/server/nextcloud/config/config.php中添加
1 => 'k.666666.xyz',
5、MariaDB 数据库和nextcloud的优化
在数据库容量小于1GB时,且内存足够的情况下:
MariaDB 数据库优化
编辑/www/server/mariadb/custom.cnf
[mysqld]
innodb_buffer_pool_size=1G
innodb_io_capacity=4000
PHP-FPM 的优化
编辑/www/server/nextcloud/config/php/www2.conf
[www]
pm = dynamic
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18