sidebar |
---|
auto |
部署 RSSHub 需要基本的计算机编程常识, 如果您在部署过程中遇到无法解决的问题请到 issues 寻找类似的问题或 向我们提问, 我们会尽快给您答复.
部署涉及到以下基本编程常识:
- 命令行操作
- Git
- Node.js >= 8.0.0
- npm 或 yarn
部署到可外网访问则可能涉及到:
部署 RSSHub
最直接的方式, 您可以按照以下步骤将 RSSHub
部署在您的电脑、服务器或者其他任何地方.
首先是下载 RSSHub
的源码, 请执行下列命令.
$ git clone https://github.com/DIYgod/RSSHub.git
$ cd RSSHub
下载完成后, 需要安装依赖.
使用 npm
$ npm install
或 yarn
$ yarn
由于众所周知的原因, 在中国使用 npm
下载依赖十分缓慢, 建议挂一个代理或者考虑使用 NPM 镜像.
:::
在 RSSHub
文件夹中运行下面的命令就可以启动.
$ npm start
或
$ yarn start
在浏览器中打开 http://127.0.0.1:1200/, enjoy it! ✅
::: tip tip
详细使用说明参照 指南. 替换所有路由例子中的 https://rsshub.app/
为 http://localhost:1200
即可正常使用.
:::
在 RSSHub
文件夹中运行下面的命令就从 github 仓库拉取最新版本.
$ git pull
可以通过修改 lib/config.js
或者设置环境变量来配置 RSSHub.
如何设置环境变量
Windows 系统在 cmd.exe 中运行 $ set PORT=1000
macOS & Linux 运行 $ PORT=1000
再运行 $ npm start
启动 RSSHub 即可将监听端口设置为 1000
.
此处设置的环境变量在关闭终端后就会被清除, 如果您想保存这些配置可以编写一个简单的 批处理文件 或 shell.
更多配置项请看 应用配置
RSSHub 默认会有 5 分钟的缓存, 默认缓存是存放在内存中的. RSSHub 还支持 Redis 数据库缓存.
::: tip 提示
除非流量特别大或者您需要建立分布式集群, 否则不需要 Redis 缓存.
:::
修改配置项 CACHE_TYPE
为 redis
, RSSHub 将使用默认地址 redis://localhost:6379/
连接 Redis, 如果需要修改地址请看 应用配置.
运行下面的命令下载 RSSHub 镜像.
$ docker pull diygod/rsshub
然后运行 RSSHub 即可
$ docker run -d --name rsshub -p 1200:1200 diygod/rsshub
在浏览器中打开 http://127.0.0.1:1200/, enjoy it! ✅
您可以使用下面的命令来关闭 RSSHub.
$ docker stop rsshub
配置运行在 docker 中的 RSSHub, 最便利的方法是使用 docker 环境变量.
以设置缓存时间为 1 小时举例, 只需要在运行时增加参数: -e CACHE_EXPIRE=3600
$ docker run -d --name rsshub -p 1200:1200 -e CACHE_EXPIRE=3600 -e GITHUB_ACCESS_TOKEN=example diygod/rsshub
更多配置项请看 应用配置
- 创建 volume 持久化 Redis 缓存
$ docker volume create redis-data
-
复制
lib/config.js
至lib/config/config.js
, 以避免与 master 分支冲突. 由于包含敏感信息, 该配置文件会被 git 忽略. -
修改 docker-compose.yml 中的
environment
进行配置PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
用以跳过 puppeteer Chromium 的安装. 默认为 1, 需要在lib/config.js
中的puppeteerWSEndpoint
中设置相应的远程 Chrome Websocket 地址, 以启用相应路由.USE_CHINA_NPM_REGISTRY=1
防止 npm 受到来自 GFW 的干扰. 默认为 0.
-
部署
$ docker-compose up -d
- 更新
$ git pull
$ docker-compose build
$ docker-compose up -d
按照这里的引导完成 GCP 账号设置, 创建 GCP 项目, 创建 App Engine 项目, 开通付费功能(必须), 安装 git 与 gcloud 工具. 并完成 gcloud 工具的初始化, 初始化具体方式请查看这个链接. 如果你不打算在本地调试本项目, 可以不安装 Node.js 环境.
请注意, GAE 免费用量不支持 Flexible Environment, 部署至 Flexible Environment 前请确认收费标准.
Node.JS 的 standard environment 仍在测试中, 您可能会在部署或使用中遇到某些不可预期的问题.
运行 git clone https://github.com/DIYgod/RSSHub.git
拉取本项目的最新版本.
在 RSSHub 项目根目录下建立一个 app.yaml 文件, 内容示例如下:
# [START app_yaml]
runtime: custom
env: flex
# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml
manual_scaling:
instances: 1
# 以下是 app engine 资源配置, 可以自行修改, 硬盘最低为 10G
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
network:
forwarded_ports:
- 80:1200
- 443:1200
# 以下是环境配置示例, 具体可配置项见本文档配置章节
env_variables:
CACHE_EXPIRE: '300'
# [END app_yaml]
在 RSSHub 项目根目录下建立一个 app.yaml 文件, 内容示例如下:
# [START app_yaml]
runtime: nodejs8
network:
forwarded_ports:
- 80:1200
- 443:1200
# 以下是环境配置示例, 具体可配置项见本文档配置章节
env_variables:
CACHE_EXPIRE: '300'
# [END app_yaml]
在 RSSHub 项目根目录下运行
gcloud app deploy
进行项目部署, 如果您需要变更 app.yaml 文件名称或者变更部署的项目 ID 或者指定版本号等, 请参考这个链接的"Deploying a service" 部分.
部署完成后可访问您的 Google App Engine URL 查看部署情况.
可以通过修改 lib/config.js
或者设置环境变量来配置 RSSHub.
::: tip 提示
建议通过设置环境变量来配置 RSSHub. 避免版本更新时的冲突.
:::
PORT
: 监听端口, 默认为 1200
SOCKET
: 监听 Unix Socket, 默认为 null
CACHE_TYPE
: 缓存类型, 可为 memory
和 redis
, 设为空可以禁止缓存, 默认为 memory
CACHE_EXPIRE
: 缓存过期时间, 单位为秒, 默认 300
LISTEN_INADDR_ANY
: 是否允许公网连接, 默认 1
TITLE_LENGTH_LIMIT
: 限制输出标题的字节长度, 一个英文字符的长度为 1 字节, 部分语言如中文, 日文, 韩文或阿拉伯文等, 统一算作 2 字节, 默认 100
REDIS_URL
: Redis 连接地址(memory 缓存类型时无效), 默认为 redis://localhost:6379/
REDIS_PASSWORD
: Redis 连接密码(memory 缓存类型时无效)
HTTP_BASIC_AUTH_NAME
: Http basic authentication 用户名, 默认为 usernam3
, 请务必修改
HTTP_BASIC_AUTH_PASS
: Http basic authentication 密码, 默认为 passw0rd
, 请务必修改
LOGGER_LEVEL
: 指明输出到 console 和日志文件的日志的最大等级,默认 info
PROXY_PROTOCOL
: 使用 proxy 来访问的协议, 目前只支持 socks, socks4,socks4a,socks5,socks5h
PROXY_HOST
: proxy 的域名
PROXY_PORT
: proxy 的端口
protected_route.js
内的路由将启用 HTTP Basic Authentication 认证.
支持该认证协议的阅读器, 在添加源地址时, 需要在源地址前添加认证信息, 例如:http://usernam3:passw0rd@localhost:1200/protected/rsshub/rss.
-
pixiv
: 注册地址-
PIXIV_USERNAME
: Pixiv 用户名 -
PIXIV_PASSWORD
: Pixiv 密码
-
-
disqus
: 申请地址DISQUS_API_KEY
: Disqus API
-
twitter
: 申请地址-
TWITTER_CONSUMER_KEY
: Twitter Consumer Key -
TWITTER_CONSUMER_SECRET
: Twitter Consumer Secret -
TWITTER_ACCESS_TOKEN
: Twitter Access Token -
TWITTER_ACCESS_TOKEN_SECRET
: Twitter Access Token Secret
-
-
youtube
: 申请地址YOUTUBE_KEY
: YouTube API Key
-
telegram
: Telegram 机器人TELEGRAM_TOKEN
: Telegram 机器人 token
-
github
: 申请地址GITHUB_ACCESS_TOKEN
: GitHub Access Token
可以通过修改 middleware/access-control.js
或者设置环境变量来配置黑名单和白名单.
支持 IP 和路由, 设置多项时用英文逗号 ,
隔开. 同时设置黑名单和白名单时仅白名单有效.
-
BLACKLIST
: 黑名单 -
WHITELIST
: 白名单, 设置白名单后黑名单无效