Coder Social home page Coder Social logo

henryqw / awesome-ttrss Goto Github PK

View Code? Open in Web Editor NEW
2.3K 32.0 498.0 2.1 MB

🐋 Awesome TTRSS, a powerful Dockerised all-in-one RSS solution.

Home Page: http://ttrss.henry.wang

License: MIT License

PHP 43.26% Shell 16.89% Dockerfile 37.10% JavaScript 2.76%
ttrss docker mercury-parser fever feedly rss-reader rss-feed tt-rss

awesome-ttrss's Introduction

🐋 Awesome TTRSS

Docker Pulls Docker Stars

FOSSA Status

🐋 Awesome TTRSS aims to provide a powerful Dockerized all-in-one solution for Tiny Tiny RSS, an open source RSS feed reader and aggregator written in PHP, with enhanced user experience via simplified deployment and a list of curated plugins. You may sponsor Awesome TTRSS via its 💰OpenCollective page.

📖 Docs

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

📖 文档

Donation 捐赠

Please consider donations to support TTRSS directly. 请考虑直接捐助支持TTRSS.

awesome-ttrss's People

Contributors

abelfodil avatar alexispoyengl avatar bebound avatar bencer avatar ccpz avatar ddsderek avatar dependabot-preview[bot] avatar dependabot[bot] avatar dimon222 avatar diygod avatar fasheng avatar fossabot avatar heathlee avatar henryqw avatar kiritosan avatar kkren avatar limboy avatar madordie avatar oppilate avatar recih avatar renovate-bot avatar renovate[bot] avatar rubenv avatar tangmisaka23001 avatar tonyrl avatar tuzi3040 avatar vfauth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-ttrss's Issues

Some suggestions

  1. Reeder 4 now has a good compatibility with fever, so the caution in the README should be removed.
  2. [Suggest] Is there any possible to add Sphinx dependency directly into the Dockerfile?

[BUG] 数据库没有初始化,TTRSS 启动失败

Describe the bug
数据库没有初始化,TTRSS 启动失败。

该网页无法正常运作
目前无法处理此请求。
HTTP ERROR 500

Have you googled?
Google 没有相关解答

Deployment method

  • Docker
docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      b2f74b2/1.13.1
 Built:           Wed May  1 14:55:20 2019
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      b2f74b2/1.13.1
 Built:           Wed May  1 14:55:20 2019
 OS/Arch:         linux/amd64
 Experimental:    false
  • Docker-compose
docker-compose version
docker-compose version 1.24.1, build 4667896
docker-py version: 3.7.3
CPython version: 2.7.5
OpenSSL version: OpenSSL 1.0.2k-fips  26 Jan 2017
  • Version of the image used [e.g. latest, nightly, 19.8]
docker.io/wangqiru/mercury-parser-api   latest              96e94d06f630        28 hours ago        169 MB
docker.io/nginx                         latest              f949e7d76d63        4 days ago          126 MB
docker.io/wangqiru/ttrss                latest              41c6f42f8bb9        4 weeks ago         94.9 MB
docker.io/sameersbn/postgresql          latest              a2e40a2d9cf8        2 months ago        176 MB
docker.io/wangqiru/opencc-api-server    latest              8f6fc60cf70e        4 months ago        98.3 MB

Deployment environment

  • cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

To Reproduce
Steps to reproduce the behavior:

  1. wget https://raw.githubusercontent.com/HenryQW/Awesome-TTRSS/master/docker-compose.yml
  2. docker-compose up -d
  3. docker logs ttrss --tail 100
  4. docker logs postgres
