linuxserver / docker-tt-rss Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
Currently, TT-RSS is downloaded when the container is first started using 40-install
So even if I lock the docker image version, depending on when I start the container I might end up with a different version of TT-RSS running.
Looking at other linuxserver repos, other PHP applications like docker-bookstack download the application at image build time.
I'm assuming changing this will not be trivial as TT-RSS is currently downloaded in the /config volume.
Due to the image being based on alpine (1, 2) it causes the same warnings/issues as people running tt-rss on alpine: https://community.tt-rss.org/t/php-7-3-use-of-undefined-constant-glob-brace/2230/4
Going to tt-rss logs you can see all the same warnings getting spammed very quickly:
E_WARNING (2) | plugins/cache_starred_images/init.php:82 | Invalid argument supplied for foreach()
E_WARNING (2) | plugins/cache_starred_images/init.php:77 | glob() expects parameter 2 to be int, string given
E_WARNING (2) | plugins/cache_starred_images/init.php:77 | Use of undefined constant GLOB_BRACE - assumed 'GLOB_BRACE' (this will throw an Error in a future version of PHP)
When running the container with the pgsql driver the server reports Exception while creating PDO object:SQLSTATE[08006] [7] invalid port number: "tcp://172.17.0.4:5432"
This is the command line:-
docker create \
--name=tt-rss \
-e PUID=1000 \
-e PGID=1000 \
-e DB_TYPE=pgsql \
-e DB_NAME=user \
-e DB_USER=pass \
-e DB_PASS=database \
-e SELF_URL_PATH=https://www.example.com/ttrss/ \
-e TZ=Europe/London \
-p 127.0.0.1:8081:80 \
--link tinydatabase:db \
-v /home/chaz/docker/tt-rss/config:/config:Z \
--restart unless-stopped \
linuxserver/tt-rss
I am sorry I do not know what the solution is.
I had a compose file like this:
version: '2'
...
services:
db:
image: mariadb
...
app:
image: linuxserver/tt-rss
...
Everything was working fine for months now, but since last week the system doesn't Update the feeds anymore.
I spend a lot of time for debugging without finding anything:
I then found out, that at the same time the updates stopped, my system (watchtower) updated mariadb:latest from 10.3.x to 10.4.x.
I manually downgraded to 10.3 again (image "mariadb:10.3-bionic") and now everything is fine again, updates are running automatically now.
I don't understand way and especially not why there are no error and why I was able to update the feeds manually.
I'm also not sure whether this is a linuxserver docker-image problem or a tt-rss problem.
So maybe you have a better understanding of you build so you can find the root cause of the problem. Or at least add a hint to the README.md for compatibility issues.
I'm eager to help, just let me know.
Hello, i have regular nginx error. In nginx error.log i see something like:
"2017/03/21 14:46:23 [crit] 287#287: *610 open() "/var/lib/nginx/tmp/fastcgi/2/06/0000000062" failed (13: Permission denied) while reading upstream, client: 192.168.0.6, server: _, request: "POST /plugins/fever/?api&items&with_ids=419622,403444,11396,47491,89016,201017,51877,196907,184500,193202,228047,249027,289814,260797,406323,319767,334850,335967,401364,345866,418769,412057,412217,412377,403604,425003,258920 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.0.5:8020"
2017/03/21 14:48:22 [crit] 287#287: *618 open() "/var/lib/nginx/tmp/fastcgi/3/06/0000000063" failed (13: Permission denied) while reading upstream, client: 192.168.0.6, server: _, request: "POST /plugins/fever/?api&items&with_ids=419622,403444,11396,47491,89016,201017,51877,196907,184500,193202,228047,249027,289814,260797,406323,319767,334850,335967,401364,345866,418769,412057,412217,412377,403604,425003,258920 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.0.5:8020"
2017/03/21 14:50:12 [crit] 287#287: *626 open() "/var/lib/nginx/tmp/fastcgi/4/06/0000000064" failed (13: Permission denied) while reading upstream, client: 192.168.0.6, server: _, request: "POST /plugins/fever/?api&items&with_ids=419622,403444,11396,47491,89016,201017,51877,196907,184500,193202,228047,249027,289814,260797,406323,319767,334850,335967,401364,345866,418769,412057,412217,412377,403604,425003,258920 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.0.5:8020"
2017/03/21 14:50:22 [crit] 287#287: *634 open() "/var/lib/nginx/tmp/fastcgi/5/06/0000000065" failed (13: Permission denied) while reading upstream, client: 192.168.0.6, server: _, request: "POST /plugins/fever/?api&items&with_ids=419622,403444,11396,47491,89016,201017,51877,196907,184500,193202,228047,249027,289814,260797,406323,319767,334850,335967,401364,345866,418769,412057,412217,412377,403604,425003,258920 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.0.5:8020"
2017/03/21 14:52:23 [crit] 287#287: *642 open() "/var/lib/nginx/tmp/fastcgi/6/06/0000000066" failed (13: Permission denied) while reading upstream, client: 192.168.0.6, server: _, request: "POST /plugins/fever/?api&items&with_ids=419622,403444,11396,47491,89016,201017,51877,196907,184500,193202,228047,249027,289814,260797,406323,319767,334850,335967,401364,345866,418769,412057,412217,412377,403604,425003,258920 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.0.5:8020"
I use tt-rss with fever plugin.
There is a typo in the README.md
file in the following quoted paragraph (emphasis mine) where guard
is misspelled as gaurd
.
The container can configure itself using environment variables, the gaurd for this logic to run is if the variable DB_TYPE is set. The most common variables to set are a URL for the application and a database endpoint. IE:
With version 19.2-ls11.
I set all the variables I need in config.php by using environment variables in docker run.
I tried to set SINGLE_USER_MODE=false. However, in the config.php file generated from the environment variables, I have define('SIMPLE_UPDATE_MODE', 'false');
instead of define('SIMPLE_UPDATE_MODE', false);
(note the quotes). This is interpreted as true
.
https://community.tt-rss.org/t/versioning-changes-for-trunk/2974
Please update logic to make what is currently develop
to latest
Currently, TT-RSS is stored in the config volume.
It is configured by creating a config.php
file in this volume (either manually, or through the installer web ui)
It would be great to have the option to use environment variables to inject the configuration in the container.
In this case, I'm guessing we would need to remove the config volume definition.
We could have 2 different ways to run the container :
-v <path to data>:/config
config.php
from the sample config.php-dist and inject all the possibe settings from there.(no volume on /config)
-e DB_TYPE=pgsql or mysql
-e DB_HOST=localhost
-e DB_USER=fox
-e DB_NAME=fox
-e DB_PASS=XXXXXX
-e DB_PORT=5432 or 3306
-e SELF_URL_PATH=http://example.org/tt-rss
-e [email protected]
...
Armhf, Raspbian 9 (Stretch) on Raspberry Pi 3 B+
sudo bash
mkdir /home/pi/tt-rss
chown -R pi /home/pi/tt-rss
docker run
-d
--name=tt-rss
-e PUID=1000
-e PGID=1000
-e TZ=America/Los_Angeles
-e DB_TYPE=pgsql
-e DB_HOST=rss.lan
-e DB_USER=ttrss
-e DB_NAME=ttrss
-e DB_PASS=''
-e DB_PORT=5432
-e SELF_URL_PATH=http://rss.lan
-p 80:80
-p 443:443
-v /home/pi/tt-rss:/config
--restart unless-stopped
linuxserver/tt-rss
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...
_ ()
| | ___ _ __
| | / __| | | / \
| | \__ \ | | | () |
|_| |___/ |_| \__/
Brought to you by linuxserver.io
We gratefully accept donations at:
https://www.linuxserver.io/donate/
GID/UID
User uid: 1000
User gid: 1000
[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 19-newdefault: executing...
[cont-init.d] 19-newdefault: exited 0.
[cont-init.d] 20-config: executing...
[cont-init.d] 20-config: exited 0.
[cont-init.d] 30-config: executing...
DB_TYPE set, injecting env variables into config.php
Creating config.php from the dist file
[cont-init.d] 30-config: exited 0.
[cont-init.d] 30-keygen: executing...
generating self-signed keys in /config/keys, you can replace these with your own keys if required
Generating a RSA private key
..........................................+++++
........+++++
writing new private key to '/config/keys/cert.key'
[cont-init.d] 30-keygen: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
nano /run/s6/services/update-feeds/run #shows
#!/usr/bin/with-contenv bash
s6-setuidgid abc php7 \
/config/www/tt-rss/update_daemon2.php > /dev/null 2>&1
/config/www$ ls
index.html
(missing tt-rss directory at referenced location)
Thank you for the container, I hope I'm not missing something on my end.
I've tried the tags :latest & :develop which both seem to be outdated compared to the releases @ https://git.tt-rss.org/git/tt-rss/src/master - looking at closed support jobs here there is an indication to use :master for the latest builds? I've been trying to get some plugins working but due to the age of :latest (2yrs?) they are not working....although I'm unsure if the version number shown in tt-rss/preferences of 17.4 has just never been updated by fox?
Hard to move past the current version of tt-rss in this docker while troubleshooting the problem.
Just installed from dockerhub, verified that I'm using the correct UID and GID for writing files (the lock itself seems to have no problem writing). I've set up the db and everything, but when trying to load feeds I get the following in the error log:
file_get_contents(lock/update_daemon.stamp): failed to open stream: No such file or directory
I've tried deleting the lock file that is present, update_daemon.lock, creating the file manually, and setting permissions to 0777, however the error keeps coming up The docker logs are unhelpful, there isn't anything about any error, just a normal install and startup. Any ideas would be appreciated, thanks!
Hi;
This is how I spin it as user which have UID:1000 and GID: 1000
so it's not an write permission issue
docker create \
--name=tt-rss \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-p 80:80 \
-v ./data/tt-rss:/config \
--restart unless-stopped \
linuxserver/tt-rss
I beleive the issue is:
The nginx site-confs point to /var/www/html
not to /config/www
cat data/tt-rss/nginx/site-confs/default
server {
listen 80 default_server;
root /var/www/html;
ls data/tt-rss/www/
index.html
docker exec tt-rss ls /var/www/html/
CONTRIBUTING.md
COPYING
README.md
api
atom-to-html.xsl
backend.php
cache
classes
config.php
config.php-dist
css
errors.php
feed-icons
images
include
index.php
install
js
lib
locale
lock
messages.pot
opml.php
plugins
plugins.local
prefs.php
public.php
register.php
schema
templates
tests
themes
themes.local
update.php
update_daemon2.php
utils
vendor
tt-rss maintainer notes that tt-rss is a rolling release model based on the master branch:
https://discourse.tt-rss.org/t/version-bump-for-ttrss/2655/2
Can the 'latest' tag of this docker image be made to follow the master branch of tt-rss?
Add the php7-ldap
package so the auth ldap plugin (https://github.com/hydrian/TTRSS-Auth-LDAP) can be used.
on a new install I had to
mkdir /config/{cache/{images,upload,export},feed-icons,lock}
chmod 0777 -R /config/{cache,feed-icons,lock}
to make it work
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:
Image cache is not writable (chmod -R 777 cache/images)
Upload cache is not writable (chmod -R 777 cache/upload)
Data export cache is not writable (chmod -R 777 cache/export)
ICONS_DIR defined in config.php is not writable (chmod -R 777 feed-icons).
LOCK_DIRECTORY defined in config.php is not writable (chmod -R 777 lock).
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.
While working on creating a subfolder config for the linuxserver/letsencrypt Docker image, I have come to the conclusion that reverse proxying can't fully work unless TT-RSS is also being served from a subfolder. TT-RSS doesn't have a "Base URL" setting, and the SELF_URL_PATH config option doesn't act as a substitute. URI rewriting at the proxy side only goes so far.
The proposed idea is to create a new Docker environmental variable that would let you set the name of the subfolder that TT-RSS will be installed into, rather than directly into /var/www/html. If the variable is omitted, TT-RSS will install into the www root, like before.
If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.
On subcride: https://blog.hackpascal.net/feed/
Couldn't download the specified URL: ; 60 SSL certificate problem: unable to get local issuer certificate
docker run 'linuxserver/tt-rss:cd4b7f19-ls19'
docker exec bash
xxxxxxx@xxxxxxxx:/tmp# curl 'https://blog.hackpascal.net/feed/'
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
OS:
CPU architecture: x86_64/arm32/arm64
How docker service was installed:
Thanks for the work on this container, I use it all the time an appreciate your work!
Latest builds seems to break ARM support (Raspberry Pi 3 B+)
Roll back to 19.2-ls21 resolves the issue.
Raspbian Stretch
Log output:
[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 19-newdefault: executing...
[cont-init.d] 19-newdefault: exited 0.
[cont-init.d] 20-config: executing...
/var/run/s6/etc/cont-init.d/20-config: line 15: /usr/bin/find: cannot execute binary file: Exec format error
/var/run/s6/etc/cont-init.d/20-config: line 24: /bin/sed: cannot execute binary file: Exec format error
/var/run/s6/etc/cont-init.d/20-config: line 26: /bin/sed: cannot execute binary file: Exec format error
/var/run/s6/etc/cont-init.d/20-config: line 27: /bin/sed: cannot execute binary file: Exec format error
[cont-init.d] 20-config: exited 0.
[cont-init.d] 30-config: executing...
If there's a need to recreate the www directory, how can this be done. A recreate container doesn't seem to trigger it.
2ndly, Is there a way in pulling the image, that a user theme can be loaded? ie the feedly one?
A user on discord reported having trouble and seeing an error in their logs so I did some additional testing and here's the results.
I spun up a brand new container with the following compose:
ttrss:
container_name: ttrss
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
image: linuxserver/tt-rss
ports:
- ${TTRSS_PORT_80}:80
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/ttrss:/config
(some irrelevant parts removed like logging)
The first run had no issues. I stopped and started the container and the second run had the following error in the log:
[cont-init.d] 19-newdefault: executing...
mv: cannot stat '/defaults/default.incontainer': No such file or directory
[cont-init.d] 19-newdefault: exited 0.
I stopped and removed the container and recreated it (same config volume) and it did not have an error.
I stopped the container again and started it again (without recreating) and found the same error once again in the logs.
I checked the script in question that's causing the error and found this
docker-tt-rss/root/etc/cont-init.d/19-newdefault
Lines 4 to 5 in de84462
/config/www/tt-rss
which I do not have. I do have /config/www
but no tt-rss
inside it.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.