Media Servers guide
Radarr Docker Compose Setup: Paths, Imports, and Recoverable Config
Run Radarr for an authorized movie library with consistent paths, predictable permissions, recoverable configuration, and reliable imports.
Published and reviewed by OpenAlt · September 28, 2026

A reliable radarr docker compose deployment rests on three decisions:
- Keep Radarr’s database, settings, and metadata in
/config. - Expose downloads and media through one consistent
/datamount. - Back up
/configbefore upgrades or database migrations.
This structure supports predictable imports, hardlinks when the filesystem allows them, and practical recovery.
Radarr organizes a movie library you are authorized to use. It does not provide media. This guide excludes acquisition services, tracker configuration, DRM circumvention, and access-control evasion. Radarr is open source under GPL-3.0; its source is available on GitHub. The example uses the separately maintained LinuxServer Radarr image.
Table of Contents
- Lawful scope and design goals
- Directory and path plan
- Docker Compose example
- First boot and root folder
- Connecting an authorized download client
- Imports, hardlinks, and atomic moves
- Permissions
- Backup, restore, update, and rollback
- Troubleshooting
- FAQ
Lawful Scope and Design Goals
Use Radarr to organize a lawful library, such as files from your own discs, a permitted service, or another source you are authorized to use. Radarr monitors defined folders, matches files to movie records, and renames or moves them into the configured root folder.
The most common Docker failure is inconsistent path mapping. If a client reports /downloads/complete/movie.mkv while Radarr sees the same host file as /data/downloads/complete/movie.mkv, imports may fail. Hardlinks can also fail when applications use different mount points or when source and destination reside on different filesystems.
The Radarr Docker installation documentation describes the container-oriented approach. This guide applies its central principle: related containers should use paths that match the underlying host layout.
Directory and Path Plan
Use a dedicated application-data directory and one shared data tree. These are sample host paths; replace them with directories that exist on your machine.
/srv/appdata/radarr/ Radarr database, settings, and metadata
/srv/data/movies/ Organized movie library
/srv/data/downloads/ Temporary and completed downloads
Mount application data at /config and the entire shared tree at /data. Set Radarr’s root folder to /data/movies. A related client should use the same /data mount and report completed files beneath /data/downloads.
| Purpose | Host path | Radarr container path | Related client path |
|---|---|---|---|
| Configuration | /srv/appdata/radarr | /config | Not required |
| Movie library | /srv/data/movies | /data/movies | /data/movies if shared |
| Downloads | /srv/data/downloads | /data/downloads | /data/downloads |
| Completed movies | /srv/data/downloads/complete/movies | /data/downloads/complete/movies | /data/downloads/complete/movies |
The key rule is simple: Radarr and the client must see the same underlying file at the same internal path. One shared /data mapping is generally clearer than several unrelated mounts.
Docker Compose Example
Create a Compose project with:
services:
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- /srv/appdata/radarr:/config
- /srv/data:/data
ports:
- "7878:7878"
restart: unless-stopped
PUID, PGID, and TZ are sample values. Replace them with the numeric user ID, group ID, and timezone appropriate for the host. PUID and PGID determine which host ownership identity the container uses when reading and writing files; 1000 is not universal.
LinuxServer.io maintains this container packaging, while the Radarr project maintains the application. Consult the image documentation for image-specific guidance. For broader media-server context, see Radarr on OpenReplace and the related Plex Docker Compose guide.
After saving the file, validate the rendered configuration and inspect the service:
docker compose config
docker compose up -d
docker compose ps
docker compose logs --tail=100 radarr
docker exec radarr ls -ld /config /data /data/movies /data/downloads
The final command should show every expected path inside the container.
First Boot and Root Folder
Open Radarr at http://HOSTNAME-OR-IP:7878 and complete the initial setup. In the root-folder settings, add:
/data/movies
Do not enter /srv/data/movies in Radarr. That is the host path, not the path visible inside the container. Radarr must be able to create folders and write files beneath /data/movies.
Set naming, quality, and library preferences for your needs. Test with one authorized movie before importing a large collection. A small test exposes path, ownership, and naming problems quickly.


