docs: update Unraid install and migration guides with dual permission methods (#2532)

Co-authored-by: Mindaugas Jonkus <mjonkusgmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Ludovic Ortega <github@mail.adminafk.fr>
This commit is contained in:
mjonkus
2026-02-20 21:12:27 +02:00
committed by GitHub
parent 7e9dff3a1b
commit a0d0eb1858
2 changed files with 154 additions and 107 deletions

View File

@@ -4,6 +4,9 @@ description: Install Seerr using Unraid
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Unraid
:::warning
@@ -14,76 +17,160 @@ Third-party installation methods are maintained by the community. The Seerr team
This method is not recommended for most users. It is intended for advanced users who are using Unraid.
:::
## Template installation
If an official Unraid Community Applications template for Seerr isn't available in your catalog, you can install Seerr manually using Unraid's Docker UI.
Several templates from Unraid Community are available right now
- [Unraid Community Apps](https://unraid.net/community/apps#community-apps-iframe)
## Fresh Installation
In case you still want to do it manually, please follow the instructions below.
### 1. Create the config directory
## Manual Installation
:::note
Seerr is now rootless. Unraid typically runs Docker containers as `nobody:users` (UID 99, GID 100), but Seerr now runs internally as UID 1000, GID 1000. This creates a permission mismatch.
:::
Before proceeding, choose which installation method best suits your server:
:::info
**If migrating**: Copy your existing Jellyseerr/Overseerr config files (e.g., from `/mnt/user/appdata/overseerr/` or `/mnt/user/appdata/jellyseerr`) to `/mnt/user/appdata/seerr`, then apply the permissions below
:::
**Seerr Default** (`UID 1000:1000`) — Runs with the container's native `node` user. Matches the official image, but may break SMB share access, trigger "Fix Common Problems" warnings, and cause issues with backup plugins (such as CA Appdata Backup) and network integrations (such as Tailscale).
Open the Unraid terminal and run:
**Unraid Default** (`UID 99:100`) — Runs with Unraid's native `nobody:users` ownership. Follows Unraid best practices, but overrides Seerr's built-in rootless user and may cause compatibility issues with future Seerr updates.
```bash
mkdir -p /mnt/user/appdata/seerr
chown -R 1000:1000 /mnt/user/appdata/seerr
```
<Tabs groupId="unraid-permissions" queryString>
<TabItem value="seerr-default" label="Seerr Default">
### 2. Add the Docker container
### 1. Create the config directory
Navigate to the **Docker** tab in Unraid and click **Add Container**. Fill in the following:
Open the Unraid terminal and run:
| Field | Value |
|---|---|
| **Name** | `seerr` |
| **Repository** | `ghcr.io/seerr-team/seerr:latest` |
| **Registry URL** (optional) | `https://ghcr.io` |
| **Icon URL** | `https://raw.githubusercontent.com/seerr-team/seerr/develop/public/android-chrome-512x512.png` |
| **WebUI** | `http://[IP]:[PORT:5055]` |
| **Extra Parameters** | `--init` |
| **Network Type** | `bridge` |
| **Privileged** | `Off` |
```bash
mkdir -p /mnt/user/appdata/seerr
```
Then click **Add another Path, Port, Variable** to add:
### 2. Set folder permissions
**Port:**
| Field | Value |
|---|---|
| Container Port | `5055` |
| Host Port | `5055` |
| Connection Type | `TCP` |
```bash
chown -R 1000:1000 /mnt/user/appdata/seerr
```
**Path:**
| Field | Value |
|---|---|
| Container Path | `/app/config` |
| Host Path | `/mnt/user/appdata/seerr` |
### 3. Add the Docker container
**Variable:**
| Field | Value |
|---|---|
| Key | `TZ` |
| Value | Your [TZ database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) (e.g., `America/New_York`) |
:::warning
The **Extra Parameters** field is critical. You **must** add `--init --restart=unless-stopped` (see table below). Without `--init`, the container will not handle signals properly or shut down cleanly. Without `--restart=unless-stopped`, the container will not automatically restart after a reboot.
**Variable (optional):**
| Field | Value |
|---|---|
| Key | `LOG_LEVEL` |
| Value | `info` |
To see the **Extra Parameters** field, click **Basic View** in the top-right corner of the template page to switch to the advanced editor.
:::
Click **Apply** to create and start the container.
Navigate to the **Docker** tab in Unraid and click **Add Container**. Fill in the following:
### 3. Access Seerr
| Field | Value |
|---|---|
| **Name** | `seerr` |
| **Repository** | `ghcr.io/seerr-team/seerr:latest` |
| **Icon URL** | `https://raw.githubusercontent.com/seerr-team/seerr/develop/public/android-chrome-512x512.png` |
| **WebUI** | `http://[IP]:[PORT:5055]` |
| **Extra Parameters** | `--init --restart=unless-stopped` |
| **Network Type** | `bridge` |
| **Privileged** | `Off` |
Open the WebUI at `http://<your-unraid-ip>:5055` and follow the setup wizard.
Then click **Add another Path, Port, Variable** to add:
:::info
The `--init` flag in **Extra Parameters** is required. Seerr does not include its own init process, so `--init` ensures proper signal handling and clean container shutdowns.
:::
**Port:**
| Field | Value |
|---|---|
| Container Port | `5055` |
| Host Port | `5055` |
| Connection Type | `TCP` |
**Path:**
| Field | Value |
|---|---|
| Container Path | `/app/config` |
| Host Path | `/mnt/user/appdata/seerr` |
**Variable:**
| Field | Value |
|---|---|
| Key | `TZ` |
| Value | Your [TZ database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) (e.g., `America/New_York`) |
**Variable (optional):**
| Field | Value |
|---|---|
| Key | `LOG_LEVEL` |
| Value | `info` |
Click **Apply** to create and start the container.
### 4. Access Seerr
Open the WebUI at `http://<your-unraid-ip>:5055` and follow the setup wizard.
</TabItem>
<TabItem value="unraid-default" label="Unraid Default">
### 1. Create the config directory
Open the Unraid terminal and run:
```bash
mkdir -p /mnt/user/appdata/seerr
```
### 2. Set folder permissions
```bash
chown -R 99:100 /mnt/user/appdata/seerr
```
### 3. Add the Docker container
:::warning
The **Extra Parameters** field is critical. You **must** add `--init --restart=unless-stopped --user 99:100` (see table below). Without `--init`, the container will not handle signals properly or shut down cleanly. Without `--restart=unless-stopped`, the container will not automatically restart after a reboot. The `--user 99:100` parameter runs the container process with Unraid's default UID/GID and avoids permission errors accessing your shares without changing host folder ownership.
To see the **Extra Parameters** field, click **Basic View** in the top-right corner of the template page to switch to the advanced editor.
:::
Navigate to the **Docker** tab in Unraid and click **Add Container**. Fill in the following:
| Field | Value |
|---|---|
| **Name** | `seerr` |
| **Repository** | `ghcr.io/seerr-team/seerr:latest` |
| **Icon URL** | `https://raw.githubusercontent.com/seerr-team/seerr/develop/public/android-chrome-512x512.png` |
| **WebUI** | `http://[IP]:[PORT:5055]` |
| **Extra Parameters** | `--init --restart=unless-stopped --user 99:100` |
| **Network Type** | `bridge` |
| **Privileged** | `Off` |
Then click **Add another Path, Port, Variable** to add:
**Port:**
| Field | Value |
|---|---|
| Container Port | `5055` |
| Host Port | `5055` |
| Connection Type | `TCP` |
**Path:**
| Field | Value |
|---|---|
| Container Path | `/app/config` |
| Host Path | `/mnt/user/appdata/seerr` |
**Variable:**
| Field | Value |
|---|---|
| Key | `TZ` |
| Value | Your [TZ database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) (e.g., `America/New_York`) |
**Variable (optional):**
| Field | Value |
|---|---|
| Key | `LOG_LEVEL` |
| Value | `info` |
Click **Apply** to create and start the container.
### 4. Access Seerr
Open the WebUI at `http://<your-unraid-ip>:5055` and follow the setup wizard.
</TabItem>
</Tabs>