Skip to content

docs: add Unraid installation and migration guide#2440

Merged
fallenbagel merged 5 commits intoseerr-team:developfrom
mjonkus:docs/unraid-installation-guide
Feb 15, 2026
Merged

docs: add Unraid installation and migration guide#2440
fallenbagel merged 5 commits intoseerr-team:developfrom
mjonkus:docs/unraid-installation-guide

Conversation

@mjonkus
Copy link
Copy Markdown
Contributor

@mjonkus mjonkus commented Feb 15, 2026

Description

Adds community documentation for installing Seerr on Unraid, replacing the
"awaiting community contribution" placeholder on the Unraid docs page.

Covers:

  • Fresh installation via Unraid Docker UI (manual container setup)
  • Migration from Overseerr/Jellyseerr (permissions fix, config path mapping)
  • Reverse proxy notes for SWAG/Nginx users
  • Update instructions

This was tested by successfully migrating a live Overseerr instance to Seerr
on Unraid following these exact steps.

AI Disclosure: This documentation was drafted with assistance from Claude Opus 4.6 (Anthropic), then verified against a real Overseerr-to-Seerr migration on Unraid.

How Has This Been Tested?

Tested on a live Unraid server by migrating from Overseerr (linuxserver image)
to Seerr. Verified automatic database migration, permissions fix (chown to UID 1000),
container startup, and reverse proxy (SWAG) connectivity.

Screenshots / Logs (if applicable)

N/A - documentation only

Checklist:

  • I have read and followed the contribution guidelines.
  • Disclosed any use of AI (see our policy)
  • I have updated the documentation accordingly.
  • All new and existing tests passed.
  • Successful build pnpm build
  • Translation keys pnpm i18n:extract
  • Database migration (if required)

Summary by CodeRabbit

  • Documentation
    • Replaced deprecated placeholder installer notes with a manual Unraid installation flow.
    • Added a full fresh-install guide: config setup, container creation with explicit field guidance, ports/paths and environment variable mappings, and access verification.
    • Highlighted use of the --init flag for proper shutdown handling.
    • Added a Unraid migration guide covering backup, old container removal, permissions fix, recreate steps, and a reverse-proxy tip.

@mjonkus mjonkus requested a review from a team as a code owner February 15, 2026 09:03
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 15, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Replaces the Unraid placeholder/internal installer docs with a manual Fresh Installation guide and a detailed Unraid migration procedure, adding explicit Docker container fields, port/volume/env mappings, backup and permission-fix steps, and an emphasized --init recommendation.

Changes

Cohort / File(s) Summary
Unraid install doc
docs/getting-started/third-parties/unraid.mdx
Full rewrite: removed deprecated/placeholder installer steps and commented installer flow; added manual Fresh Installation workflow with config directory creation, explicit Docker container fields (Name, Repository, Registry URL, Icon URL, WebUI, Extra Parameters including --init, Network Type, Privileged), port/path mappings, and TZ/LOG_LEVEL env vars; retained --init note and updated start/access instructions.
Migration guide (Unraid)
docs/migration-guide.mdx
Added a detailed Unraid migration procedure: stop/remove old container, backup appdata, fix permissions, recreate container with explicit settings and mappings, apply/start, and a reverse-proxy tip; replaces prior single-line Unraid note.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • fallenbagel
  • gauthier-th

Poem

🐇 I hopped through docs with carrot in paw,
Wrote steps for installs, backups, and more,
Containers tidy, permissions bright,
Click the WebUI, everything's right —
Hooray for clean starts and migrations galore!

🚥 Pre-merge checks | ✅ 3 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Merge Conflict Detection ⚠️ Warning ⚠️ Unable to check for merge conflicts: Failed to fetch base branch: fatal: cannot change to '/home/jailuser/git': No such file or directory
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changeset, which adds comprehensive Unraid installation and migration guides to the documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
⚔️ Resolve merge conflicts (beta)
  • Auto-commit resolved conflicts to branch docs/unraid-installation-guide
  • Post resolved changes as copyable diffs in a comment

No actionable comments were generated in the recent review. 🎉

🧹 Recent nitpick comments
docs/migration-guide.mdx (1)

243-243: Consider adding a brief note explaining the --init requirement.

Users navigating directly to the Unraid section may not see the explanation at line 49. A short inline note (or an admonition after step 5) would help clarify why --init is required—proper signal handling and clean container shutdowns.

📝 Suggested addition after line 276
 5. Click **Apply** to start the container. Check the container logs to confirm the automatic migration completed successfully.
+
+:::note
+The `--init` flag is required because Seerr no longer provides a built-in init process. This ensures proper signal handling and clean container shutdowns.
+:::

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