Connecting an Authorized Download Client
Radarr can connect to an already-authorized client through its settings. Configure the client hostname, port, authentication, category or label, and completed-directory behavior according to that client’s documentation.
The important value is the completed-file path. If the client also runs in Docker, give it the same host mapping:
/srv/data:/data
Configure its completed directory as:
/data/downloads/complete/movies
If the client runs directly on the host, its local path must resolve to the same files Radarr sees through /data.
Avoid remote path mappings unless the applications genuinely use different internal paths. Identical mappings are easier to maintain and less likely to break imports.
Imports, Hardlinks, and Atomic Moves
When Radarr imports a completed file, it can rename and move it, copy it, or create a hardlink, depending on settings and filesystem support. A hardlink lets the completed location and organized library reference the same underlying data without duplicating disk usage.
Hardlinks require:
- Source and destination on the same filesystem.
- Both applications seeing the locations beneath the same shared mount, such as
/data. - Permission to read the source and write the destination.
- A filesystem that supports hardlinks.
If source and destination are on different filesystems, Radarr must copy the file. Hardlinks also usually fail when one service uses /downloads and another uses /movies, even if both paths refer to the same host storage.
Keep temporary and completed directories inside the shared data tree when possible. This supports consistent paths, atomic renames, and fewer partial-import conditions.
Permissions
The identity represented by PUID and PGID must read completed files and write /config and /data/movies. The authorized client must also write its completed directory.
Inspect the host identities and directory permissions:
id
ls -ld /srv/appdata/radarr /srv/data /srv/data/movies /srv/data/downloads
Prefer a shared group, consistent group ownership, and suitable directory permissions over broad unrestricted access. If the client creates files Radarr cannot read, align group membership and umask, then retest with one file. Check parent-directory permissions as well as the file itself.
Backup, Restore, Update, and Rollback
The primary Radarr backup target is the complete host directory mounted at /config:
/srv/appdata/radarr
Stop Radarr before making a filesystem-level copy so its database remains consistent:
docker compose stop radarr
cp -a /srv/appdata/radarr /path/to/protected-backup/radarr
docker compose start radarr
Keep at least one backup outside the host and periodically verify that it can be read and restored. Also preserve the Compose file and the tested image reference.
Before an update:
- Back up
/config. - Record the current image tag or digest.
- Validate the Compose file.
- Change the image reference deliberately.
- Confirm the service and imports after startup.
The example uses latest for readability. A cautious production deployment records a tested tag or digest. Do not assume the Radarr application version and container image tag use the same format.
For rollback, stop the service, restore the last known-good image reference, and start it with the same /config. If a newer application version migrated the database, restore the matching configuration backup too. Keep the image reference and backup together in the change record.
Troubleshooting
“Path does not exist.” Confirm that the host directory exists, the volume line is correct, and the path is entered from the container’s perspective. Inspect /data with docker exec radarr ls -la /data and review docker compose config.
Import failed. Compare the client’s reported path with Radarr’s visible path. Both should use /data, not one service using /downloads while the other uses /data/downloads. Confirm that the file is complete and readable by Radarr’s PUID/PGID.
Permission denied. Inspect ownership and permissions on /config, /data/downloads, and /data/movies. Verify that the numeric IDs correspond to a host identity with the required access.
Hardlinks are not appearing. Confirm the same filesystem and shared /data mount. Different disks, network filesystems, bind-mount layouts, or unsupported filesystems may require copying instead.
For related organization patterns, browse the media streaming category.
FAQ
Should I use /config and /data exactly?
They are strongly recommended for this layout. /config isolates Radarr’s database and settings, while /data gives Radarr and related services one consistent view of downloads and the library.
Can Radarr run without a download client?
Yes. Radarr can organize an existing authorized library and monitor folders without connecting to another service. A client is only needed when Radarr must send jobs to an already-authorized external application.
Why not mount /srv/data/movies directly as /movies?
You can, but a single /data mount preserves matching internal paths for downloads and the library. That makes imports, hardlinks, and troubleshooting more predictable.
What should I back up?
Back up the complete host directory mapped to /config, including Radarr’s database and settings. Also preserve the Compose file and tested image reference so the service can be recreated consistently.