Initializing datadir...
Initializing certdir...
Initializing logdir...
Initializing rundir...
Setting resolv.conf ACLs...
Creating database user: ttrss
Creating database: ttrss...
‣ Loading pg_trgm extension...
‣ Granting access to ttrss user...
Starting PostgreSQL 10...
2019-09-29 11:42:26.818 CST [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2019-09-29 11:42:26.818 CST [1] LOG:  listening on IPv6 address "::", port 5432
2019-09-29 11:42:26.845 CST [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2019-09-29 11:42:26.889 CST [1388] LOG:  database system was shut down at 2019-09-29 11:42:26 CST
2019-09-29 11:42:26.905 CST [1] LOG:  database system is ready to accept connections
2019-09-29 11:42:27.809 CST [1395] LOG:  incomplete startup packet
2019-09-29 11:42:28.084 CST [1399] ERROR:  relation "ttrss_version" does not exist at character 28
2019-09-29 11:42:28.084 CST [1399] STATEMENT:  SELECT schema_version FROM ttrss_version
2019-09-29 11:42:29.027 CST [1400] ERROR:  relation "ttrss_version" does not exist at character 28
2019-09-29 11:42:29.027 CST [1400] STATEMENT:  SELECT schema_version FROM ttrss_version
2019-09-29 11:42:30.029 CST [1401] ERROR:  relation "ttrss_version" does not exist at character 28
2019-09-29 11:42:30.029 CST [1401] STATEMENT:  SELECT schema_version FROM ttrss_version
  1. docker exec -it postgres /bin/bash
# sudo -u postgres psql
psql (10.9 (Ubuntu 10.9-1.pgdg18.04+1))
Type "help" for help.

postgres=# \l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
-----------+----------+----------+---------+-------+-----------------------
 postgres  | postgres | UTF8     | C       | C     |
 template0 | postgres | UTF8     | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | UTF8     | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 ttrss     | postgres | UTF8     | C       | C     | =Tc/postgres         +
           |          |          |         |       | postgres=CTc/postgres+
           |          |          |         |       | ttrss=CTc/postgres
(4 rows)

postgres=# \c ttrss
You are now connected to database "ttrss" as user "postgres".
ttrss=# \d
Did not find any relations.
ttrss=#

Expected behavior
页面能访问

Screenshots
If applicable, add screenshots to help explain your problem.

Error logs

  • docker logs ttrss --tail 100
  thrown in /var/www/include/functions.php on line 850
[06:49:46/1818] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
[06:49:47/1820] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
[06:49:48/1822] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
[06:49:49/1824] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
[06:49:50/1826] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
[06:49:51/1828] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
[06:49:52/1830] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
[06:49:53/1832] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
[06:49:54/1834] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
[06:49:55/1836] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
[06:49:57/1838] Spawn interval: 120 sec
PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "ttrss_version" does not exist
LINE 1: SELECT schema_version FROM ttrss_version
                                   ^ in /var/www/include/functions.php:850
Stack trace:
#0 /var/www/include/functions.php(850): PDO->query('SELECT schema_v...')
#1 /var/www/update_daemon2.php(202): get_schema_version()
#2 {main}
  thrown in /var/www/include/functions.php on line 850
  • docker logs postgres --tail 100
2019-09-29 14:49:52.890 CST [13044] ERROR:  relation "ttrss_version" does not exist at character 28
2019-09-29 14:49:52.890 CST [13044] STATEMENT:  SELECT schema_version FROM ttrss_version
2019-09-29 14:49:53.889 CST [13045] ERROR:  relation "ttrss_version" does not exist at character 28
2019-09-29 14:49:53.889 CST [13045] STATEMENT:  SELECT schema_version FROM ttrss_version
2019-09-29 14:49:54.898 CST [13046] ERROR:  relation "ttrss_version" does not exist at character 28
2019-09-29 14:49:54.898 CST [13046] STATEMENT:  SELECT schema_version FROM ttrss_version
2019-09-29 14:49:55.898 CST [13047] ERROR:  relation "ttrss_version" does not exist at character 28
2019-09-29 14:49:55.898 CST [13047] STATEMENT:  SELECT schema_version FROM ttrss_version
2019-09-29 14:49:57.073 CST [13048] ERROR:  relation "ttrss_version" does not exist at character 28
2019-09-29 14:49:57.073 CST [13048] STATEMENT:  SELECT schema_version FROM ttrss_version

Additional context
尝试使用 postgres 官方镜像( postgres:10.1-alpine ),也是同样的报错 https://hub.docker.com/_/postgres

[BUG] 'pg_trgm' extension not installed for 'ttrss' db, causing 'af_psql_trgm' user plugin to fail and breaking feed refresh

Describe the bug
When I enable user plugin af_psql_trgm, all feeds fail to refresh due to a problem with execution of the plugin. This appears to be due to the fact that while postgresql-contrib is installed with sameersbn/postgresql, the pg_trgm extension is not installed for the ttrss db.

Have you googled?
Can be remedied as follows:
sudo -u postgres psql --dbname=ttrss
then install the extension there:
CREATE EXTENSION pg_trgm;
Source Link

Deployment method

  • Docker-compose
  • Latest

Deployment environment

  • OS: unraid
  • Browser: chrome

To Reproduce
Steps to reproduce the behavior:

  1. Go to Preferences, then Plugins
  2. Check 'af_psql_trgm' to enable
  3. Click 'Enable selected plugins'
  4. See feeds no longer refresh, and errors appear in Preferences > System > Event Log

Expected behavior
This plugin is supposed to reduce duplicate articles by marking similar articles as read, and should not prevent feeds from refreshing.

Error logs

/var # cat log/nginx/error.log
2019/08/30 03:34:58 [error] 21#21: *1617 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught PDOException: SQLSTATE[42883]: Undefined function: 7 ERROR: function "similarity" does not exist
LINE 1: select 'similarity'::regproc
^ in /var/www/plugins/af_psql_trgm/init.php:267
Stack trace:
#0 /var/www/plugins/af_psql_trgm/init.php(267): PDO->query('select 'similar...')
#1 /var/www/classes/rssutils.php(693): Af_Psql_Trgm->hook_article_filter(Array)
#2 /var/www/classes/api.php(415): RSSUtils::update_rss_feed(1)
#3 /var/www/api/index.php(81): API->updateFeed()
#4 {main}
thrown in /var/www/plugins/af_psql_trgm/init.php on line 267PHP message: PHP Fatal error: Uncaught PDOException: SQLSTATE[25P02]: In failed sql transaction: 7 ERROR: current transaction is aborted, commands ignored until end of transaction block in /var/www/include/sessions.php:120
Stack trace:
#0 /var/www/include/sessions.php(120): PDOStatement->execute(Array)
#1 [internal function]: ttrss_write('irfk949ip1o7hbv...', 'dWlkfGk6MTt2ZXJ...')
#2 [internal function]: session_write_close()
#3 {main}
thrown in /var/www/include/sessions.php on line 120" while reading response header from upstream, client: 192.168.1.20, server: , request: "POST /api/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xxxxxxxxx.xxxxxxxxxx:181"

docker-compose创建成功,但是ttrss无法访问,日志中一直报Operation timed out

  • What is the issue?

docker-compose创建成功,但是ttrss无法访问,日志中一直报Operation timed out

  • What is your OS and its version?

DSM 6.2.2-24922 Update 2,Docker是最新版

  • What is your installation method?

docker-compose

  • Docker

    • Did you build your own dockerfile (paste it here if possible)?
  • Old-fashion way

    • What is your setup? (PHP version, database used, etc.)
  • Others

  • Are there any error logs?

日志中一直报Operation timed out

  • How can the issue be replicated?

  • Other Comments

SELF_URL_PATH位置

安装之后我想修改SELF_URL_PATH,那么config.php文件在哪里可以找到?谢谢!

Running on Synology

Hi

Is there any experience of running this on a synology disk station ?

The disk station has a local network IP address of 192.168.1.nnn and I am getting a page with the following after accessing the url http://192.168.1.nnn:181/

Startup failed

Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade. Please fix errors indicated by the following messages:

Please set SELF_URL_PATH to the correct value detected for your server: http://192.168.1.nnn:181/

You might want to check tt-rss wiki or the forums for more information. Please search the forums before creating new topic for your question.

where the environment variable is set up exactly as this.

Any help appreciated.

cheers

你好,用 Docker Compose ,创建失败。

你好,用 Docker Compose ,创建失败。

错误 2018/06/11 22:25:43 Container admin Failed to do background task (application_custom, ttrss)
错误 2018/06/11 22:25:43 Container admin Background task error for application_custom ttrss: Error: Not Found ("pull access denied for ttest, repository does not exist or may require 'docker login'")
信息 2018/06/11 22:25:39 Container admin Start to do background task (application_custom, ttrss)

这个ttest这个现在没有了吗

How to Save self-hosted Mercury Parser API Endpoint in the Mercury_fulltext settings under Feeds tab

  • What is the issue?

  • What is your setup? (PHP version, database used, etc.)

    I hosted TT-RSS in website interserver, (php).

  • Are there any error logs?

No

  • How can the issue be replicated?

I added your mercuty full text to the plugin of TT-RSS but the point 2 I dont know how to implement:
"Save yourself-hosted Mercury Parser API Endpoint in the Mercury_fulltext settings under Feeds tab."
I need to enter to the site https://github.com/postlight/mercury-parser-api and download the clone? but after download I need to download in my windows computer, the program YARN? I dont know what to do, thanks
-->

mercury_fulltext does not work

  • What is the issue?

使用docker-compose部署之后, 也设置了mercury_fulltext的API(严格按照步骤), 但是好像并没有用, The verge的还是有"Continue reading", 并没有把全文直接抓下来. 博客园的好像也是这样的.

然后我用mercury_fulltext的docker单独部署了一次, 用一个网页测试, 发现确实解析不了, 报错了

[root@centos ~]# curl localhost:3000/parse?url=https://www.theverge.com/2019/3/16/18267023/aladdin-avengers-endgame-booksmart-new-trailers
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /parse</pre>
</body>
</html>

mercury_fulltext image版本: 2b8ec2bb269a (最新的版本应该是)

能否添加tt-rss-newsplus-plugin插件

https://github.com/voidstern/tt-rss-newsplus-plugin

可以加快fiery feeds的ttrss文章同步速度。ttrss默认一个请求只能传输200个文章id, 7w个未读文章有点同步不来。

另外请教下,如果只想同步部分文件夹夹的话,目前只能手动创建一个新账号用来给rss阅读器使用吗?ttrss不支持opml导入,每次添加订阅源在这个新账户中再添加一次,有点麻烦。目前好像也没有阅读器支持部分文件夹同步。

谢谢。

ps 今天试用了下fiery rss,感觉蛮好用的,而且是freemium模式。

v18.8 support issue

Nextcloud has been updated to support the latest version of ttrss (v18.8). Please recompile the docker image.

ttrss | sh: can't open '/wait-for.sh': No such file or directory[BUG]

Bug 描述
应该是找不到wait-for.sh 这个文件,然后导致后面一系列报错以后不会restart,盲猜这个wait-for.sh应该是等数据库啥的全都启动以后ttrss才启动
ttrss | sh: can't open '/wait-for.sh': No such file or directory

部署方法
直接使用docker-compose部署,不下载源码

  • docker-compose
  • latest

部署环境

  • centos 7

错误日志
/usr/lib/python2.7/site-packages/requests/init.py:80: RequestsDependencyWarning: urllib3 (1.22) or chardet (2.2.1) doesn't match a supported version!
RequestsDependencyWarning)
Creating network "root_default" with the default driver
Creating mercury ... done
Creating ttrss ... done
Creating opencc ... done
Creating postgres ... done
Attaching to postgres, mercury, opencc, ttrss
postgres | Initializing datadir...
ttrss | sh: can't open '/wait-for.sh': No such file or directory
postgres | Initializing certdir...
postgres | Initializing logdir...
mercury |
mercury | > [email protected] start /app
mercury | > node index.js
mercury |
postgres | Initializing rundir...
postgres | Setting resolv.conf ACLs...
opencc |
opencc | > [email protected] start /usr/src/app
opencc | > node ./bin/www
opencc |
ttrss exited with code 2
postgres | Starting PostgreSQL 10...
postgres | 2019-09-21 09:27:22.356 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
postgres | 2019-09-21 09:27:22.356 UTC [1] LOG: listening on IPv6 address "::", port 5432
postgres | 2019-09-21 09:27:22.381 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres | 2019-09-21 09:27:22.575 UTC [1048] LOG: database system was shut down at 2019-09-21 09:27:22 UTC
postgres | 2019-09-21 09:27:22.590 UTC [1] LOG: database system is ready to accept connections
ttrss exited with code 2
ttrss exited with code 2
mercury | 🚀Mercury Parser API listens on port 3000
ttrss exited with code 2
ttrss exited with code 2
ttrss exited with code 2
Exception in thread Thread-13:
Traceback (most recent call last):
File "/usr/lib64/python2.7/threading.py", line 812, in __bootstrap_inner
self.run()
File "/usr/lib64/python2.7/threading.py", line 765, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib/python2.7/site-packages/compose/cli/log_printer.py", line 233, in watch_events
event['container'].attach_log_stream()
File "/usr/lib/python2.7/site-packages/compose/container.py", line 206, in attach_log_stream
self.log_stream = self.attach(stdout=True, stderr=True, stream=True)
File "/usr/lib/python2.7/site-packages/compose/container.py", line 298, in attach
return self.client.attach(self.id, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/docker/utils/decorators.py", line 19, in wrapped
return f(self, resource_id, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/docker/api/container.py", line 57, in attach
response, stream, self._check_is_tty(container)
File "/usr/lib/python2.7/site-packages/docker/api/client.py", line 366, in _read_from_socket
socket = self._get_raw_response_socket(response)
File "/usr/lib/python2.7/site-packages/docker/api/client.py", line 279, in _get_raw_response_socket
self._raise_for_status(response)
File "/usr/lib/python2.7/site-packages/docker/api/client.py", line 231, in _raise_for_status
raise create_api_error_from_http_exception(e)
File "/usr/lib/python2.7/site-packages/docker/errors.py", line 31, in create_api_error_from_http_exception
raise cls(e, response=response, explanation=explanation)
APIError: 409 Client Error: Conflict ("container e963b7eaab64c20df5b325f8a7ae0a1df612bd5fe4305c50f558c3a08c69cffe is restarting, wait until the container is running")

部署 TTRSS 时提示 Please set SELF_URL_PATH to the correct value for your server

docker-compose 摘录如下

version: "3"
services:
  service.rss:
    image: wangqiru/ttrss:latest
    container_name: ttrss
    ports:
            - 181:80
    environment:
      - SELF_URL_PATH=http://feed.mydomin.com/
      - DB_HOST=127.0.0.1
      - DB_PORT=5432
      - DB_NAME=ttrss
      - DB_USER=postgres
      - DB_PASS=*********
    stdin_open: true
    tty: true
    restart: always

我把SELF_URL_PATH改成 http://ip/也无法启动。

这是为什么?

使用 Reeder iOS 提示密码错误无法登录

  • What is the issue?

开启了 Fever 插件,但是使用 Reeder iOS 提示密码错误无法登录。使用了 admin 作为 email,并使用了插件页面里设置的密码。

(已解决:终于发现是没有开启 api 权限)

  • What is your OS and its version?

Ubuntu 16.4 + iOS 11.4 Reeder 3

  • What is your installation method?

  • Docker

    • Did you build your own dockerfile (paste it here if possible)?

只是使用了 docker-compose up -d. 并按照说明修改了 .yml 中的三处位置,域名是 http,没有没有开启 ssl 证书。(事实上,采用 CloudFlare 的 HTTPS 模式也是无法登录,似乎是无法保存密码)

  • Old-fashion way

    • What is your setup? (PHP version, database used, etc.)
  • Others

  • Are there any error logs?

No error logs.

  • How can the issue be replicated?

  • Other Comments

I solemnly swear that I have googled for solutions and the issue is unprecedented.

How to enable HTTPS?

  • What is the issue?

I would like to have https for TTRSS

  • What is your OS and its version?

I have installed it on a QNAP nas

  • What is your installation method?

Created a new app with your Dockerfile

  • Docker

It's the one in the project

  • Old-fashion way

    • What is your setup? (PHP version, database used, etc.)

Default from your project. I also tried to change the SELF_URL_PATH to have also https

  • Other Comments

tiny rss无法一个订阅同时存放在多个文件夹

这个应该是tiny rss本身的问题?或者是我哪里设置的不对?
我无法把一个订阅同时设置在多个文件夹,比如 【掘金-后端】这个订阅,我想同时存在于【资讯】和【掘金】这两个文件夹中,但是并不可以,其他的比如feedly,reeder,Inoreader都可以, tiny rss是否支持此功能?

增加 Heroku 部署支持/Add support for Heroku deployment

您好,我通过 RSSHUB 了解到 TTRSS ,目前已经在 Heroku 上搭建了 RSSHUB 和 TTRSS,
但是现在能找到的 Heroku 适用的 TTRSS 都没有 Mercury 插件,只找到您这个项目有,
但我不会用 Docker,也没有自己的空间,
所以只能请求您,能否把这个项目改写成 Heroku 适用的?
拜托了,谢谢!

Feeds with update errors-7 Failed to connect to hidden_ip port hidden_port: Connection refused

  • What is the issue?

Feeds with update errors

7 Failed to connect to hidden_ip port hidden_port: Connection refused

While these feeds are good in inoreader, it reports error in ttrss

  • What is your OS and its version?

centos 7

  • What is your installation method?

From your guide https://ttrss.henry.wang/#deployment-via-docker-compose

  • Are there any error logs?

maybe above messages can be called error logs? That is all I got about errors

  • How can the issue be replicated?

I do not know. These feeds are good few mins ago in ttrss

  • Other Comments

ttrss and rsshub are installed on a same vps. And rsshub is installed from yarn

docker ps
CONTAINER ID        IMAGE                                COMMAND                    NAMES
83d694be91d2        wangqiru/opencc-api-server:latest    "/bin/sh -c 'npm sta…"     opencc
b41a35b7cf87        sameersbn/postgresql:latest          "/sbin/entrypoint.sh"      postgres
bcbae28836c0        wangqiru/mercury-parser-api:latest   "dumb-init -- npm ru…"     mercury
951391b6436a        wangqiru/ttrss:latest                "sh -c 'sh /wait-for…"     ttrss

There is my config.js, I just change the port of process.env.PORT

const bilibili_cookies = {};
const twitter_tokens = {};
const envs = process.env;
for (const name in envs) {
    if (name.startsWith('BILIBILI_COOKIE_')) {
        const uid = name.slice(16);
        bilibili_cookies[uid] = envs[name];
    } else if (name.startsWith('TWITTER_TOKEN_')) {
        const id = name.slice(14);
        twitter_tokens[id] = envs[name];
    }
}

module.exports = {
    connect: {
        port: process.env.PORT || HIDDEN, // 监听端口
        socket: process.env.SOCKET || null, // 监听 Unix Socket, null 为禁用
    },
    cache: {
        type: typeof process.env.CACHE_TYPE === 'undefined' ? 'memory' : process.env.CACHE_TYPE, // 缓存类型,支持 'memory' 和 'redis',设为空可以禁止缓存
        routeExpire: parseInt(process.env.CACHE_EXPIRE) || 5 * 60, // 路由缓存时间,单位为秒
        contentExpire: parseInt(process.env.CACHE_CONTENT_EXPIRE) || 1 * 60 * 60, // 不变内容缓存时间,单位为秒
    },
    ua: process.env.UA || 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
    listenInaddrAny: parseInt(process.env.LISTEN_INADDR_ANY) || 1, // 是否允许公网连接,取值 0 1
    requestRetry: parseInt(process.env.REQUEST_RETRY) || 2, // 请求失败重试次数
    // 是否显示 Debug 信息,取值 boolean 'false' 'key' ,取值为 'false' false 时永远不显示,取值为 'key' 时带上 ?debug=key 显示
    debugInfo: process.env.DEBUG_INFO || true,
    titleLengthLimit: parseInt(process.env.TITLE_LENGTH_LIMIT) || 100,
    redis: {
        url: process.env.REDIS_URL || 'redis://localhost:6379/',
        options: {
            // 支持这些参数 https://github.com/NodeRedis/node_redis#options-object-properties
            password: process.env.REDIS_PASSWORD || null,
        },
    },
    pixiv: {
        client_id: 'MOBrBDS8blbauoSck0ZfDbtuzpyT',
        client_secret: 'lsACyCD94FhDUtGTXi3QzcFE2uU1hqtDaKeqrdwj',
        username: process.env.PIXIV_USERNAME,
        password: process.env.PIXIV_PASSWORD,
    },
    disqus: {
        api_key: process.env.DISQUS_API_KEY,
    },
    twitter: {
        consumer_key: process.env.TWITTER_CONSUMER_KEY,
        consumer_secret: process.env.TWITTER_CONSUMER_SECRET,
        tokens: twitter_tokens,
    },
    youtube: {
        key: process.env.YOUTUBE_KEY,
    },
    telegram: {
        token: process.env.TELEGRAM_TOKEN,
    },
    github: {
        access_token: process.env.GITHUB_ACCESS_TOKEN,
    },
    imgur: {
        clientId: process.env.IMGUR_CLIRNT_ID,
    },
    authentication: {
        name: process.env.HTTP_BASIC_AUTH_NAME || 'usernam3',
        pass: process.env.HTTP_BASIC_AUTH_PASS || 'passw0rd',
    },
    bilibili: {
        cookies: bilibili_cookies,
    },
    yuque: {
        token: process.env.YUQUE_TOKEN,
    },
    puppeteerWSEndpoint: process.env.PUPPETEER_WS_ENDPOINT,
    loggerLevel: process.env.LOGGER_LEVEL || 'info',
    proxy: {
        protocol: process.env.PROXY_PROTOCOL,
        host: process.env.PROXY_HOST,
        port: process.env.PROXY_PORT,
        auth: process.env.PROXY_AUTH,
        url_regex: process.env.PROXY_URL_REGEX || '.*',
    },
    blacklist: process.env.BLACKLIST && process.env.BLACKLIST.split(','),
    whitelist: process.env.WHITELIST && process.env.WHITELIST.split(','),
    enableCluster: process.env.ENABLE_CLUSTER,
};

Thank you

中文搜索不到任何内容

debian 9

docker安装

TTRSS的中文搜索什么都搜不到,加上双引号也搜不到,filter也搜不到中文

另外,如果rss源是GBK,而非utf-8的话,订阅不了,即使订阅上了,debug抓取内容错误

[05:25:29/700] start
[05:25:29/700] setting basic feed info for 70 [[Unknown], ]...
[05:25:30/700] local cache will not be used for this feed
[05:25:30/700] last unconditional update request:
[05:25:30/700] maximum allowed interval for conditional requests exceeded, forcing refetch
[05:25:30/700] fetching [https://bbs.eastgame.org/rss.php?fid=719&auth=987a3nvo...........CpVFx5fbni0wbSs%2FBs.......h2A] (force_refetch: 1)...
[05:25:31/700] fetch done.
[05:25:31/700] source last modified:
[05:25:31/700] saving cache/feeds/a15604b9ba5b86a1256fe33400bef6e389b73c47.xml
[05:25:31/700] fetch error: LibXML error 1 at line 0 (column 0): iconv : problems with filters for 'gbk'

[05:25:31/700] + LibXML error 1 at line 0 (column 0): iconv : problems with filters for 'gbk'

[05:25:31/700] + LibXML error 32 at line 1 (column 35): Unsupported encoding gbk

[05:25:31/700] update failed.

请教一下crontab的使用方式

请问要如何使用crontab加速ttrss的更新?
还请作者指导

另外我想询问ttrss有提供card view 及 magazine view 的排版么(主题也行
以下提供feedly的截图

card view
image

magazine view
image

使用docker-compose搭建,ttrss容器不断重启,查看日志一直报错sh: can't open '/wait-for.sh': No such file or directory

  • What is the issue?

使用docker-compose搭建,ttrss容器不断重启(其他容器正常)

  • What is your OS and its version?

群晖DSM6.1.4 最新Docker

  • What is your installation method?

docker-compose

  • Docker

    • Did you build your own dockerfile (paste it here if possible)?
  • Old-fashion way

    • What is your setup? (PHP version, database used, etc.)
  • Others

  • Are there any error logs?

查看日志一直报错sh: can't open '/wait-for.sh': No such file or directory

  • How can the issue be replicated?

  • Other Comments

How can I update ttrss, which is installed from a docker, from crontab?

  • What is the issue?

The minimum default update interval is 15 mins. I want to set to 5 mins. Although I found the approach from official web, it is not compatible for a docker

*/30 * * * * /usr/bin/php /path/to/tt-rss/update.php --feeds --quiet

I DO NOT know how to find php and update.php in docker.

  • What is your OS and its version?

CENTOS 7

  • What is your installation method?

From your guide https://ttrss.henry.wang/#deployment-via-docker-compose

Other Information

I already have a nonroot account just called non_root

docker ps
CONTAINER ID        IMAGE                                COMMAND                    NAMES
83d694be91d2        wangqiru/opencc-api-server:latest    "/bin/sh -c 'npm sta…"     opencc
b41a35b7cf87        sameersbn/postgresql:latest          "/sbin/entrypoint.sh"      postgres
bcbae28836c0        wangqiru/mercury-parser-api:latest   "dumb-init -- npm ru…"     mercury
951391b6436a        wangqiru/ttrss:latest                "sh -c 'sh /wait-for…"     ttrss

PHP

find / -name php
/var/lib/docker/overlay2/abbfabb773967bb2cc4b0b445fedc386bc40dc3a89eb4375929eb72730611fd8/merged/usr/bin/php
/var/lib/docker/overlay2/95a58411de262de8a7546ac279578d291694891c87781d3678bd2ed97b37b403/diff/usr/bin/php

Thanks You

Docker tags for stable releases

Feature description

It would be nice to have a dedicated Docker tags for stable TTRSS releases

Detailed information

Using latest as tag has its advantages. However, for better reproducibility and stability one could want to put 19.8 to stay with ttrss 19.8. Of course you may want to do some non ttrss source code related changes in the project, but then it could be 19.8-h1, 19.8-h2 (with 19.8 - or 19.8-latest at your preference - pointing to the latest tag with ttrss 19.8).

As a bonus, tags could be also made at the GitHub level to have access to corresponding source code - in a case of need to patch something by the user itself.

Btw, thanks for developing that container! I've found it very useful.

求支持Single User 模式

  • What is the issue?

不算是ISSUE,是个请求。

  • What is your OS and its version?

docker-desktop 自带的kubernetes。

  • What is your installation method?

  • Docker

直接用的docker-compose.yml 文件。

  • Are there any error logs?

(无)

  • How can the issue be replicated?

(无)

  • Other Comments

由于希望能作为个人的rss服务器,希望能剪除关于多用户和认证等多余的操作,看到ttrss本身有这个选项,但无法通过环境变量传入。希望有这个功能。

有些ttrss的docker image有这个功能,可以参考下。

https://github.com/x86dev/docker-ttrss#single-user-mode

希望支持arm架构处理器的设备,比如斐讯N1小钢炮,树莓派

  • What is the issue?

希望支持arm架构处理器的设备,比如斐讯N1小钢炮,树莓派

armhf | arm32v7-latest
arm64 | arm64v8-latest
x86-64 | amd64-latest

Raspberry Pi / arm7 / arm8.

  • What is your OS and its version?

N1小钢炮系统NDM

  • What is your installation method?

compose与直接安装都试过。参考https://ttrss.henry.wang/zh/

  • Docker

    • Did you build your own dockerfile (paste it here if possible)?
  • Old-fashion way

    • What is your setup? (PHP version, database used, etc.)
  • Others

  • Are there any error logs?

页面打不开,查看日志一直报错:standard_init_linux.go:207:exec用户进程导致“exec格式错误”
网上的方法(修改格式等)并不管用

  • How can the issue be replicated?

  • Other Comments

docker-compose SELF_URL_PATH 后有页面无法访问

  • What is the issue?

通过 docker-compose 部署更新  
通过Nginx 反代 Https  
访问偏好设置无法访问
  • What is your OS and its version?

Ubuntu 18.04.2 LTS
  • What is your installation method?

通过 docker-compose 部署

  • Are there any error logs?

image_2019-05-20_16-37-45
image_2019-05-20_16-39-36

  • How can the issue be replicated?

docker-compose.yml
      - SELF_URL_PATH=https://域名/


Nginx配置


upstream ttrss {
    server 127.0.0.1:181;
}

server
    {
        listen 80;
        server_name 域名 ;
		return 301 https://域名$request_uri;
    }

server
    {
        listen 443 ssl;
		gzip on;
        server_name 域名 ;
		
        ssl_certificate /usr/local/nginx/conf/ssl/域名/fullchain.cer;
        ssl_certificate_key /usr/local/nginx/conf/ssl/域名/域名.key;

        access_log  /home/wwwlogs/ttrss.log combined;
		
        location / {
        proxy_redirect off;
        proxy_pass http://ttrss;

        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;
        }
    }


在 Reeder 中添加新订阅源

  • What is the issue?

使用 Reeder 3/4 for iOS/macOS,Fever API 方式连接 ttrss,在 Reeder 中没有添加新订阅源的「➕」按钮。
与之对比,在 Reeder app 中添加 Inoreader 账户,可以在「订阅源列表」的右上角(iOS)或右下角(macOS)看到「➕」号,点击之后可以添加订阅源。

Snipaste_2019-06-09_09-07-33
Snipaste_2019-06-09_09-07-54

  • What is your OS and its version?

Server: Debian 9.7
Client: iOS 12.3.1 and Reeder 3/4、macOS 10.14.5 and Reeder 3

  • What is your installation method?

  • Docker

Server: 基于本仓库的 docker-compose, 增加了 jwilder/nginx-proxy 和 jrcs/letsencrypt-nginx-proxy-companion 作为前置代理和自动配置 SSL 证书

  • Did you build your own dockerfile (paste it here if possible)?

  • Old-fashion way

    • What is your setup? (PHP version, database used, etc.)
  • Others

  • Are there any error logs?

  • How can the issue be replicated?

  1. 使用本仓库提供的 docker-compose.yml 部署 ttrss 服务
  2. 启用 Fever API 并设置 Fever 密码
  3. 在 Reeder App 中通过 Fever 登录 ttrss
  • Other Comments

可能这是 Fever API 本身的限制?
作者自己的帖子 https://tt-rss.org/oldforum/viewtopic.php?t=1981 里似乎也没看到➕按钮(1 楼最后一张图)

关于一个订阅源格式的问题

  • What is the issue?

我这里有一个杂志目录的订阅源,这个订阅源好像是更改了RSS的格式,在浏览器中可以直接打开,但ttRSS获取时提示如下错误:

[10:43:04/38] start
[10:43:04/38] local cache will not be used for this feed
[10:43:04/38] last unconditional update request: 2019-04-22 10:42:57
[10:43:04/38] stored last modified for conditional request: Sat, 20 Apr 2019 07:01:14 GMT
[10:43:04/38] fetching [https://asa.scitation.org/action/showFeed?type=etoc&feed=rss&jc=jas] (force_refetch: 1)...
[10:43:04/38] fetch done.
[10:43:04/38] source last modified: Sat, 20 Apr 2019 07:01:14 GMT
[10:43:04/38] saving cache/feeds/748d1876a7e4d2ada91c75410de605a7293dbc12.xml
[10:43:04/38] fetch error: Unknown/unsupported feed type

  • What is your OS and its version?

Debian 9

  • What is your installation method?

Docker

  • Did you build your own dockerfile (paste it here if possible)?
    I use
    git clone https://github.com/HenryQW/docker-ttrss-plugins && cd docker-ttrss-plugins
    nano docker-compose.yml后修改主机IP地址
    cd docker-ttrss-plugins && docker-compose up -d开始抓取并安装
  • What is your setup? (PHP version, database used, etc.)
  • Are there any error logs?

[10:43:04/38] start
[10:43:04/38] local cache will not be used for this feed
[10:43:04/38] last unconditional update request: 2019-04-22 10:42:57
[10:43:04/38] stored last modified for conditional request: Sat, 20 Apr 2019 07:01:14 GMT
[10:43:04/38] fetching [https://asa.scitation.org/action/showFeed?type=etoc&feed=rss&jc=jas] (force_refetch: 1)...
[10:43:04/38] fetch done.
[10:43:04/38] source last modified: Sat, 20 Apr 2019 07:01:14 GMT
[10:43:04/38] saving cache/feeds/748d1876a7e4d2ada91c75410de605a7293dbc12.xml

  • How can the issue be replicated?

在ttRSS中订阅这个源,在源上右键Debug feed,勾选Force refetchcontinue后得到如上报错结果。

  • Other Comments

I solemnly swear that I have googled for solutions and the issue is unprecedented.
我的确Google了,Google关键词type=etoc,的确没有找到相关的类型如何更改。另外,我考虑到可能是ttRSS缺少插件,所以在inoreader上也试了一下,可以正常提取,但提取到的内容都是一个月之前的,近期的内容没有更新,可能是从那个时候开始换了格式;
另外再电脑上,使用订阅软件也无法正确识别这个源,提示Feed的url不存在

请问,如何才能获取到该源中的内容?是更改这个源的格式吗?还是可以通过插件进行转换?谢谢!

docker 环境变量不变 报错 SELF_URL_PATH 有错

  • What is this issue?

更新了新的 image 后无法正常使用

Ubuntu 16.04

  • What is your installation method?

docker run -it --name ttrss --restart=always \
--link ttrssdb:db  \
-e SELF_URL_PATH=https://rss.fengkx.top  \
-e DB_USER=ttrss  \
-e DB_PASS=ttrss  \
-p 1541:80  \
-d wangqiru/ttrss

Using nginx proxy_pass to localhost:1541

docker logs

Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade.
Please fix errors indicated by the following messages:

 * Please set SELF_URL_PATH to the correct value for your server (possible value: <b>http://</b>)

You might want to check tt-rss wiki or the forums for more information.
Please search the forums before creating new topic for your question.
[28-Jul-2018 15:06:31] NOTICE: fpm is running, pid 9
[28-Jul-2018 15:06:31] NOTICE: ready to handle connections
Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade.
Please fix errors indicated by the following messages:

 * Please set SELF_URL_PATH to the correct value for your server (possible value: <b>http://</b>)

You might want to check tt-rss wiki or the forums for more information.
Please search the forums before creating new topic for your question.
Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade.
Please fix errors indicated by the following messages:

 * Please set SELF_URL_PATH to the correct value for your server (possible value: <b>http://</b>)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.