mirror of
https://github.com/fallenbagel/jellyseerr.git
synced 2025-12-24 02:39:18 -05:00
188 lines
6.7 KiB
Plaintext
188 lines
6.7 KiB
Plaintext
---
|
|
title: Docker (Recommended)
|
|
description: Install Jellyseerr using Docker
|
|
sidebar_position: 1
|
|
---
|
|
# Docker
|
|
:::info
|
|
This is the recommended method for most users.
|
|
Details on how to install Docker can be found on the [official Docker website](https://docs.docker.com/get-docker/).
|
|
:::
|
|
|
|
## Unix (Linux, macOS)
|
|
:::warning
|
|
Be sure to replace `/path/to/appdata/config` in the below examples with a valid host directory path. If this volume mount is not configured correctly, your Jellyseerr settings/data will not be persisted when the container is recreated (e.g., when updating the image or rebooting your machine).
|
|
|
|
The `TZ` environment variable value should also be set to the [TZ database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) of your time zone!
|
|
|
|
:::
|
|
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
|
|
<Tabs groupId="docker-methods" queryString>
|
|
<TabItem value="docker-cli" label="Docker CLI">
|
|
For details on the Docker CLI, please [review the official `docker run` documentation](https://docs.docker.com/engine/reference/run/).
|
|
|
|
#### Installation:
|
|
|
|
```bash
|
|
docker run -d \
|
|
--name jellyseerr \
|
|
-e LOG_LEVEL=debug \
|
|
-e TZ=Asia/Tashkent \
|
|
-e PORT=5055 `#optional` \
|
|
-p 5055:5055 \
|
|
-v /path/to/appdata/config:/app/config \
|
|
--restart unless-stopped \
|
|
fallenbagel/jellyseerr
|
|
```
|
|
:::tip
|
|
If you are using emby, make sure to set the `JELLYFIN_TYPE` environment variable to `emby`.
|
|
|
|
`-e JELLYFIN_TYPE=emby`
|
|
:::
|
|
|
|
To run the container as a specific user/group, you may optionally add `--user=[ user | user:group | uid | uid:gid | user:gid | uid:group ]` to the above command.
|
|
|
|
#### Updating:
|
|
|
|
Stop and remove the existing container:
|
|
```bash
|
|
docker stop jellyseerr && docker rm Jellyseerr
|
|
```
|
|
Pull the latest image:
|
|
```bash
|
|
docker pull fallenbagel/jellyseerr
|
|
```
|
|
Finally, run the container with the same parameters originally used to create the container:
|
|
```bash
|
|
docker run -d ...
|
|
```
|
|
|
|
:::tip
|
|
You may alternatively use a third-party updating mechanism, such as [Watchtower](https://github.com/containrrr/watchtower) or [Ouroboros](https://github.com/pyouroboros/ouroboros), to keep Jellyseerr up-to-date automatically.
|
|
|
|
You could also use [diun](https://github.com/crazy-max/diun) to receive notifications when a new image is available.
|
|
:::
|
|
</TabItem>
|
|
|
|
<TabItem value="docker-compose" label="Docker Compose">
|
|
For details on how to use Docker Compose, please [review the official Compose documentation](https://docs.docker.com/compose/reference/).
|
|
|
|
#### Installation:
|
|
Define the `jellyseerr` service in your `compose.yaml` as follows:
|
|
```yaml
|
|
---
|
|
services:
|
|
jellyseerr:
|
|
image: fallenbagel/jellyseerr:latest
|
|
container_name: jellyseerr
|
|
environment:
|
|
- LOG_LEVEL=debug
|
|
- TZ=Asia/Tashkent
|
|
- PORT=5055 #optional
|
|
ports:
|
|
- 5055:5055
|
|
volumes:
|
|
- /path/to/appdata/config:/app/config
|
|
restart: unless-stopped
|
|
```
|
|
:::tip
|
|
If you are using emby, make sure to set the `JELLYFIN_TYPE` environment variable to `emby`.
|
|
:::
|
|
|
|
Then, start all services defined in the Compose file:
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
#### Updating:
|
|
Pull the latest image:
|
|
```bash
|
|
docker compose pull jellyseerr
|
|
```
|
|
Then, restart all services defined in the Compose file:
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
:::tip
|
|
You may alternatively use a third-party mechanism like [dockge](https://github.com/louislam/dockge) to manage your docker compose files.
|
|
:::
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
|
|
## Unraid
|
|
|
|
1. Ensure you have the **Community Applications** plugin installed.
|
|
2. Inside the **Community Applications** app store, search for **Jellyseerr**.
|
|
3. Click the **Install Button**.
|
|
4. On the following **Add Container** screen, make changes to the **Host Port** and **Host Path 1** \(Appdata\) as needed.
|
|
5. If you want to use emby, make sure to set the `JELLYFIN_TYPE` environment variable to `emby`. Otherwise, remove the variable.
|
|
6. Click apply and access "Jellyseerr" at your `<ServerIP:HostPort>` in a web browser.
|
|
|
|
## Windows
|
|
|
|
Please refer to the [Docker Desktop for Windows user manual](https://docs.docker.com/docker-for-windows/) for details on how to install Docker on Windows. There is no need to install a Linux distro if using named volumes like in the example below.
|
|
:::warning
|
|
**WSL2 will need to be installed to prevent DB corruption!** Please see the [Docker Desktop WSL 2 backend documentation](https://docs.docker.com/docker-for-windows/wsl/) for instructions on how to enable WSL2. The commands below will only work with WSL2 installed!
|
|
:::
|
|
|
|
First, create a volume to store the configuration data for Jellyseerr using using either the Docker CLI:
|
|
```bash
|
|
docker volume create jellyseerr-data
|
|
```
|
|
|
|
or the Docker Desktop app:
|
|
1. Open the Docker Desktop app
|
|
2. Head to the Volumes tab
|
|
3. Click on the "New Volume" button near the top right
|
|
4. Enter a name for the volume (example: `jellyseerr-data`) and hit "Create"
|
|
|
|
Then, create and start the Jellyseerr container:
|
|
<Tabs groupId="docker-methods" queryString>
|
|
<TabItem value="docker-cli" label="Docker CLI">
|
|
```bash
|
|
docker run -d --name jellyseerr -e LOG_LEVEL=debug -e TZ=Asia/Tashkent -p 5055:5055 -v "jellyseerr-data:/app/config" --restart unless-stopped fallenbagel/jellyseerr:latest
|
|
```
|
|
</TabItem>
|
|
|
|
<TabItem value="docker-compose" label="Docker Compose">
|
|
```yaml
|
|
---
|
|
services:
|
|
jellyseerr:
|
|
image: fallenbagel/jellyseerr:latest
|
|
container_name: jellyseerr
|
|
environment:
|
|
- LOG_LEVEL=debug
|
|
- TZ=Asia/Tashkent
|
|
ports:
|
|
- 5055:5055
|
|
volumes:
|
|
- jellyseerr-data:/app/config
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
jellyseerr-data:
|
|
external: true
|
|
```
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
:::tip
|
|
If you are using a named volume, then you can safely **ignore** the warning about the `/app/config` folder being incorrectly mounted.
|
|
|
|
If you are using emby, make sure to set the `JELLYFIN_TYPE` environment variable to `emby`.
|
|
:::
|
|
|
|
To access the files inside the volume created above, navigate to `\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\jellyseerr-data\_data` using File Explorer.
|
|
|
|
:::info
|
|
Docker on Windows works differently than it does on Linux; it runs Docker inside of a stripped-down Linux VM. Volume mounts are exposed to Docker inside this VM via SMB mounts. While this is fine for media, it is unacceptable for the `/app/config` directory because SMB does not support file locking. This will eventually corrupt your database, which can lead to slow behavior and crashes.
|
|
|
|
**If you must run Docker on Windows, you should put the `/app/config` directory mount inside the VM and not on the Windows host.** (This also applies to other containers with SQLite databases.)
|
|
|
|
Named volumes, like in the example commands above, are automatically mounted inside the VM. Therefore the warning on the setup about the `/app/config` folder being incorrectly mounted page should be ignored.
|