Skip to content

Commit 9eb9775

Browse files
committed
Installation Guide content updates
1 parent 08d3082 commit 9eb9775

File tree

1 file changed

+48
-38
lines changed

1 file changed

+48
-38
lines changed

docs/Installation-Guide.md

Lines changed: 48 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ The main (and recommended) way to run tt-rss is under Docker.
1616

1717
Docker images for <https://github.com/tt-rss/tt-rss> are being built (for `linux/amd64` and `linux/arm64`) and published
1818
([via GitHub Actions](https://github.com/tt-rss/tt-rss/actions/workflows/publish.yml)) to:
19-
* Docker Hub (as [supahgreg/tt-rss](https://hub.docker.com/r/supahgreg/tt-rss/) and [supahgreg/tt-rss-web-nginx](https://hub.docker.com/r/supahgreg/tt-rss-web-nginx/)).
19+
* Docker Hub (as [supahgreg/tt-rss](https://hub.docker.com/r/supahgreg/tt-rss/) and [supahgreg/tt-rss-web-nginx](https://hub.docker.com/r/supahgreg/tt-rss-web-nginx/))
2020
* GitHub Container Registry (as [ghcr.io/tt-rss/tt-rss](https://github.com/orgs/tt-rss/packages/container/package/tt-rss)
21-
and [ghcr.io/tt-rss/tt-rss-web-nginx](https://github.com/orgs/tt-rss/packages/container/package/tt-rss-web-nginx)).
21+
and [ghcr.io/tt-rss/tt-rss-web-nginx](https://github.com/orgs/tt-rss/packages/container/package/tt-rss-web-nginx))
2222

2323
{: .warning }
2424
> Podman is not Docker. Please don't report issues related to running tt-rss when using Podman or Podman Compose.
@@ -28,23 +28,25 @@ Consider using an external [Patroni cluster](https://patroni.readthedocs.io/en/l
2828

2929
## TL;DR
3030

31-
Place both `.env` and `docker-compose.yml` together in a directory, edit `.env` as you see fit, run `docker compose up -d`.
32-
33-
## In more details
34-
35-
1. Create a directory for your tt-rss installation. Do the rest in there.
36-
1. [Get the `.env` file](docs/Installation-Guide.md#.env) and edit it to suit your needs.
37-
1. Make sure you change all the password using something like `pwgen` to generate long and
38-
complex ones.
39-
1. [Get the `docker-compose.yml` file](docs/Installation-Guide.md#docker-compose) and edit
40-
it to suit your needs.
41-
1. Run `docker-compose up -d` to run within the current shell. Note that the `-d` will detach the docker containers so when you close your shell, docker will still run.
42-
1. [Optional] Run `lazydocker` so you can always see what is happening.
43-
1. [Lazydocker](https://github.com/jesseduffield/lazydocker) is a nice little terminal
44-
UI for both `docker` and `docker-compose`, written in Go with the `gocui` library.
45-
This means that you can run it in an SSH session to see what your Docker Compose
46-
installation is doing — or not.
47-
1. [Optional] Run lots of Docker commands so you see what is happening. [Check the docker documentation](https://docs.docker.com/manuals/).
31+
Place [`.env`](#env) and [`docker-compose.yml`](#docker-composeyml) (contents below) together in a directory, edit `.env` as you see fit, and run `docker compose up -d`.
32+
33+
## In more detail
34+
35+
1. Create a directory for your tt-rss installation. Do the remaining steps in there.
36+
2. Create a `.env` file using [`.env`](#env) as a starting point; edit it to suit your needs (e.g. adjusting `HTTP_PORT`).
37+
* Consider changing password/secret environment variables to something you're comfortable with (e.g. `pwgen`-generated values).
38+
4. Create a `docker-compose.yml` file using [`docker-compose.yml`](#docker-composeyml) as a starting point; edit it to suit your needs
39+
(e.g. enabling the `backups` container, using the `ghcr.io` images, using a newer `postgres` image, etc.).
40+
5. Run [`docker compose up -d`](https://docs.docker.com/reference/cli/docker/compose/up/) to bring up the environment.
41+
* Note that the `-d` will result in the containers running in the background, which is generally what you want.
42+
6. Review containers logs and states. Some typical ways this may be done include:
43+
* Running commands like [`docker compose ps`](https://docs.docker.com/reference/cli/docker/compose/ps/) and [`docker compose logs`](https://docs.docker.com/reference/cli/docker/compose/logs/)
44+
* Using a third-party tool like [`lazydocker`](https://github.com/jesseduffield/lazydocker) (a terminal UI for Docker and Docker Compose).
45+
7. Access tt-rss in your browser.
46+
* The URL to use depends upon how you set things up, but assuming you kept `HTTP_PORT=127.0.0.1:8280` in your `.env` file and are on the same system
47+
as tt-rss, you'd use <http://127.0.0.1:8280/tt-rss>.
48+
8. Log in as `admin` or (if you enabled the related environment variables) the auto-created user.
49+
* See comments in [`.env`](#env) regarding the password(s).
4850

4951
### .env
5052

@@ -192,6 +194,14 @@ volumes:
192194
193195
## FAQ
194196
197+
### How do I update tt-rss?
198+
199+
When you see that tt-rss needs an update, just pull the latest image/code. How this is done depends upon your environment, but typical ways to accomplish this are:
200+
* Docker (generally in the directory where you placed `docker-compose.yml`): `docker compose pull && docker compose up -d`
201+
* Git (from your tt-rss directory): `git pull`
202+
203+
If a tt-rss database upgrade is required you'll be redirected to a special screen in the UI.
204+
195205
### Your Docker images won't run on X
196206

197207
If you're using an OS or architecture that isn't currently supported (i.e. something other than `linux/amd64` and `linux/arm64`),
@@ -240,11 +250,12 @@ Using the aforementioned example, you could do one of the following:
240250

241251
### I'm using docker-compose.override.yml and now I'm getting schema update (and other) strange issues
242252

243-
Alternatively, you've changed something related to `/var/www/html/tt-rss` in `docker-compose.yml`.
253+
You've might've changed something related to `/var/www/html/tt-rss` in `docker-compose.yml`.
244254

245-
Your Docker setup is messed up for some reason, so tt-rss can't update itself to the persistent storage location on startup (this is just an example of one issue, there could be many others).
255+
Your Docker setup is messed up for some reason, so tt-rss can't update itself to the persistent storage location on startup
256+
(this is just an example of one issue, there could be many others).
246257

247-
Consider undoing any recent changes, looking up error messages, etc.
258+
Consider undoing any recent changes, searching for error messages, etc.
248259

249260
### How do I make it run without /tt-rss/ in the URL, i.e. at website root?
250261

@@ -259,14 +270,14 @@ Don't forget to remove `/tt-rss/` from `TTRSS_SELF_URL_PATH` (if you have it set
259270

260271
### How do I apply configuration options?
261272

262-
There are two sets of options you can change through the environment: those specific to tt-rss (those are prefixed with `TTRSS_`) and those affecting container behavior.
273+
There are two sets of options you can change through the environment: those specific to tt-rss (which are prefixed with `TTRSS_`) and those affecting container behavior.
263274

264275
#### Options specific to tt-rss
265276

266277
For example, to set tt-rss global option `SELF_URL_PATH`, add the following to `.env`:
267278

268279
```ini
269-
TTRSS_SELF_URL_PATH=http://example.com/tt-rss
280+
TTRSS_SELF_URL_PATH=https://example.com/tt-rss
270281
```
271282

272283
Don't use quotes around values. Note the prefix (`TTRSS_`) before the value.
@@ -449,7 +460,7 @@ Note that `proxy_pass` in this example points to container website root.
449460

450461
### I have internal web services tt-rss is complaining about (URL is invalid, loopback address, disallowed ports)
451462

452-
Put your local services on the same Docker network with tt-rss, then access them by service (=host) names, i.e. `http://rss-bridge/`.
463+
Put your local services on the same Docker network with tt-rss, then access them by service (i.e. host) names, i.e. `http://rss-bridge/`.
453464

454465
```yml
455466
services:
@@ -461,18 +472,18 @@ networks:
461472
name: ttrss-docker_default
462473
```
463474

464-
If your service uses a non-standard (i.e. not 80 or 443) port, make an internal reverse proxy sidecar container for it.
475+
If your service uses a non-standard (i.e. not `80` or `443`) port, make an internal reverse proxy sidecar container for it.
465476

466477
### Backup and restore
467478

468-
Backups are important as you will eventually lose your data due many a thing. It is better to have them rather than be sorry. Yes, even for a simple service like tt-rss.
479+
It's highly recommended that you back up your data. If your tt-rss is particularly important to you, also consider validating the backup artifacts by
480+
using them to restore to a parallel environment.
469481

470-
Restoring from backups from time to time (is quarterly too much?) is another thing you should get used to. There is no point in having backups if you cannot restore from them.
482+
If you have the `backups` container enabled, the default configuration takes automatic backups (database, local plugins, etc.) once a week to a separate storage volume.
471483

472-
If you have `backups` container enabled, stock configuration makes automatic backups (database, local plugins, etc.) once a week to a separate storage volume.
473-
474-
Note that this container is included as a safety net for people who wouldn't bother with backups otherwise.
475-
If you value your data, you should invest your time into setting up something like [WAL-G](https://github.com/wal-g/wal-g) instead.
484+
{: .note }
485+
> The `backups` container is included as a safety net for people who wouldn't otherwise bother with backups.
486+
> For a more robust database backup/restore solution, consider setting up something like [WAL-G](https://github.com/wal-g/wal-g).
476487

477488
#### Manually taking a backup
478489

@@ -504,13 +515,12 @@ The process to restore the database from a `backups` container backup might look
504515

505516
#### OPML
506517

507-
Optionally, you could download your data in `OPML` regularity. It is not a full backup, can be useful nonetheless.
508-
509-
### Update tt-rss
518+
As an additional, **but incomplete**, form of backup, you might also wish to periodically export a subset of your tt-rss user data as OPML.
519+
This may be done in `Preferences --> Feeds --> OPML` or via the CLI with a command like `update.php --opml-export:USERNAME:FILENAME`.
510520

511-
When you see that `tt-rss` needs an update, you can run the following docker command: `docker restart ttrss_app_1`.
512-
513-
You can check that the container app is called `ttrss_app_1` by using `docker ps`.
521+
{: .warning }
522+
> OPML exports are not a complete backup.
523+
> They only include information about one user's categories, feeds (configuration only), and (optionally) tt-rss settings (e.g. preferences, labels, filters).
514524

515525
### How do I use custom certificates?
516526

0 commit comments

Comments
 (0)