Add simplified Docker Compose tutorial (#52)

* Add simplified Docker Compose tutorial

references [issue #1903](https://github.com/iv-org/invidious/issues/1903)

Revised Docker walkthrough in `Installation.md`

Includes up to date Docker Compose file with Quay image replacing the now-defunct Docker Hub image

Note: In the Docker Compose file, the POSTGRES_USER env var can't be changed because the username `kemal` is hard coded into the initial DB migration files found in `./config/sql/`

* Replaced link to gist with contents of Compose file
This commit is contained in:
Liam Davis 2021-05-13 05:39:50 -06:00 committed by GitHub
parent ee3fb0fb51
commit 39167327fe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -20,25 +20,106 @@ After installation take a look at the [Post-install steps](#post-install-configu
## Docker ## Docker
### Build and start cluster > **Use of the Invidious image hosted on Docker Hub is highly discouraged.** The current maintainers no longer have access to the account and it is considered deprecated. [The image hosted on Quay](https://quay.io/repository/invidious/invidious) is recommended as an alternative. This change is reflected in the `docker-compose.yml` file used in this walkthrough. Also, unlike Docker Hub, [Quay is open source](https://github.com/quay/quay/blob/master/LICENSE).
{.is-warning}
Ensure [Docker Engine](https://docs.docker.com/engine/install/) and [Docker Compose](https://docs.docker.com/compose/install/) are installed before beginning.
### Make directory
```bash
$ mkdir invidious
```
### Create Docker Compose file
```bash
$ cd invidious
```
```bash
$ nano docker-compose.yml
```
Here is a working Compose setup:
```docker
version: "2.4"
services:
postgres:
image: postgres:10
restart: always
networks:
- invidious
volumes:
- postgresdata:/var/lib/postgresql/data
- ./config/sql:/config/sql
- ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
environment:
POSTGRES_DB: invidious
POSTGRES_USER: kemal
POSTGRES_PASSWORD: kemal
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"]
invidious:
image: quay.io/invidious/invidious:latest
restart: always
networks:
- invidious
mem_limit: 1024M
cpus: 0.5
ports:
- "127.0.0.1:3000:3000"
environment:
INVIDIOUS_CONFIG: |
channel_threads: 1
check_tables: true
feed_threads: 1
db:
dbname: invidious
user: kemal
password: kemal
host: postgres
port: 5432
full_refresh: false
https_only: false
domain:
# external_port:
depends_on:
- postgres
volumes:
postgresdata:
networks:
invidious:
```
> The environment variable `POSTGRES_USER` cannot be changed. The SQL config files that run the initial database migrations are hard-coded with the username `kemal`.
{.is-warning}
### Start Invidious
```bash ```bash
$ docker-compose up $ docker-compose up
``` ```
or
```bash
$ docker-compose up -d
```
to run it in the background.
Then visit `localhost:3000` in your browser. Then, visit `localhost:3000` in your browser.
### Rebuild cluster ### Stop Invidious
```bash ```bash
$ docker-compose build $ docker-compose down
``` ```
### Delete data and rebuild ### Delete data
```bash ```bash
$ docker volume rm invidious_postgresdata $ docker volume rm invidious_postgresdata
$ docker-compose build
``` ```
## Manual installation ## Manual installation