File/Folder Layout
On the Host
Section titled “On the Host”By default, the content is in the following directory structure, if you wish to change the install location, you must change the hms_docker_data_path variable in inventory/group_vars/all/hmsd_advanced.yml
Directory/
Directorymnt/
Directorymedia_data/ # The ‘mount_path’ in these docs, mounted to ‘/data’ within containers
Directory_library/ # The ‘media_path’ in these docs
- Movies
- TV_Shows
Directoryopt/
Directoryhms-docker/
- .env # Secret key material and other configs
- docker-compose.yml # Generated “Parent” Compose file
Directoryapps/ # Container data directory
Directoryplex/
Directoryconfig/ # App config directory
- …
…
Directoryconfig/
- …
Directorycompose_files/ # App-specific Compose files
- sonarr.yml
- radarr.yml
- …
Within the Containers
Section titled “Within the Containers”Directory/
Directorydata/ # Where the NAS/drives are mounted
Directorymedia_data/
Directory_library/
- Movies
- TV_Shows
Secrets files
Section titled “Secrets files”Global Environment Variables (.env)
Section titled “Global Environment Variables (.env)”-
This files default ownership and permissions requires you to enter the sudo/root password every time you run a
docker composecommand within the project directory-
If you wish to get around this (and reduce security), you can change the
secrets_env_user,secrets_env_group, andsecrets_env_modewithin theinventory/group_vars/all/hmsd_advanced.ymlfile -
These recommended values (if you wish to do this) will allow all users with
dockeraccess to read the file, and thus rundocker composecommands without needing to run as sudo/root, but will not allow them to modify.-
secrets_env_user: root -
secrets_env_group: docker -
secrets_env_mode: 0640
-
-
Authentik Keys
Section titled “Authentik Keys”Tracearr Keys
Section titled “Tracearr Keys”File Paths
Section titled “File Paths”As of release Version 0.2, file paths were changed in order to support hardlinks and instant/atomic-moves.
Application configs (Sonarr, Radarr, Plex, etc.) are stored in /opt/hms-docker/apps/<app name>/config by default.
Network drives will be mounted to a folder within the path specified in the hms_docker_mount_path variable in inventory/group_vars/all/main.yml. The parent directory of all the mounted folders (hms_docker_mount_path) is what is mounted to the required containers on /data.
Hard links are supported as long as the downloads folder and media content folder are on the same filesystem. This means if you have another NAS network share connected that is on a different underlying file system (like a different physical NAS) that you want to put media content on, you must change the download client to download files to that NAS share folder within the container.
If you were running the playbook before versioning was implemented (August 2024) and then update your local code with the new code in the repo, you will be prompted multiple times with warnings. It is highly recommended to read these warnings and understand any changes being made as you will likely have to update the paths inside the apps (Sonarr, Radarr, etc) to point to the new directory locations.