Comment @coderabbitai help to get the list of available commands and usage tips.

Comment thread docs/getting-started/third-parties/unraid.mdx
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@docs/getting-started/third-parties/unraid.mdx`:
- Around line 73-84: Replace the unsafe backup example that uses "cp -r
/mnt/user/appdata/overseerr /mnt/user/appdata/overseerr-backup" with a command
that preserves ownership and permissions (e.g., "cp -a
/mnt/user/appdata/overseerr /mnt/user/appdata/overseerr-backup" or an equivalent
"rsync -a" or "tar" approach); update the code block in the documentation to
show the safer command so appdata ownership/permissions are preserved during
backups.
- Around line 21-63: Add a brief clarification to the "Add the Docker container"
section explaining that the "Registry URL" field is optional in Unraid and does
not affect image pulling (the Repository field controls that); update the
paragraph/table around the Registry URL entry to include a short parenthetical
note like "(optional — image pull is controlled by Repository)" and ensure the
wording references the "Registry URL" field so readers encountering the field
won't be confused.
🧹 Nitpick comments (1)
docs/getting-started/third-parties/unraid.mdx (1)

4-8: Soften the time‑sensitive “no official template yet” claim.

This can become outdated quickly; consider conditional wording and confirm current CA availability.

💡 Suggested wording tweak
-Since there is no official Unraid Community Applications template for Seerr yet, you can install Seerr manually using Unraid's Docker UI.
+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.

Comment thread docs/getting-started/third-parties/unraid.mdx
Comment thread docs/getting-started/third-parties/unraid.mdx Outdated
@mjonkus mjonkus requested a review from fallenbagel February 15, 2026 09:22
Comment thread docs/getting-started/third-parties/unraid.mdx Outdated
Comment thread docs/getting-started/third-parties/unraid.mdx Outdated
Comment thread docs/getting-started/third-parties/unraid.mdx Outdated
@mjonkus mjonkus requested a review from M0NsTeRRR February 15, 2026 11:31
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@docs/migration-guide.mdx`:
- Around line 219-225: Swap the order of the two migration steps so the
container is stopped/removed before taking the appdata backup (or explicitly
instruct to stop the container first), i.e. ensure the step that tells the user
to click the container icon and choose "Stop" then "Remove" (the Unraid Docker
container stop/remove action) comes before creating the backup of
/mnt/user/appdata/overseerr to /mnt/user/appdata/overseerr-backup so the cp -a
copy is taken with the container stopped to avoid an inconsistent SQLite
snapshot.

Comment thread docs/migration-guide.mdx Outdated
M0NsTeRRR
M0NsTeRRR previously approved these changes Feb 15, 2026
Comment thread docs/migration-guide.mdx Outdated
Comment thread docs/migration-guide.mdx
Copy link
Copy Markdown
Member

@M0NsTeRRR M0NsTeRRR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise LGTM :)

…getting started with unraid section in migration page.
Copy link
Copy Markdown
Member

@M0NsTeRRR M0NsTeRRR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for your contribution !

@mjonkus
Copy link
Copy Markdown
Contributor Author

mjonkus commented Feb 15, 2026

LGTM, thanks for your contribution !

No problem. Thanks a lot for your patience :)

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds comprehensive community-maintained documentation for installing and migrating Seerr on Unraid, replacing the previous placeholder that indicated the method was awaiting community contribution. The documentation provides step-by-step instructions for manual Docker container setup on Unraid systems.

