Skip to content

Commit

Permalink
Migrate from nginx to traefik (#450)
Browse files Browse the repository at this point in the history
  • Loading branch information
zoriya authored Apr 29, 2024
2 parents 2e122d9 + 111e8f7 commit a8b25b9
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 59 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/robot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:

- name: Start the service
run: |
docker compose up -d back postgres ingress meilisearch # --wait Wait is not available on gha
docker compose up -d back postgres traefik meilisearch --wait
- name: Perform healthchecks
run: |
Expand Down
11 changes: 4 additions & 7 deletions INSTALLING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

1. Install docker & docker-compose
2. Download the
[`docker-compose.yml`](https://github.com/zoriya/kyoo/releases/latest/download/docker-compose.yml),
[`nginx.conf.template`](https://raw.githubusercontent.com/zoriya/Kyoo/master/nginx.conf.template) and
[`docker-compose.yml`](https://github.com/zoriya/kyoo/releases/latest/download/docker-compose.yml) and
[`.env`](https://raw.githubusercontent.com/zoriya/Kyoo/master/.env.example) files
3. Fill the `.env` file with your configuration options (and an API Key from [themoviedb.org](https://www.themoviedb.org/))
4. Look at [Hardware Acceleration section](#Hardware-Acceleration) if you need it
Expand All @@ -17,18 +16,16 @@ To install Kyoo, you need docker and docker-compose. Those can be installed from
or [Windows](https://docs.docker.com/desktop/install/windows-install/). Docker is used to run each services of Kyoo in
an isolated environment with all the dependencies they need.

Kyoo also needs 3 files to work properly. Two of them can simply be copy-pasted from this repository, the other needs to be filled in with your configurations.
Kyoo also needs 2 files to work properly. The first should be downloaded from the latest release artificat, the other needs to be filled in with your configurations.
Those files can be put in any directory of your choice.

Those 3 files are:
Those files are:

- A `docker-compose.yml` (simply download docker-compose.yml from [the latest release](https://github.com/zoriya/kyoo/releases/latest/download/docker-compose.yml)).
- A `nginx.conf.template` copied from [here](https://raw.githubusercontent.com/zoriya/Kyoo/master/nginx.conf.template).
- A `.env` file that you will need to **fill**. Look at the example [.env.example](https://raw.githubusercontent.com/zoriya/Kyoo/master/.env.example)

> If you want an explanation of what are those files, you can read the following:
> The `docker-compose.yml` file describes the different services of Kyoo, where they should be downloaded and their start order. \
> The `nignx.conf.template` file describes which service will be called when accessing the URL of Kyoo. \
> The `.env` file contains all the configuration options that the services in `docker-compose.yml` will read.
To retrieve metadata, Kyoo will need to communicate with an external service. For now, that is `the movie database`.
Expand All @@ -44,7 +41,7 @@ Congratulation, everything is now ready to use Kyoo. You can navigate to `http:/

# Updating

Updating Kyoo is exactly the same as installing it. Get an updated version of the `docker-compose.yml` and `nginx.conf.template` files and
Updating Kyoo is exactly the same as installing it. Get an updated version of the `docker-compose.yml` file and
unsure that your `.env` contains all the options specified in the updated `.env.example` file.

After that, you will need to update Kyoo's services. For that, open a terminal in the configuration's directory and run
Expand Down
30 changes: 18 additions & 12 deletions docker-compose.build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ services:
condition: service_completed_successfully
volumes:
- kyoo:/metadata
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=PathPrefix(`/api/`)"
- "traefik.http.routers.api.middlewares=api-sp"
- "traefik.http.middlewares.api-sp.stripprefix.prefixes=/api"
- "traefik.http.middlewares.api-sp.stripprefix.forceSlash=false"

migrations:
build:
Expand All @@ -50,6 +56,9 @@ services:
restart: on-failure
environment:
- KYOO_URL=${KYOO_URL:-http://back:5000}
labels:
- "traefik.enable=true"
- "traefik.http.routers.front.rule=PathPrefix(`/`)"

scanner:
build: ./scanner
Expand Down Expand Up @@ -121,20 +130,17 @@ services:
- GOCODER_VAAPI_RENDERER=${GOCODER_VAAPI_RENDERER:-/dev/dri/renderD128}
profiles: ['qsv']

ingress:
image: nginx
restart: on-failure
environment:
- PORT=8901
- FRONT_URL=http://front:8901
- BACK_URL=${KYOO_URL:-http://back:5000}
volumes:
- ./nginx.conf.template:/etc/nginx/templates/kyoo.conf.template:ro
depends_on:
- back
- front
traefik:
image: traefik:v2.11
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.web.address=:8901"
- "--accesslog=true"
ports:
- "8901:8901"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"

postgres:
image: postgres:15
Expand Down
27 changes: 18 additions & 9 deletions docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@ services:
- ./back:/app
- /app/out/
- kyoo:/metadata
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=PathPrefix(`/api/`)"
- "traefik.http.routers.api.middlewares=api-sp"
- "traefik.http.middlewares.api-sp.stripprefix.prefixes=/api"
- "traefik.http.middlewares.api-sp.stripprefix.forceSlash=false"

migrations:
build:
Expand Down Expand Up @@ -74,6 +80,9 @@ services:
restart: on-failure
environment:
- KYOO_URL=${KYOO_URL:-http://back:5000}
labels:
- "traefik.enable=true"
- "traefik.http.routers.front.rule=PathPrefix(`/`)"

scanner:
build: ./scanner
Expand Down Expand Up @@ -145,17 +154,17 @@ services:
- GOCODER_VAAPI_RENDERER=${GOCODER_VAAPI_RENDERER:-/dev/dri/renderD128}
profiles: ['qsv']

ingress:
image: nginx
restart: on-failure
environment:
- PORT=8901
- FRONT_URL=http://front:3000
- BACK_URL=${KYOO_URL:-http://back:5000}
volumes:
- ./nginx.conf.template:/etc/nginx/templates/kyoo.conf.template:ro
traefik:
image: traefik:v2.11
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.web.address=:8901"
- "--accesslog=true"
ports:
- "8901:8901"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"

postgres:
image: postgres:15
Expand Down
30 changes: 18 additions & 12 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ services:
condition: service_completed_successfully
volumes:
- kyoo:/metadata
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=PathPrefix(`/api/`)"
- "traefik.http.routers.api.middlewares=api-sp"
- "traefik.http.middlewares.api-sp.stripprefix.prefixes=/api"
- "traefik.http.middlewares.api-sp.stripprefix.forceSlash=false"

migrations:
image: ghcr.io/zoriya/kyoo_migrations:edge
Expand All @@ -49,6 +55,9 @@ services:
restart: unless-stopped
environment:
- KYOO_URL=${KYOO_URL:-http://back:5000}
labels:
- "traefik.enable=true"
- "traefik.http.routers.front.rule=PathPrefix(`/`)"

scanner:
image: ghcr.io/zoriya/kyoo_scanner:edge
Expand Down Expand Up @@ -120,20 +129,17 @@ services:
- GOCODER_VAAPI_RENDERER=${GOCODER_VAAPI_RENDERER:-/dev/dri/renderD128}
profiles: ['qsv']

ingress:
image: nginx
restart: unless-stopped
environment:
- PORT=8901
- FRONT_URL=http://front:8901
- BACK_URL=${KYOO_URL:-http://back:5000}
volumes:
- ./nginx.conf.template:/etc/nginx/templates/kyoo.conf.template:ro
depends_on:
- back
- front
traefik:
image: traefik:v2.11
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.web.address=:8901"
- "--accesslog=true"
ports:
- "8901:8901"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"

postgres:
image: postgres:15
Expand Down
18 changes: 0 additions & 18 deletions nginx.conf.template

This file was deleted.

0 comments on commit a8b25b9

Please sign in to comment.