🐋 Awesome TTRSS

Docker Pulls Docker Stars Docker Automated build Docker Build Status FOSSA Status

关于

Tiny Tiny RSS 是一款基于 PHP 的免费开源 RSS 聚合阅读器。🐋 Awesome TTRSS 旨在提供一个 「一站式容器化」 的 Tiny Tiny RSS 解决方案,通过提供简易的部署方式以及一些额外插件,以提升用户体验。

鸣谢

赞助者

部署

推荐使用一台 VPS 来部署您的 Awesome TTRSS 实例,DigitalOcean 提供高性价比的 VPS 仅需 $5/月。除此之外,通过 Awesome TTRSS 的 💰OpenCollective 页面 进行赞助,即可获得定制支持,全托管服务,全托管 VPS 等私人服务。

Awesome TTRSS 支持 arm32v7 ✓ 架构(暂不包括 OpenCC API)。请参见 docker-compose.arm32v7.yml

通过 Docker 部署

docker run -it --name ttrss --restart=always \
-e SELF_URL_PATH = [ TTRSS 实例地址 ]  \
-e DB_HOST = [ 数据库地址 ]  \
-e DB_PORT= [ 数据库端口 ]  \
-e DB_NAME = [ 数据库名称 ]  \
-e DB_USER = [ 数据库用户名 ]  \
-e DB_PASS = [ 数据库密码 ]  \
-p [ 容器对外映射端口 ]:80  \
-d wangqiru/ttrss

通过 docker-compose 部署

docker-compose.yml 包含了 4 个镜像:

  1. TTRSS arm32v7 ✓
  2. PostgreSQL arm32v7 ✓
  3. Mercury Parser API arm32v7 ✓
  4. OpenCC API arm32v7 ✗

步骤

  1. 下载 docker-compose.yml 至任意目录。
  2. 更改 docker-compose.yml 中的设置,请务必更改 postgres 用户密码。
  3. 通过终端在同目录下运行 docker-compose up -d 后等待部署完成。
  4. 默认通过 181 端口访问 TTRSS,默认账户:admin 密码:password,请第一时间更改。
  5. wangqiru/mercury-parser-apiwangqiru/opencc-api-server 为支持高级功能而加入的可选服务类容器,删除不会影响 TTRSS 基础功能。

支持的环境变量列表

  • SELF_URL_PATH: TTRSS 实例地址
  • DB_HOST: 数据库地址
  • DB_PORT: 数据库端口
  • DB_NAME: 数据库名字
  • DB_USER: 数据库用户名
  • DB_PASS: 数据库密码
  • ENABLE_PLUGINS: 在系统层面启用的插件名称,其中 auth_internal 为必须启用的登录插件
  • SESSION_COOKIE_LIFETIME: 使用网页版登陆时 cookie 过期时间,单位为小时,默认为 24 小时
  • HTTP_PROXY: ip:port, TTRSS 实例的全局代理, 为源地址添加单独代理请使用 Options per Feed
  • SINGLE_USER_MODE: true 为开启单用户模式,同时关闭用户认证,无需登录即可使用。请仅在安全环境下开启

配置 HTTPS

TTRSS 容器自身不负责使用 HTTPS 加密通信。参见下方的样例自行配置 Nginx 反向代理。使用 Let's Encrypt 可以获取免费 SSL 证书。

upstream ttrssdev {
    server 127.0.0.1:181;
}

server {
    listen 80;
    server_name  ttrssdev.henry.wang;
    return 301 https://ttrssdev.henry.wang$request_uri;
}

server {
    listen 443 ssl;
    gzip on;
    server_name  ttrssdev.henry.wang;

    ssl_certificate /etc/letsencrypt/live/ttrssdev.henry.wang/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ttrssdev.henry.wang/privkey.pem;

    access_log /var/log/nginx/ttrssdev_access.log combined;
    error_log  /var/log/nginx/ttrssdev_error.log;

    location / {
        proxy_redirect off;
        proxy_pass http://ttrssdev;

        proxy_set_header  Host                $http_host;
        proxy_set_header  X-Real-IP           $remote_addr;
        proxy_set_header  X-Forwarded-Ssl     on;
        proxy_set_header  X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto   $scheme;
        proxy_set_header  X-Frame-Options     SAMEORIGIN;

        client_max_body_size        100m;
        client_body_buffer_size     128k;

        proxy_buffer_size           4k;
        proxy_buffers               4 32k;
        proxy_busy_buffers_size     64k;
        proxy_temp_file_write_size  64k;
    }
}

更新

Awesome TTRSS 会自动监控 TTRSS 官方更新并与之同步,这意味着更新会比较频繁。

默认使用 wangqiru/ttrss:latest 版本,该版本包含了 TTRSS 官方的稳定发行版。 wangqiru/ttrss:nightly 包含了含有最新功能的尝鲜版,但可能包含 bug。旧版本请参照 此页面

手动更新

