English · Español · Français · Italiano · 简体中文 · 한국어 · 日本語 · हिन्दी · العربية · Русский · More languages
Note
HolyArrs 1.1.4: remove any request, and friends' Plex watchlists are read again. A folder's quality now shows on its card, and Settings got a consistency pass. See what's new
Every poster, trailer and score in your HolyArrs comes from a server I run and pay for myself, so it stays free for everyone. If HolyArrs made movie night a little better, a sponsor keeps the lights on for all of us 💛
Tip
Be with us!
| Get help fast and hang out on Discord | |
| Share ideas and vote on r/HolyArrs | |
| Sneak peeks on X | |
| More projects on GitHub |
HolyArrs is one self-hosted app for your shows, movies and music.
Browse like a streaming app, ask for what you want, and it handles the rest.
About 16.1 MB to download · about 95 MiB of RAM idle on a fresh install · amd64, arm64, armv7
The six apps it replaces download 685.0 MB together.
Quick start · Why · What it does · Moving from other apps · The manual · Help

Save this as docker-compose.yml in a new folder on a local disk:
name: holyarrs
services:
holyarrs:
image: holyarrs/holyarrs:latest
container_name: holyarrs
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- /your/local/path:/config
- /path/to/movies:/movies #optional
- /path/to/tv:/tv #optional
- /path/to/music:/music #optional
- /path/to/downloads:/downloads #optional
ports:
- 6262:6262
restart: unless-stoppeddocker compose up -dOpen http://your-server:6262 and make the owner account. A short setup walks you through folders, a downloader and a Source.
No API keys to hunt down. No second container. Every setting is explained in the manual further down.
A normal media server runs six apps: Sonarr, Radarr, Lidarr, Bazarr, Prowlarr and Seerr.
That's six logins, six ports, six update cycles and six API keys to copy between them. When a show doesn't land, you check six places to find out why.
I wanted one app. One login, one port, one place to look.
So I built it.
| App | Download (amd64) | Idle RAM | Logins | Web ports |
|---|---|---|---|---|
| Sonarr | 83.8 MB | 1 | 1 | |
| Radarr | 86.7 MB | 1 | 1 | |
| Lidarr | 115.7 MB | 1 | 1 | |
| Prowlarr | 77.1 MB | 1 | 1 | |
| Bazarr | 149.2 MB | 1 | 1 | |
| Overseerr | 172.4 MB | 1 | 1 | |
| Six together | 685.0 MB | 6 | 6 | |
| HolyArrs | 16.1 MB | ~140 MiB | 1 | 1 (6262) |
About 43 times smaller. Compressed size as shown on Docker Hub, linuxserver.io images, amd64, measured 2026-11-13 (HolyArrs 1.1.3). Idle RAM measured 2026-11-08 with 10,000 titles and 55,000 movies and episodes.
Someone asks for a title. HolyArrs searches your Sources, picks the best release with your Pick rules, sends it to your downloader and files it in your library. Your media server hears about it when it lands.

| 🍿 Explore | Browse like a streaming app. Hover a title and the trailer plays. |
| 🙋 Requests | A whole show or one season. You approve, or let trusted people skip the queue. Plex and Pulsarr watchlists can become requests. |
| 🎯 Pick rules | You decide which release wins: size, quality, language. |
| 💬 Subtitles | In the languages you pick, found on subtitle sites and kept with the file. |
| 📅 Calendar | What's airing next for everything you follow. |
| 🔔 Alerts | Discord, email, Telegram, ntfy, Gotify, Pushover or a webhook. |
| 🚚 Import your setup | From Sonarr, Radarr, Lidarr, Prowlarr, Bazarr, Seerr, Overseerr, qBittorrent and SABnzbd. Pick what comes over, undo it later. |
| 🔌 Old-app API | Seerr, Prowlarr, Bazarr, Unpackerr and Homepage keep working once you turn it on. |
| 🗝️ No API keys needed | Titles, artwork and charts come from the HolyArrs metadata server. Your own keys or server work too. |
| 🔒 Encrypted keys | Stored passwords and keys are locked with a master key that lives in your config folder. |
| 🪶 Tiny | An image of about 16.1 MB with nothing but HolyArrs inside. |
See every page in motion
![]() Home · Everything waiting on you, at a glance. |
![]() Title page · Trailer, cast and one button to ask. |
![]() Requests · Approve what friends and family ask for. |
![]() Downloads · Every grab, live, in one table. |

