Skip to content

Commit

Permalink
Merge pull request #272 from NZESupB/master
Browse files Browse the repository at this point in the history
增加部署脚本
  • Loading branch information
hectorqin committed Nov 15, 2022
2 parents 7cc2bf4 + ed39789 commit 23044fe
Show file tree
Hide file tree
Showing 4 changed files with 215 additions and 11 deletions.
37 changes: 30 additions & 7 deletions doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -278,18 +278,23 @@ reader添加环境变量:-e "READER_APP_REMOTEWEBVIEWAPI=http://localhost:8050
### Docker-Compose版(推荐)
```bash
#安装docker-compose
```shell
#腾讯云,阿里云,华为云,甲骨文等服务器提供商需在控制台面板手动关闭防火墙并放行端口
#安装docker 及 docker-compose
#Debian/Ubuntu
apt install docker-compose -y
#CentOS
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
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
docker-compose --version
# 下载项目里的 docker-compose.yaml
wget https://raw.githubusercontent.com/hectorqin/reader/master/docker-compose.yaml
wget https://ghproxy.com/https://raw.githubusercontent.com/hectorqin/reader/master/docker-compose.yaml
# 根据 docker-compose.yaml 里面的注释编辑所需配置
vim docker-compose.yaml
# 保存
esc
:wq
# 启动 docker-compose
docker-compose up -d
Expand All @@ -303,10 +308,28 @@ docker logs -f reader
docker-compose pull && docker-compose up -d
```
## Nginx反向代理
### 通过脚本一键部署
```shell
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
yum install nginx -y
vim /etc/nginx/conf.d/reader.conf
将下面代码复制进reader.conf后,修改域名输入
esc
:wq
保持即可
```
```nginx
# 此文件放入 conf.d目录下,一般可用 touch /etc/nginx/conf.d/reader.conf 创建
server {
listen 80;
server_name 域名;
Expand Down
7 changes: 3 additions & 4 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
version: '3.1'
services:
# reader 在线阅读
# 第三方在线演示(服务器位于日本):[https://reader.nxnow.top](https://reader.nxnow.top) 测试账号/密码分别为guest/guest123,也可自行创建账号添加书源,不定期删除长期未登录账号
# 源仓库书源 : yckceo.com/yuedu/shuyuan/index.html
# 阅读官方书源 : https://www.legado.top/blog/book-source
# 喵公子书源 : http://shuyuan.miaogongzi.net/shuyuan/1623355431.json
# 公开服务器(服务器位于日本):[https://reader.nxnow.top](https://reader.nxnow.top) 测试账号/密码分别为guest/guest123,也可自行创建账号添加书源,不定期删除长期未登录账号(2周)
# 阅读官方书源 : [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
reader:
image: hectorqin/reader
Expand Down
54 changes: 54 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
version: '3.1'
services:
# reader 在线阅读
# 公开服务器(服务器位于日本):[https://reader.nxnow.top](https://reader.nxnow.top) 测试账号/密码分别为guest/guest123,也可自行创建账号添加书源,不定期删除长期未登录账号(2周)
# 阅读官方书源 : [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架构或小内存机器优先使用
container_name: reader #容器名 可自行修改
restart: always
ports:
- 4396:8080 #4396端口映射可自行修改,8080请勿修改
volumes:
- /home/reader/logs:/logs #log映射目录 /home/reader/logs 映射目录可自行修改
- /home/reader/storage:/storage #数据映射目录 /home/reader/storage 映射目录可自行修改
environment:
- SPRING_PROFILES_ACTIVE=prod
#- READER_APP_USERLIMIT=50 #用户上限,默认且最大值为50
- READER_APP_USERBOOKLIMIT=200 #用户书籍上限,默认200
- READER_APP_CACHECHAPTERCONTENT=true #开启缓存章节内容
- READER_APP_REMOTEWEBVIEWAPI=http://readerwebview:8050 #启用webview(若下方readerwebview容器不开启需注释此行
# ↓多用户模式配置↓
- READER_APP_SECURE=true #开启登录鉴权,开启后将支持多用户模式
- READER_APP_SECUREKEY=adminpwd #管理员密码 建议修改
- READER_APP_INVITECODE=registercode #注册邀请码 建议修改,如不需要可注释或删除
# 如需支持webview书源,打开(占用较大,不需要可加 # 注释)
readerwebview:
image: hectorqin/remote-webview
container_name: readerwebview
restart: always
environment:
- TZ=Asia/Shanghai
# 自动更新docker镜像
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: reader readerwebview watchtower --cleanup --schedule "0 0 4 * * *"
# 仅更新reader与watchtower容器,如需其他自行添加 '容器名' ,如:reader watchtower nginx
# --cleanup 更新后清理旧版本镜像
# --schedule 自动检测更新 crontab定时(限定6位crontab) 此处代表凌晨4点整
volumes:
reader:
readerwebview:
128 changes: 128 additions & 0 deletions reader.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
#!/bin/bash

red='\033[0;31m'
green="\033[32m"
yellow='\033[0;33m'
plain='\033[0m'

file_dir=""
remotePort=""

# CheckRoot
if [[ $EUID -ne 0 ]]; then
echo "请使用root用户登录!" 1>&2
exit 1
fi

# CheckSystem
if [[ -f /etc/redhat-release ]]; then
release="centos"
elif cat /etc/issue | grep -q -E -i "debian"; then
release="debian"
elif cat /etc/issue | grep -q -E -i "ubuntu"; then
release="ubuntu"
elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
release="centos"
elif cat /proc/version | grep -q -E -i "debian"; then
release="debian"
elif cat /proc/version | grep -q -E -i "ubuntu"; then
release="ubuntu"
elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
release="centos"
fi
bit=$(uname -m)
if test "$bit" != "x86_64"; then
bit="arm64"
else bit="amd64"
fi

os_version=""

# os version
if [[ -f /etc/os-release ]]; then
os_version=$(awk -F'[= ."]' '/VERSION_ID/{print $3}' /etc/os-release)
fi
if [[ -z "$os_version" && -f /etc/lsb-release ]]; then
os_version=$(awk -F'[= ."]+' '/DISTRIB_RELEASE/{print $2}' /etc/lsb-release)
fi

if [[ x"${release}" == x"centos" ]]; then
if [[ ${os_version} -le 6 ]]; then
echo -e "${red}请使用 CentOS 7 或更高版本的系统!${plain}\n" && exit 1
fi
elif [[ x"${release}" == x"ubuntu" ]]; then
if [[ ${os_version} -lt 16 ]]; then
echo -e "${red}请使用 Ubuntu 16 或更高版本的系统!${plain}\n" && exit 1
fi
elif [[ x"${release}" == x"debian" ]]; then
if [[ ${os_version} -lt 9 ]]; then
echo -e "${red}请使用 Debian 9 或更高版本的系统!${plain}\n" && exit 1
fi
fi

install_dockercompose() {
if [[ x"${release}" == x"centos" ]]; then
yum update && yum install wget curl 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
else
apt update && apt install wget curl docker-compose -y
fi
}

install_reader() {
mkdir ${orgin_file_dir}
cd ${orgin_file_dir}
rm docker-compose*
wget https://ghproxy.com/https://raw.githubusercontent.com/hectorqin/reader/master/docker-compose.yml
sed -i "s/\/home\/reader/${file_dir}/" docker-compose.yml
sed -i "s/4396/${remotePort}/" docker-compose.yml
# 多用户
# 远程webview
docker-compose up -d
}

getRemotePort () {
echo "请输入部署端口,例如 4396"
read -p "不填默认为4396: " remotePort