# 部署

由于个人服务器的性能和带宽都十分有限,因此本项目推荐自行部署。如有疑问请上issues (opens new window)提问

部署涉及到以下基本编程常识:

  1. 命令行操作
  2. Git (opens new window)
  3. Node.js (opens new window)
  4. npm (opens new window)yarn (opens new window)

部署到可外网访问则可能涉及到:

  1. Nginx (opens new window)
  2. Docker (opens new window)docker-compose (opens new window)
  3. 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 (opens new window)

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=''