- Downloaders: qBittorrent, Transmission, Deluge, rTorrent, aria2, SABnzbd, NZBGet
- Media servers: Plex, Jellyfin, Emby
- Sources: any Torznab or Newznab indexer, or Prowlarr or Jackett
- Imports your setup from: Sonarr, Radarr, Lidarr, Prowlarr, Bazarr, Seerr, Overseerr, qBittorrent, SABnzbd
Open Settings > Import from other apps, add each old app's address and API key (or a backup zip), pick what comes over, then select Import. You can undo an import later.
| From | What comes over |
|---|---|
| Sonarr, Radarr, Lidarr | Library folders, titles, quality profiles as Pick rules, exclusions, naming, indexers and download clients |
| Prowlarr | Indexers as Sources |
| Bazarr | Default subtitle languages |
| Seerr, Overseerr | People and their waiting or approved requests |
| qBittorrent, SABnzbd | Downloaders |
HolyArrs only reads your old apps and changes nothing in them, so you can run both side by side until you trust it.
Keys and passwords stay behind; you type them in again or import them from a file. Custom formats, tags and history don't come over. Media files never move. Step by step: Import from other apps.
- Downloading by itself. HolyArrs connects to qBittorrent, SABnzbd and the others. It doesn't replace them.
- Phone and TV apps. Not built. The web app works on a phone.
- Music in Explore is still being built.
What's next is on the roadmap. You vote, I build. Post ideas on r/HolyArrs.
Do I keep qBittorrent or SABnzbd? Yes, for now. HolyArrs connects to the downloader you already run. A built-in downloader is planned for a later release.
Can Sonarr and Radarr keep running while I try it? Yes. HolyArrs reads them once and never changes them.
Is it free? Yes. It's free and open source.
Everything below is reference. The full guides live at docs.HolyArrs.com.
Pulling holyarrs/holyarrs:latest gets the right image for your machine.
| Architecture | Available | Runs on |
|---|---|---|
| amd64 | ✅ | Most PCs, servers and NAS boxes |
| arm64 | ✅ | Apple silicon, newer Raspberry Pis, ARM servers |
| armv7 | ✅ | Older 32-bit ARM boards |
On a NAS? See Unraid, Synology and other NAS boxes.
Prefer a native package? An experimental Synology package (.spk) is attached to each release. See Synology package.
Images live on Docker Hub as holyarrs/holyarrs.
| Tag | Use it for |
|---|---|
latest |
The newest release. |
1.1.4 |
One exact version. It never moves. |
name: holyarrs
services:
holyarrs:
image: holyarrs/holyarrs:latest
container_name: holyarrs
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- /your/local/path:/config
- /path/to/movies:/movies #optional
- /path/to/tv:/tv #optional
- /path/to/music:/music #optional
- /path/to/downloads:/downloads #optional
ports:
- 6262:6262
restart: unless-stoppeddocker run -d \
--name=holyarrs \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=America/New_York \
-p 6262:6262 \
-v /your/local/path:/config \
-v /path/to/movies:/movies `#optional` \
-v /path/to/tv:/tv `#optional` \
-v /path/to/music:/music `#optional` \
-v /path/to/downloads:/downloads `#optional` \
--restart unless-stopped \
holyarrs/holyarrs:latestContainer settings go in compose. Everything else is set in the app.
Each one is written <outside>:<inside>. Change the left side only.
| Parameter | Function |
|---|---|
-p 6262:6262 |
The web app. |
-e PUID=1000 |
The user HolyArrs runs as. See User and group. |
-e PGID=1000 |
The group HolyArrs runs as. |
-e TZ=America/New_York |
Your time zone, for the calendar, schedules and logs. Etc/UTC when left out. |
-e UMASK=022 |
Optional. Permission bits new files leave out. Use 002 when a group must write too. |
-v /config |
Databases, settings, the master key, backups and logs. Local disk only, never a network share. |
-v /movies |
Optional. A movie Library folder. |
-v /tv |
Optional. A shows Library folder. |
-v /music |
Optional. A music Library folder. |
-v /downloads |
Optional. Your downloader's download folder. |
--read-only=true |
Optional. Only /config and /tmp need to be writable. |
--user=1000:1000 |
Optional. Start as a fixed user. PUID and PGID are then ignored. |
More variables (reverse proxy, URL base, save path): Environment variables.
Put FILE__ in front of any variable to read its value from a file, such as a Docker secret:
environment:
- FILE__HOLYARRS_ALLOWED_HOSTS=/run/secrets/holyarrs_hostsPUID and PGID must match the user that owns your media folders. Find them with:
id youruser
# uid=1000(youruser) gid=1000(youruser)HolyArrs never changes the owner of your media or download folders. Give that user write access to them, because HolyArrs makes folders and moves files.
Open http://your-server:6262 and make the owner account right away. There is no default password. Until you make it, whoever opens HolyArrs first becomes the owner.
The setup that opens next asks for your folders, a downloader and a Source. Guide: First run.
The four optional mounts are the easy way to start. The cost: each mount is its own filesystem inside the container, so every import is a full copy.
Want instant moves that take no extra space? Mount one parent folder with downloads and Library folders inside it, and give your downloader the same mount at the same path. Guide: Folders.
Use a named volume for /config. Media folders can stay host folders. Guide: Install.
holyarrs.key in your config folder is what opens your stored passwords and keys. Backups don't include it, so keep a copy somewhere else. As the owner, open Settings > Backups and choose Download key kit. See Backups.
docker compose pull
docker compose up -dIf the new version changes how data is stored, HolyArrs makes a backup first. To go back to it: docker exec holyarrs /holyarrs restore --pre-update, then docker restart holyarrs. Never remove /config during an update. See Updates.
- The owner account is made at first visit. There is no default password.
- Stored passwords and keys are encrypted with
holyarrs.key. - The image has no shell inside it.
- Don't forward port 6262 on your router. Use a VPN such as Tailscale, or a reverse proxy with HTTPS.
- Report security problems privately: SECURITY.
The image has no shell, so docker exec -it holyarrs /bin/bash won't work. HolyArrs' own commands do:
-
Follow the log:
docker logs -f holyarrs
-
Check your setup. Every line says
OK,WARNorFAIL, and eachWARNorFAILsays how to fix it:docker exec holyarrs /holyarrs doctor -
Locked out of the owner account:
docker exec -i holyarrs /holyarrs reset-owner -
Version number:
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrs
| You see | Do this |
|---|---|
| Permission denied on media folders | PUID and PGID don't match the owner of those folders. Run id youruser, put those numbers in compose and recreate the container. |
| Errors with the config folder on a network share | The database needs a local disk. Move /config to a local path. Media folders on a share are fine. |
| Port 6262 is already in use | Change the left side only, for example 6263:6262, and open http://your-server:6263. |
| HolyArrs can't reach qBittorrent or SABnzbd | Inside a container, localhost means the container itself. Use the downloader's container name on the same Docker network, or the host's IP address. |
| Imports are copied | Mount one shared parent folder. See Media folders. |
More: Troubleshooting.
| You have | Go to |
|---|---|
| A question | Discord |
| An idea or a vote | r/HolyArrs and the roadmap |
| A bug | Issues (bugs and roadmap only) |
| A security problem | SECURITY |
| Anything else | [email protected] |
Read CONTRIBUTING, then Architecture and Setup. Open an issue before a big change.
On your first pull request a bot asks you to accept a short licence agreement (CLA.md). One click, once.
HolyArrs is free and open source under the GNU AGPL-3.0.
Want to build it into a closed product? Email [email protected] for a commercial licence.
HolyArrs is free, but it isn't free to run. By default, each install talks to a metadata server I pay for every month. Sponsors cover that, and buy more hours for the things you vote for.
Built by CoderLuii.
If HolyArrs saves you from running six apps, a star helps other people find it.








