Skip to content

Commit

Permalink
Merge pull request #273 from NZESupB/master
Browse files Browse the repository at this point in the history
更新脚本
  • Loading branch information
hectorqin committed Nov 18, 2022
2 parents 23044fe + a9f62b7 commit 387beb9
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 20 deletions.
20 changes: 15 additions & 5 deletions doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
- [服务器版](#服务器版)
- [Docker版](#docker版)
- [Docker-Compose版(推荐)](#docker-compose版推荐)
- [脚本部署(甲骨文非Ubuntu可能不支持)](#通过脚本一键部署)
- [Nginx反向代理](#nginx反向代理)
- [开发编译](#开发编译)
- [编译脚本](#编译脚本)
Expand Down Expand Up @@ -284,9 +285,8 @@ reader添加环境变量:-e "READER_APP_REMOTEWEBVIEWAPI=http://localhost:8050
#Debian/Ubuntu
apt install docker-compose -y
#CentOS
yum install docker -y
curl -L "https://ghproxy.com/https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
curl -fsSL https://get.docker.com | bash -s docker #国外服务器
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #国内服务器
# 下载项目里的 docker-compose.yaml
wget https://ghproxy.com/https://raw.githubusercontent.com/hectorqin/reader/master/docker-compose.yaml
Expand All @@ -304,20 +304,29 @@ docker-compose stop
# 查看实时日志
docker logs -f reader
# 自行导入远程书源(打开链接后复制网址导入即可)
https://legado.pages.dev
# 手动更新
docker-compose pull && docker-compose up -d
```
### 通过脚本一键部署
```shell
# 此脚本对甲骨文非Ubuntu系统,CentOS9可能不兼容。建议网上手动搜索
#curl
bash <(curl -L -s https://ghproxy.com/https://raw.githubusercontent.com/hectorqin/reader/master/reader.sh)
#wget
bash <(wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/hectorqin/reader/master/reader.sh)
```
## Nginx反向代理(如果有域名可以考虑80端口复用)
```shell
# 此教程仅限非宝塔等各种面板使用
# 宝塔等各种面板不适用下列教程
# Debian/Ubuntu
apt install nginx -y
# CentOS
Expand All @@ -334,7 +343,8 @@ server {
listen 80;
server_name 域名;
#开启ssl解除注释
#不使用宝塔获取证书脚本 https://github.com/Misaka-blog/acme-1key
# SSL证书获取
# https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E
#listen 443 ssl;
#ssl_certificate 证书.cer;
#ssl_certificate_key 证书.key;
Expand Down
4 changes: 0 additions & 4 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@ services:
# 阅读官方书源 : [https://legado.pages.dev](https://legado.pages.dev) 或者 [http://legado.git.llc](https://legado.pages.dev) 点击打开连接,添加远程书源即可
# 公众号汇总 : [https://mp.weixin.qq.com/s/5t8nfSnRfHjJNAvT76fA_A](https://mp.weixin.qq.com/s/5t8nfSnRfHjJNAvT76fA_A)
# 手动更新方式 : 在此文件所在的目录下执行 docker-compose pull && docker-compose up -d
# Debian 10+/Ubuntu18+ 一键安装命令 浏览器打开ip:4396即可,国内服务器需手动放行映射端口(默认为4396
# cd /home && wget https://raw.nxnow.top/NZESupB/Profile/main/dockercompose/reader/docker-compose.yml && apt update && apt install docker-compose -y && docker-compose up -d
# CentOS7+ 一键安装命令 (未测试)
# cd /home && wget https://raw.nxnow.top/NZESupB/Profile/main/dockercompose/reader/docker-compose.yml && yum update && yum install docker && curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose && docker-compose up -d
reader:
#image: hectorqin/reader # 普通镜像
image: hectorqin/reader:openj9-latest # Openj9镜像,arm64架构或小内存机器优先使用
Expand Down
96 changes: 85 additions & 11 deletions reader.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ plain='\033[0m'

file_dir=""
remotePort=""
isMultiUser=""
adminPassword=""
registerCode=""
strTrue="true"
dockerImages=""

# CheckRoot
if [[ $EUID -ne 0 ]]; then
Expand Down Expand Up @@ -62,21 +67,41 @@ fi

install_dockercompose() {
if [[ x"${release}" == x"centos" ]]; then
yum update && yum install wget curl docker -y
yum install wget curl -y
echo -e "${green} 正在移除CentOS遗留无效Docker文件 ${plain}"
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -y
echo -e "${green} 正在安装Docker ${plain}"
yum install yum-utils device-mapper-persistent-data lvm2 -y
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
echo -e "${green} 正在启动Docker ${plain}"
systemctl start docker
systemctl restart docker
systemctl enable docker
echo -e "${green} 正在安装docker-compose ${plain}"
curl -L "https://ghproxy.com/https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
else
echo -e "${green} 正在安装docker-compose ${plain}"
apt update && apt install wget curl docker-compose -y
fi
}

install_reader() {
mkdir ${orgin_file_dir}
mkdir -p ${orgin_file_dir}/storage/data/default
cd ${orgin_file_dir}
rm docker-compose*
wget https://ghproxy.com/https://raw.githubusercontent.com/hectorqin/reader/master/docker-compose.yml
echo -e "${green} 正在配置默认书源 ${plain}"
wget https://legado.pages.dev/sy-yc.json -O storage/data/default/bookSource.json
echo -e "${green} 正在配置docker变量 ${plain}"
sed -i "s/\/home\/reader/${file_dir}/" docker-compose.yml
sed -i "s/4396/${remotePort}/" docker-compose.yml
sed -i "s/openj9-latest/${dockerImages}/" docker-compose.yml
# 多用户
sed -i "s/READER_APP_SECURE\=true/READER_APP_SECURE\=${isMultiUser}/" docker-compose.yml
sed -i "s/adminpwd/${adminPassword}/" docker-compose.yml
sed -i "s/registercode/${registerCode}/" docker-compose.yml
echo -e "${green} 准备启动 ${plain}"
# 远程webview
docker-compose up -d
}
Expand All @@ -89,12 +114,12 @@ getRemotePort () {
fi
if [ "$remotePort" -gt 0 ] 2>/dev/null;then
if [[ $remotePort -lt 0 || $remotePort -gt 65535 ]];then
echo -e "端口号不正确,请输入0-65535"
echo -e "${red} 端口号不正确,请输入0-65535${plain}"
getRemotePort
exit 0
fi
else
echo -e "端口号不正确,请输入0-65535"
echo -e "${red} 端口号不正确,请输入0-65535${plain}"
getRemotePort
exit 0
fi
Expand All @@ -103,26 +128,75 @@ getRemotePort () {

getfileDir () {
echo -e "${green} 请输入数据存放目录,例如 /home/reader : ${plain}"
read -p "不填默认为/home/reader: " file_dir
read -p "不填默认为/home/reader : " file_dir
if [[ -z "$file_dir" ]];then
file_dir="/home/reader"
fi
orgin_file_dir=$file_dir
file_dir=${file_dir//\//\\\/}
}

getMultiUser () {
echo -e "${green} 是否需要开启多用户 : ${plain}"
read -p "填0不开启,不填开启 : " isMultiUser
if [[ -z "$isMultiUser" ]];then
isMultiUser="true"
else
isMultiUser="false"
fi
}

getPwdOrCode () {
echo -e "${green} 请输入管理密码,用于加载用户空间 : ${plain}"
read -p "建议修改此参数,默认为adminpwd : " adminPassword
if [[ -z "$adminPassword" ]];then
adminPassword="adminpwd"
fi
echo -e "${green} 请输入邀请码,用于注册使用 : ${plain}"
read -p "不填默认为空 : " registerCode
if [[ -z "$registerCode" ]];then
registerCode=""
fi
}

getDockerImages () {
echo -e "${green} 请输入需要的镜像 arm或者小内存(1G)机器建议openj9,其余建议基础镜像 : ${plain}"
read -p "不输入为基础镜像,输入其他值为openj9 : " dockerImages
if [[ -z "$dockerImages" ]];then
dockerImages="latest"
else
dockerImages="openj9-latest"
fi
}

Server_IP=''
Public_IP=''
getIpaddr () {
Server_IP=`ip addr | grep 'state UP' -A2 | grep inet | egrep -v '(127.0.0.1|inet6|docker)' | awk '{print $2}' | tr -d "addr:" | head -n 1 | cut -d / -f1`
Server_IP=$(hostname -I | awk -F " " '{printf $1}')
Public_IP=$(curl http://pv.sohu.com/cityjson 2>> /dev/null | awk -F '"' '{print $4}')
}

echo -e "${green}开始安装${plain}"
echo -e "${green}准备部署reader${plain}"
echo -e "${green}甲骨文官方系统可能并不适用此脚本,本脚本仅测试CentOS7,8,Ubuntu20+,Debian10+${plain}"
install_dockercompose
getfileDir
getRemotePort
getMultiUser
if [ $isMultiUser == "true" ]; then
getPwdOrCode
fi
getDockerImages
install_reader
getIpaddr
echo -e "${green}初步部署完成,国内服务器请在控制台打开端口${remotePort}${plain}"
echo -e "${green}浏览器打开网页${plain} http://${Server_IP}:${remotePort}"
echo -e "${green}如需修改其他配置请前往${orgin_file_dir}根据注释修改docker-compose.yml文件后${plain}"
echo -e "${green}通过命令docker-compose up -d 重启即可${plain}"

echo -e "${green}初步部署完成,已配置默认书源,国内服务器等有控制台面板的服务器厂商请手动在控制台打开reader所需的端口${remotePort}${plain}"
if [ $Server_IP == $Public_IP ];then
echo -e "${green}网址:${plain} http://${Server_IP}:${remotePort}"
else
echo -e "${green}内网网址:${plain} http://${Server_IP}:${remotePort}"
echo -e "${green}公网网址:${plain} http://${Public_IP}:${remotePort}"
fi

echo -e "${green}如需修改其他配置请前往 cd${orgin_file_dir} 根据注释修改 vim docker-compose.yml文件后${plain}"
echo -e "${green}先自行学习vim用法,否者建议使用sftp或WindTerm等ssh自带sftp的软件直接打开编辑${plain}"
echo -e "${green}修改后前往 cd${orgin_file_dir} 后通过命令docker-compose up -d 重启即可${plain}"

0 comments on commit 387beb9

Please sign in to comment.