400fd5c1aa | 5 years ago | |
---|---|---|
app | 5 years ago | |
web | 5 years ago | |
web-ssl | 5 years ago | |
.env-dist | 5 years ago | |
.gitignore | 5 years ago | |
README.md | 5 years ago | |
docker-compose.yml | 5 years ago |
README.md
A primitive set of scripts to deploy tt-rss via docker-compose
The idea is to provide tt-rss working (and updating) out of the box with minimal fuss.
This setup is still WIP. Some features may be unimplemented or broken. Check the following before deploying:
General outline of the configuration is as follows:
- separate containers (frontend: caddy, database: pgsql, app and updater: php/fpm)
- tt-rss updates from git master repository on container restart
- tt-rss source code is stored on a persistent volume so plugins, etc. could be easily added
config.php
is generated if it is missing- database schema is installed automatically if it is missing
- Caddy has its http port exposed to the outside
- optional SSL support via Caddy w/ automatic letsencrypt certificates
- feed updates are handled via update daemon started in a separate container (updater)
Installation
Check out scripts from Git:
git clone https://git.tt-rss.org/fox/ttrss-docker-compose.git ttrss-docker && cd ttrss-docker
Edit configuration files:
Copy .env-dist
to .env
and edit any relevant variables you need changed.
- You will likely have to change
SELF_URL_PATH
which should equal fully qualified tt-rss URL as seen when opening it in your web browser. If this field is set incorrectly, you will likely see the correct value in the tt-rss fatal error message.
Note: SELF_URL_PATH
is updated in generated tt-rss config.php
automatically on container
restart. You don't need to modify config.php
manually for this.
- By default, container binds to localhost port 8280. If you want the container to be
accessible on the net, without using a reverse proxy sharing same host, you will need to
remove
127.0.0.1:
fromHTTP_PORT
variable in.env
.
Build and start the container
docker-compose up --build
See docker-compose documentation for more information and available options.
Updating
Restarting the container will update tt-rss from the origin repository. If database needs to be updated, tt-rss will prompt you to do so on next page refresh.
Updating container scripts
- Stop the containers:
docker-compose down && docker-compose rm
- Update scripts from git:
git pull origin master
and apply any necessary modifications to.env
, etc. - Rebuild and start the containers:
docker-compose up --build
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, uncommentweb-ssl
indocker-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
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.
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;
}
You will need to set SELF_URL_PATH
to a correct (i.e. visible from the outside) value in the .env
file.