2019-11-15 12:51:55 +00:00
# A primitive set of scripts to deploy tt-rss via docker-compose
2019-11-16 11:20:54 +00:00
The idea is to provide tt-rss working (and updating) out of the box with minimal fuss.
2019-11-15 14:08:40 +00:00
2019-11-16 11:26:11 +00:00
Not fully tested yet, don't use in production unless you know what you're doing. Some features may be unimplemented or broken, check the [TODO ](https://git.tt-rss.org/fox/ttrss-docker-compose/wiki/TODO ).
2019-11-15 12:51:55 +00:00
The general outline of the configuration is as follows:
2020-01-22 13:41:31 +00:00
- separate containers (frontend: caddy, database: pgsql, app and updater: php/fpm)
2019-11-16 06:31:55 +00:00
- caddy has its http port exposed to the outside
2020-01-22 13:40:31 +00:00
- feed updates are handled via update daemon started in a separate container (updater)
2019-11-15 14:56:14 +00:00
- tt-rss source updates from git master repository on container restart
- schema is installed automatically if it is missing
- config.php is generated if it is missing
2019-11-15 18:34:23 +00:00
- SSL termination not included, use a sidecar container for that (TODO)
- tt-rss code is stored on a persistent volume so plugins, etc. could be easily added
2019-11-15 12:51:55 +00:00
2019-11-15 18:30:50 +00:00
### Installation
2019-11-15 18:50:21 +00:00
#### Check out scripts from Git:
2019-11-15 18:30:50 +00:00
```
2019-11-15 18:49:44 +00:00
git clone https://git.tt-rss.org/fox/ttrss-docker-compose.git ttrss-docker & & cd ttrss-docker
2019-11-15 18:30:50 +00:00
```
2020-01-19 09:54:24 +00:00
#### Edit configuration files:
2019-11-15 18:30:50 +00:00
2020-01-19 09:54:24 +00:00
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
2019-11-15 18:30:50 +00:00
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.
2020-01-19 09:54:24 +00:00
Note: ``SELF_URL_PATH`` is updated in generated tt-rss ``config.php`` automatically on container
2020-01-19 10:08:54 +00:00
restart. You don't need to modify ``config.php`` manually for this.
2020-01-19 09:54:24 +00:00
* 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:`` from ``HTTP_PORT`` variable in ``.env``.
2019-11-15 18:50:21 +00:00
#### Build and start the container
2020-01-19 10:11:34 +00:00
``docker-compose up --build``
2019-11-15 18:30:50 +00:00
See docker-compose documentation for more information and available options.
### Updating
2019-11-16 11:23:43 +00:00
Restarting the container will update tt-rss from the origin repository. If database needs to be updated,
2019-11-15 18:35:29 +00:00
tt-rss will prompt you to do so on next page refresh.
2019-11-15 18:30:50 +00:00
2019-11-16 11:23:43 +00:00
#### Updating container scripts
1. Stop the containers: ``docker-compose down && docker-compose rm``
2019-11-16 11:24:26 +00:00
2. Update scripts from git: ``git pull origin master`` and apply any necessary modifications to ``.env``, etc.
2019-11-16 11:23:43 +00:00
3. Rebuild and start the containers: ``docker-compose up --build``
2020-01-22 16:58:05 +00:00
### Using SSL with Letsencrypt
2019-11-16 06:43:05 +00:00
2019-11-16 06:43:32 +00:00
- ``HTTP_HOST`` in ``.env`` should be set to a valid hostname (i.e. no localhost or IP address)
2019-11-16 06:45:06 +00:00
- comment out ``web`` container, uncomment ``web-ssl`` in ``docker-compose.yml``
2020-01-22 16:58:05 +00:00
- ``SELF_URL_PATH`` in ``.env`` should not include a port as the container is going to use default https port
2019-11-16 06:43:05 +00:00
- ports 80 and 443 should be externally accessible i.e. not blocked by firewall and/or conflicting with host services
2019-11-15 18:30:50 +00:00
### How do I add plugins and themes?
By default, tt-rss code is stored on a persistent docker volume (``app``). You can find
2019-11-15 18:31:48 +00:00
its location like this:
``docker volume inspect ttrss-docker_app | grep Mountpoint``
2019-11-15 18:30:50 +00:00
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.
2019-11-15 12:59:47 +00:00
2019-11-16 08:20:36 +00:00
### 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;
}
```
2020-01-19 10:12:06 +00:00
You will need to set ``SELF_URL_PATH`` to a correct (i.e. visible from the outside) value in the ``.env`` file.
2019-11-16 08:24:18 +00:00
2019-11-15 14:08:40 +00:00
### TODO
2019-11-16 10:19:36 +00:00
- [wiki/TODO ](https://git.tt-rss.org/fox/ttrss-docker-compose/wiki/TODO )
2019-11-15 19:03:11 +00:00
### Suggestions / bug reports
2019-11-15 18:33:02 +00:00
2019-11-16 10:19:36 +00:00
- [Forum thread ](https://community.tt-rss.org/t/docker-compose-tt-rss/2894 )