Home
fox edited this page 2 days ago

Installation

See README.md

FAQ

Using SSL with Letsencrypt

  • HTTP_HOST in .env should be set to a valid hostname (i.e. no localhost or IP address)
  • comment out web container, uncomment web-ssl in docker-compose.yml
  • SELF_URL_PATH in .env should not include a port as the container is going to use default https port
  • ports 80 and 443 should be externally accessible i.e. not blocked by firewall and/or conflicting with host services

I'm trying to run CLI tt-rss scripts inside the container and they complain about root

docker exec -it --user app APP_CONTAINER_ID /var/www/html/tt-rss/update.php --help

How do I add plugins and themes?

By default, tt-rss code is stored on a persistent docker volume (app). You can find its location like this:

docker volume inspect ttrss-docker_app | grep Mountpoint

Alternatively, you can mount any host directory as /var/www/html by updating docker-compose.yml, i.e.:

volumes:
      - app:/var/www/html

Replace with:

volumes:
      - /opt/tt-rss:/var/www/html

Copy and/or git clone any third party plugins into plugins.local as usual.

How do I put this container behind a reverse proxy?

A common pattern is shared nginx doing SSL termination, etc.

Nginx:

   location /tt-rss/ {
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Forwarded-Proto $scheme;

      proxy_pass http://127.0.0.1:8280/tt-rss/;
      break;
   }

Note: if you run into problems with global PHP-to-FPM handler taking priority over proxied location, define tt-rss location like this so it takes higher priority:

location ^~ /tt-rss/ {
   ....
}

Apache:

a2enmod proxy
a2enmod proxy_http
<VirtualHost *:80>
    ServerName domain.com

    ProxyPreserveHost On
    ProxyRequests Off

    # Server IP + the exposed port of docker container 
    ProxyPass / http://127.0.0.1:8280/
    ProxyPassReverse / http://127.0.0.1:8280/
</VirtualHost>

You will need to set SELF_URL_PATH to a correct (i.e. visible from the outside) value in the .env file.

Backing up the database

You can use something like this:

source .env
docker-compose exec db /bin/bash \
  -c "export PGPASSWORD=$POSTGRES_PASSWORD \
  && pg_dump -U $POSTGRES_USER $POSTGRES_USER" \
  | gzip -9 > backup.sql.gz

(source)

Stock Caddy container doesn't work on Raspberry Pi

  • You can use nginx frontend instead of Caddy by uncommenting web-nginx container in docker-compose.yml.
  • Alternatively, replace web container source image with jessestuart/caddy (note that it has telemetry enabled).

TODO

See TODO.