通过以下命令进行手动更新:

    docker pull wangqiru/ttrss:latest
    # docker pull wangqiru/mercury-parser-api:latest
    # docker pull wangqiru/opencc-api-server:latest
    docker-compose up -d # 如果您没有使用 docker-compose,我确信您知道该怎么做。

自动更新

样例 docker-compose 中包含了 Watchtower,它会自动拉取并更新您所有的服务容器 (包括当前系统上运行的非 Awesome TTRSS 服务的容器)。该服务默认关闭,启用前请确认它将不会影响您其他的服务容器。

您也可以设置 watchtower 忽略您的其他容器:

service.mercury:
  image: wangqiru/mercury-parser-api:latest
  container_name: mercury
  expose:
    - 3000
  restart: always
  # ⬇️ 这将使 Watchtower 跳过对 mercury-parser-api 的更新检测
  labels:
    - com.centurylinklabs.watchtower.enable=false

迁移

为了更好地优化 Awesome TTRSS,有时候可能会推出一些破坏性更新。

Postgres 数据库迁移

从 sameersbn/postgresql 迁移至 postgres:alpine。

容器镜像 sameersbn/postgresql postgres:alpine
Postgres 版本 10.2 latest (文档更新时为 12.1 )
大小 176MB 72.8MB

sameersbn/postgresql 已经完成了它的使命,pg_trgm 扩展已经不再需要通过它来开启,迁移至 postgres:alpine 可以让 Awesome TTRSS 获得 Postgres 的最新更新,以及节约超过 100MB 的部署空间。

开始迁移:

  1. 停止所有服务容器:
    docker-compose stop
    
  2. 移动 Postgres 数据卷 ~/postgres/data/(或者你在 docker-compose 中指定的目录)至其他任何地方作为备份,这非常重要!
  3. 执行如下命令来导出所有数据:
    docker exec postgres pg_dumpall -c -U postgres > export.sql
    
  4. 根据最新 docker-compose.yml 中的database.postgres 部份来更新你的 docker-compose 文件,并启动:
    docker-compose up -d
    
  5. 执行如下命令来导入所有数据:
    cat export.sql | docker exec -i postgres psql -U postgres
    
  6. 测试所有服务是否正常工作,现在你可以移除步骤二中的备份了。

旧版 docker-compose 文件已经被归档为 docker-compose.legacy.yml

插件

Mercury 全文获取

全文内容提取插件,配合单独的 Mercury Parser API 服务器使用。样例 docker-compose 中已经包含了 HenryQW/mercury-parser-api 服务器。

设置步骤

  1. 在设置中启用 mercury-fulltext 插件 启用 Mercury
  2. 在设置中填入 Mercury Parser API 地址 填入 Mercury Parser API 地址

Fever API

提供 Fever API 支持。

设置步骤

  1. 在设置中启用 API。 启用 API
  2. 在插件设置中设置 Fever 密码。 设置 Fever 密码
  3. 在支持 Fever 的阅读器用,使用 https://[您的地址]/plugins/fever 作为服务器地址。使用您的账号和步骤 2 中的密码登录。
  4. 由于该插件使用未加盐的 MD5 加密密码进行通信,强烈建议开启 HTTPS

OpenCC 繁简转换

使用 OpenCC 为 TTRSS 提供中文繁转简的插件,需要配合单独的 OpenCC API 服务器使用。样例 docker-compose 中已经包含了 HenryQW/OpenCC.henry.wang 服务器。

设置步骤

  1. 在设置中启用 opencc 插件 启用 opencc
  2. 在设置中填入 OpenCC API 地址 填入 OpenCC API 地址

Demo 服务器,可用性不做任何保证:https://opencc.henry.wang or http://opencc2.henry.wang

FeedReader API

提供 FeedReader API 支持。

系统插件,将 api_feedreader 添加到 ENABLE_PLUGINS 环境变量中以启用。

使用指南见 FeedReader API

News+ API

为 Android App News+ 和 iOS App Fiery Feeds 提供更快的同步速度。

系统插件,将 api_newsplus 添加到 ENABLE_PLUGINS 环境变量中以启用。

使用指南见 News+ API

Feediron

提供文章 DOM 操控能力的插件。

使用指南见 Feediron

Options per Feed

提供单独为源地址配置代理、user-agent 以及 SSL 证书验证的能力。

使用指南见 Options per Feed

Remove iframe sandbox

移除 iframe 上的 sandbox 属性,以支持 feed 中直接播放嵌入视频。

使用指南见 Remove iframe sandbox

主题

Feedly

Feedly

RSSHub

RssHub

使用建议

支持与帮助

捐赠

PayPal 微信赞赏 OpenCollective
paypal 💰OpenCollective page

许可

MIT

[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FHenryQW%2FAwesome TTRSS.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FHenryQW%2FAwesome TTRSS?ref=badge_large)

上次更新: 12/8/2019, 1:18:22 AM