# 部署
由于个人服务器的性能和带宽都十分有限,因此本项目推荐自行部署。如有疑问请上issues (opens new window)提问
部署涉及到以下基本编程常识:
- 命令行操作
- Git (opens new window)
- Node.js (opens new window)
- npm (opens new window) 或 yarn (opens new window)
部署到可外网访问则可能涉及到:
- Nginx (opens new window)
- Docker (opens new window) 或 docker-compose (opens new window)
- Redis (opens new window)
# Docker Compose 部署
本项目十分推荐使用Docker Compose部署。Docker Compose部署默认使用redis作为缓存。
# 安装
下载 docker-compose.yml (opens new window)
wget https://raw.githubusercontent.com/CaoMeiYouRen/super-search-hub/master/docker-compose.yml
启动
docker-compose up -d
# 更新
删除旧容器
docker-compose down
然后重复安装步骤
# 添加配置
修改 docker-compose.yml 中的 environment
进行配置
# Docker 部署
本项目第二推荐的是使用docker手动部署
# 安装
运行下面的命令下载 super-search-hub 镜像
docker pull caomeiyouren/super-search-hub
然后运行 super-search-hub 即可
docker run -d --name super-search-hub -p 4365:4365 caomeiyouren/super-search-hub
在浏览器中打开 http://127.0.0.1:4365/ (opens new window),即可访问
您可以使用下面的命令来关闭 RSSHub
docker stop super-search-hub
# 更新
删除旧容器
docker stop super-search-hub
docker rm super-search-hub
然后重复安装步骤
# 添加配置
配置运行在 docker 中的 super-search-hub,最便利的方法是使用 docker 环境变量
以设置缓存时间为 1 小时举例,只需要在运行时增加参数: -e CACHE_AGE=3600
docker run -d --name super-search-hub -p 1200:1200 -e CACHE_AGE=3600 caomeiyouren/super-search-hub
该部署方式不包括 redis 依赖,如有需要请改用 Docker Compose 部署方式或自行部署外部依赖
更多配置项请看 #配置
# 手动部署
部署 super-search-hub
最直接的方式,您可以按照以下步骤将 super-search-hub
部署在您的电脑、服务器或者其他任何地方
# 运行环境要求
- Node.js >= 12
- 本项目开发环境、编译环境(travis-ci)、运行环境(Docker)为 Node 12.18.4
- 所以请尽量在Node 12 环境下使用。后续也将随Node lts 版本的更新而更新
- Node.js多版本管理推荐使用 nvm (opens new window) 或 nvm-windows (opens new window)
# 安装
首先是下载 super-search-hub
的源码
git clone https://github.com/CaoMeiYouRen/super-search-hub.git
cd super-search-hub
下载完成后,需要安装依赖
使用 npm
npm install
或 yarn
yarn
由于众所周知的原因,在中国使用 npm
下载依赖十分缓慢,建议挂一个代理或者考虑使用 NPM 镜像 (opens new window)
执行编译
npm run build
#或
yarn run build
然后在 super-search-hub
文件夹中运行下面的命令就可以启动
npm start
或
yarn start
pm2 start dist/index.js --name super-search-hub
在浏览器中打开 http://127.0.0.1:4365/ (opens new window)
详细使用说明参照 指南 (opens new window),替换所有路由例子中的 https://searchhub.cmyr.ltd/
为 http://127.0.0.1:4365/
即可正常使用
# 添加配置
可以通过设置环境变量来配置 RSSHub
在项目根目录新建一个 .env
文件,每行以 NAME=VALUE
格式添加环境变量,例如
CACHE_TYPE=redis
CACHE_AGE=3600
注意它不会覆盖已有的环境变量,更多规则请参考 dotenv (opens new window)
该部署方式不包括 redis 依赖,如有需要请改用 Docker Compose 部署方式或自行部署外部依赖
更多配置项请看 #配置
# 更新
在 RSSHub
文件夹中运行下面的命令就从 github 仓库拉取最新版本
git pull
然后重复安装步骤
# 配置
通过设置环境变量来配置 super-search-hub
# 端口
PORT=4365
# 根路由
ROOT_URL=''
# 启用多进程(true/false),自动扩展进程到CPU个数,最大化利用服务器性能
ENABLE_CLUSTER=false
# 超时时间(毫秒)
TIMEOUT_MAX_AGE=15000
# token或ip配置后就会开启访问控制
# 以下三项的访问控制关系如下
# token正确和在白名单内都会直接放行
# 若只配置了token则token不正确的都会拒绝
# 若只配置了白名单则不在白名单内的都会拒绝
# 若只配置了黑名单则只有黑名单内的会被拒绝
# 配置访问token,有token的可以跳过限流等权限验证
TOKEN=''
# IP黑白名单,多个IP使用“,”分隔。例如127.0.0.1,localhost
IP_WHITELIST=''
IP_BLACKLIST=''
# 返回的item项数
ITEM_LIMIT=10
# 限流区间,每多少秒
LIMIT_INTERVAL=60
# 限流值,每个区间内可访问多少次
LIMIT_MAX=30
# 每日访问次数上限,超过就拉黑。通过权限验证的不受本项限制
DAY_LIMIT_MAX=1000
#封禁时间(小时)
BAN_TIME=24
# 静态文件缓存时间(秒)
STATIC_MAX_AGE=86400
# 缓存类型 redis/memory
CACHE_TYPE='memory'
# 缓存时间(秒)
CACHE_AGE=300
# cache的最大长度,默认无穷大
CACHE_MAX=''
# Redis配置
REDIS_PORT=6379
REDIS_HOST='127.0.0.1'
REDIS_PASSWORD=''
# Redis前缀
REDIS_KEY_PREFIX='my-redis-'
# 是否阻止爬虫
DISALLOW_ROBOT=true
# 时区,默认东八区
TZ='Asia/Shanghai'
# 错误推送(可选)
# 当服务器出现异常的时候会及时推送。有助于反馈bug,但是使用不当会造成死循环调用,非开发人员慎用
# 钉钉推送
# 群机器人 ACCESS_TOKEN
DINGTALK_ACCESS_TOKEN=''
# 加密 SECRET ,可选,但是建议使用
DINGTALK_SECRET=''