Changes:

  • Removed "Unraid app: Not maintained" notice from migration guide
  • Added fresh installation guide with config directory setup, Docker container configuration, and detailed field-by-field instructions for Unraid's Docker UI
  • Added migration guide from Overseerr/Jellyseerr with backup steps, permissions fixes, and reverse proxy configuration notes

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
docs/migration-guide.mdx Removed deprecated notice; added comprehensive Unraid migration section with backup, permissions, and container setup instructions
docs/getting-started/third-parties/unraid.mdx Replaced placeholder with complete fresh installation guide including directory setup, container configuration, and init flag explanation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/getting-started/third-parties/unraid.mdx
@fallenbagel fallenbagel merged commit b6a9132 into seerr-team:develop Feb 15, 2026
15 checks passed
@mjonkus mjonkus deleted the docs/unraid-installation-guide branch February 16, 2026 07:05
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Feb 27, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/seerr-team/seerr](https://github.com/seerr-team/seerr) | minor | `v3.0.1` → `v3.1.0` |
| [seerr-team/seerr](https://github.com/seerr-team/seerr) | minor | `v3.0.1` → `v3.1.0` |

---

### Release Notes

<details>
<summary>seerr-team/seerr (ghcr.io/seerr-team/seerr)</summary>

### [`v3.1.0`](https://github.com/seerr-team/seerr/releases/tag/v3.1.0)

[Compare Source](seerr-team/seerr@v3.0.1...v3.1.0)

##### 🛡️ Security

- Patch [CVE-2026-27707](GHSA-rc4w-7m3r-c2f7)  - Unauthenticated account registration on Plex-configured Seerr instances via Jellyfin authentication endpoint  - ([4ae2068](seerr-team/seerr@4ae2068))
- Patch [CVE-2026-27793](GHSA-f7xw-jcqr-57hp) - Broken Object-Level Authorization in User Profile Endpoint Exposes Third-Party Notification Credentials - ([4f089b2](seerr-team/seerr@4f089b2))
- Patch [CVE-2026-27792](GHSA-gx3h-3jg5-q65f)  - Missing authentication on pushSubscription endpoints  - ([946bdecec](seerr-team/seerr@946bdec))

##### 🚀 Features

- *(helm)* Use an existing PVC as config volume ([#&#8203;2447](seerr-team/seerr#2447)) - ([8f0c904](seerr-team/seerr@8f0c904))
- *(servarr-api)* Make Servarr API request timeout configurable ([#&#8203;2556](seerr-team/seerr#2556)) - ([3bcb4da](seerr-team/seerr@3bcb4da))
- Self-host font for better privacy ([#&#8203;2540](seerr-team/seerr#2540)) - ([10ea21b](seerr-team/seerr@10ea21b))

##### 🐛 Bug Fixes

- *(helm)* Add "v" as prefix for appVersion tag ([#&#8203;2445](seerr-team/seerr#2445)) - ([04b9d87](seerr-team/seerr@04b9d87))
- *(jellyfin-scanner)* Include unmatched seasons in processable seasons ([#&#8203;2538](seerr-team/seerr#2538)) - ([68f56d2](seerr-team/seerr@68f56d2))
- *(link-account)* Fix error-message override ([#&#8203;2547](seerr-team/seerr#2547)) - ([b843be0](seerr-team/seerr@b843be0))
- *(plex-scanner)* Add TVDb to TMDB fallback in plex scanner ([#&#8203;2537](seerr-team/seerr#2537)) - ([7c60a5c](seerr-team/seerr@7c60a5c))
- *(radarr)* Trigger search for existing monitored movies without files ([#&#8203;2391](seerr-team/seerr#2391)) - ([55776ea](seerr-team/seerr@55776ea))
- *(servarr)* Increase default API timeout from 5000ms to 10000ms ([#&#8203;2442](seerr-team/seerr#2442)) - ([b499976](seerr-team/seerr@b499976))
- *(sonarr)* Use configured metadata provider for season filtering ([#&#8203;2516](seerr-team/seerr#2516)) - ([5013d1d](seerr-team/seerr@5013d1d))
- *(watch-data)* Use sentinel values to avoid invalid SQL syntax ([#&#8203;2552](seerr-team/seerr#2552)) - ([947f70c](seerr-team/seerr@947f70c))
- *(watchlist-sync)* Correct permission typo for TV auto requests ([#&#8203;2488](seerr-team/seerr#2488)) - ([e0e4b6f](seerr-team/seerr@e0e4b6f))
- Preserve blocklist on media deletion & optimise watchlist-sync ([#&#8203;2478](seerr-team/seerr#2478)) - ([9da8bb6](seerr-team/seerr@9da8bb6))

##### 🚜 Refactor

- *(tailwind)* Replace deprecated tailwind utilities ([#&#8203;2542](seerr-team/seerr#2542)) - ([f42a4ec](seerr-team/seerr@f42a4ec))

##### 📖 Documentation

- *(synology)* Add installation guide via SynoCommunity ([#&#8203;2503](seerr-team/seerr#2503)) - ([0e636a3](seerr-team/seerr@0e636a3))
- *(truenas)* Update install/migration guide ([#&#8203;2491](seerr-team/seerr#2491)) - ([dc1734d](seerr-team/seerr@dc1734d))
- *(unraid)* Improve unraid migration guide  ([#&#8203;2470](seerr-team/seerr#2470)) - ([5e64d49](seerr-team/seerr@5e64d49))
- Update Unraid install and migration guides with dual permission methods ([#&#8203;2532](seerr-team/seerr#2532)) - ([a0d0eb1](seerr-team/seerr@a0d0eb1))
- Add a warning in migration-guide for third party installation ([#&#8203;2527](seerr-team/seerr#2527)) - ([7e9dff3](seerr-team/seerr@7e9dff3))
- Remove double quotes (") from DB\_HOST environment variable ([#&#8203;2514](seerr-team/seerr#2514)) - ([fa905be](seerr-team/seerr@fa905be))
- Add Unraid installation and migration guide ([#&#8203;2440](seerr-team/seerr#2440)) - ([b6a9132](seerr-team/seerr@b6a9132))
- Fix migration guide title ([#&#8203;2425](seerr-team/seerr#2425)) - ([39ae32f](seerr-team/seerr@39ae32f))

##### ⚡ Performance

- Add missing indexes on all foreign key columns ([#&#8203;2461](seerr-team/seerr#2461)) - ([c6bcfe0](seerr-team/seerr@c6bcfe0))

##### ⚙️ Miscellaneous Tasks

- *(changelog)* Fix changelog template ([#&#8203;2431](seerr-team/seerr#2431)) - ([c2977f6](seerr-team/seerr@c2977f6))
- *(eslint)* Add react/self-closing-comp ([#&#8203;2563](seerr-team/seerr#2563)) - ([cd8b386](seerr-team/seerr@cd8b386))
- *(github)* Add docs and maintenance issue templates ([#&#8203;2467](seerr-team/seerr#2467)) - ([cf4883a](seerr-team/seerr@cf4883a))
- *(helm)* Add GatewayAPI route support to helm chart ([#&#8203;2544](seerr-team/seerr#2544)) - ([3a42f59](seerr-team/seerr@3a42f59))
- *(helm)* Update ghcr.io/seerr-team/seerr ( 3.0.0 → 3.0.1 ) \[skip-ci] ([#&#8203;2441](seerr-team/seerr#2441)) - ([87fb0df](seerr-team/seerr@87fb0df))
- *(husky)* Fixed husky commit message from bash/zsh syntax to sh syntax ([#&#8203;2572](seerr-team/seerr#2572)) - ([a00c9e5](seerr-team/seerr@a00c9e5))
- *(release)* Prepare ${TAG\_VERSION} - ([94a70bb](seerr-team/seerr@94a70bb))
- Updated the Contributing and Security guides to reflect our current practices ([#&#8203;2579](seerr-team/seerr#2579)) - ([0d40a42](seerr-team/seerr@0d40a42))
- Disable nextjs telemetry ([#&#8203;2517](seerr-team/seerr#2517)) - ([cecdd63](seerr-team/seerr@cecdd63))
- Update contributing guide regarding Automated AI Agent ([#&#8203;2518](seerr-team/seerr#2518)) - ([880fbc9](seerr-team/seerr@880fbc9))
- Remove discord notification from release ([#&#8203;2501](seerr-team/seerr#2501)) - ([fba20c1](seerr-team/seerr@fba20c1))
- Add create-tag workflow to streamline release process ([#&#8203;2493](seerr-team/seerr#2493)) - ([06e5eb0](seerr-team/seerr@06e5eb0))
- Update concurrency logic ([#&#8203;2481](seerr-team/seerr#2481)) - ([4939f13](seerr-team/seerr@4939f13))
- Add semantic-pr workflow to enforce conventional commits ([#&#8203;2472](seerr-team/seerr#2472)) - ([5e57fdc](seerr-team/seerr@5e57fdc))

##### New Contributors ❤️

- [@&#8203;caillou](https://github.com/caillou) made their first contribution
- [@&#8203;Kenshin9977](https://github.com/Kenshin9977) made their first contribution
- [@&#8203;MagicLegend](https://github.com/MagicLegend) made their first contribution
- [@&#8203;wiiaam](https://github.com/wiiaam) made their first contribution
- [@&#8203;mjonkus](https://github.com/mjonkus) made their first contribution
- [@&#8203;nova-api](https://github.com/nova-api) made their first contribution
- [@&#8203;mreid-tt](https://github.com/mreid-tt) made their first contribution
- [@&#8203;DataBitz](https://github.com/DataBitz) made their first contribution
- [@&#8203;Hyperion2220](https://github.com/Hyperion2220) made their first contribution
- [@&#8203;blassley](https://github.com/blassley) made their first contribution
- [@&#8203;JanKleine](https://github.com/JanKleine) made their first contribution
- [@&#8203;koiralasandesh](https://github.com/koiralasandesh) made their first contribution<!-- generated by git-cliff -->

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4284
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
lucianchauvin pushed a commit to lucianchauvin/jellyseerr that referenced this pull request Apr 20, 2026
Co-authored-by: Mindaugas Jonkus <mjonkusgmail.com>

[skip ci]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants