- Install docker & docker-compose
- Download the
docker-compose.yml
and.env
files - Fill the
.env
file with your configuration options - Look at Hardware Acceleration section if you need it
- Look at Custom Volumes if you need it,
- Run
docker compose up -d
and see kyoo athttp://localhost:8901
To install Kyoo, you need docker and docker-compose. Those can be installed from here for Linux Mac or Windows. Docker is used to run each services of Kyoo in an isolated environment with all the dependencies they need.
Kyoo also needs 2 files to work properly. The first should be downloaded from the latest release artifact, the other needs to be filled in with your configurations. Those files can be put in any directory of your choice.
Those files are:
- A
docker-compose.yml
(simply download docker-compose.yml from the latest release). - A
.env
file that you will need to fill. Look at the example .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.env
file contains all the configuration options that the services indocker-compose.yml
will read.
If you need hardware acceleration, look at Hardware Acceleration section. If you need custom volumes (because video directories are on different disks and you can't use raid, because you use network drives or another custom volume type), look at Custom Volumes.
The next and last step is actually starting Kyoo. To do that, open a terminal in the same directory as the 3 configurations files
and run docker compose up -d
.
Congratulation, everything is now ready to use Kyoo. You can navigate to http://localhost:8901
on a web browser to see your instance of Kyoo.
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
the command docker compose pull
. You are now ready to restart Kyoo, you can run docker compose up -d
.
To uninstall Kyoo, you need to open a terminal in the configuration's directory and run docker compose down
. This will
stop Kyoo's services. You can then remove the configuration files.
First install necessary drivers on your system, when running vainfo
you should have something like this:
libva info: VA-API version 1.20.0
libva info: Trying to open /run/opengl-driver/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.20.1)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.3.5 ()
vainfo: Supported profile and entrypoints
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
...Truncated...
VAProfileHEVCSccMain444_10 : VAEntrypointVLD
VAProfileHEVCSccMain444_10 : VAEntrypointEncSliceLP
Kyoo will default to use your primary card (located at /dev/dri/renderD128
). If you need to specify a secondary one, you
can use the GOCODER_VAAPI_RENDERER
env-var to specify /dev/dri/renderD129
or another one.
Then you can simply run kyoo using docker compose --profile vaapi up -d
(notice the --profile vaapi
added)
You can also add COMPOSE_PROFILES=vaapi
to your .env
instead of adding the --profile
flag.
To enable nvidia hardware acceleration, first install necessary drivers on your system.
Then, install the nvidia-container-toolkit, you can simply follow the instructions on the official webpage or your distribution wiki.
To test if everything works, you can run sudo docker run --rm --gpus all ubuntu nvidia-smi
. If your version of docker is older,
you might need to add --runtime nvidia
like so: sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
After that, you can now use docker compose --profile nvidia up -d
to start kyoo with nvidia hardware acceleration (notice the --profile nvidia
added).
You can also add COMPOSE_PROFILES=nvidia
to your .env
instead of adding the --profile
flag.
Note that most nvidia cards have an artificial limit on the number of encodes. You can confirm your card limit here. This limit can also be removed by applying an unofficial patch to you driver.
To customize volumes, you can edit the docker-compose.yml
manually.
For example, if your library is split into multiples paths you can edit the volumes
section of BOTH the transcoder and the scanner like so:
x-transcoder: &transcoder-base
image: ghcr.io/zoriya/kyoo_transcoder:edge
networks:
default:
aliases:
- transcoder
restart: unless-stopped
env_file:
- ./.env
environment:
- GOCODER_PREFIX=/video
volumes:
- - ${LIBRARY_ROOT}:/video:ro
+ - /my_path/number1:/video/1:ro
+ - /c/Users/Videos/:video/c:ro
- ${CACHE_ROOT}:/cache
- metadata:/metadata
You can also edit the volume definition to use advanced volume drivers if you need to access smb or network drives. Mounting a drive into your filesystem and binding it in this volume section is also a valid choice (especially for fuse filesystems like cloud drives for example).
Don't forget to also edit the scanner's volumes if you edit the transcoder's volume.
Kyoo supports OpenID Connect (OIDC) for authentication. Please refer to the OIDC.md file for more information.