<!doctype html>
< html lang = "en" class = "no-js" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
< meta name = "description" content = "Guides mainly for Sonarr/Radarr/Bazarr and everything related to it." >
< meta name = "author" content = "TRaSH" >
< link rel = "canonical" href = "https://trash-guides.info/Hardlinks/How-to-setup-for/Docker/" >
< link rel = "icon" href = "../../../img/favicon.png" >
< meta name = "generator" content = "mkdocs-1.3.1, mkdocs-material-8.3.9" >
< title > Docker - TRaSH Guides< / title >
< link rel = "stylesheet" href = "../../../assets/stylesheets/main.1d29e8d0.min.css" >
< link rel = "stylesheet" href = "../../../assets/stylesheets/palette.cbb835fc.min.css" >
< link rel = "stylesheet" href = "../../../css/lightgallery.min.css" >
< script src = "../../../js/lightgallery.min.js" > < / script >
< link rel = "preconnect" href = "https://fonts.gstatic.com" crossorigin >
< link rel = "stylesheet" href = "https://fonts.googleapis.com/css?family=Noto+Sans:300,300i,400,400i,700,700i%7CEncode+Sans+Expanded:400,400i,700,700i&display=fallback" >
< style > : root { --md-text-font : "Noto Sans" ; --md-code-font : "Encode Sans Expanded" } < / style >
< link rel = "stylesheet" href = "../../../stylesheets/extra.css" >
< link rel = "stylesheet" href = "../../../stylesheets/github-permalink-style.css" >
< script > _ _md _scope = new URL ( "../../.." , location ) , _ _md _get = ( e , _ = localStorage , t = _ _md _scope ) => JSON . parse ( _ . getItem ( t . pathname + "." + e ) ) , _ _md _set = ( e , _ , t = localStorage , a = _ _md _scope ) => { try { t . setItem ( a . pathname + "." + e , JSON . stringify ( _ ) ) } catch ( e ) { } } < / script >
< script > function gtag ( ) { dataLayer . push ( arguments ) } window . dataLayer = window . dataLayer || [ ] , gtag ( "js" , new Date ) , gtag ( "config" , "G-ZZKM4MPQXL" ) , document . addEventListener ( "DOMContentLoaded" , function ( ) { document . forms . search && document . forms . search . query . addEventListener ( "blur" , function ( ) { this . value && gtag ( "event" , "search" , { search _term : this . value } ) } ) , "undefined" != typeof location$ && location$ . subscribe ( function ( e ) { gtag ( "config" , "G-ZZKM4MPQXL" , { page _path : e . pathname } ) } ) } ) < / script >
< script async src = "https://www.googletagmanager.com/gtag/js?id=G-ZZKM4MPQXL" > < / script >
< / head >
< body dir = "ltr" data-md-color-scheme = "slate" data-md-color-primary = "indigio" data-md-color-accent = "blue" >
< script > var palette = _ _md _get ( "__palette" ) ; if ( palette && "object" == typeof palette . color ) for ( var key of Object . keys ( palette . color ) ) document . body . setAttribute ( "data-md-color-" + key , palette . color [ key ] ) < / script >
< input class = "md-toggle" data-md-toggle = "drawer" type = "checkbox" id = "__drawer" autocomplete = "off" >
< input class = "md-toggle" data-md-toggle = "search" type = "checkbox" id = "__search" autocomplete = "off" >
< label class = "md-overlay" for = "__drawer" > < / label >
< div data-md-component = "skip" >
< a href = "#docker" class = "md-skip" >
Skip to content
< / a >
< / div >
< div data-md-component = "announce" >
< / div >
< header class = "md-header" data-md-component = "header" >
< nav class = "md-header__inner md-grid" aria-label = "Header" >
< a href = "../../.." title = "TRaSH Guides" class = "md-header__button md-logo" aria-label = "TRaSH Guides" data-md-component = "logo" >
< img src = "../../../img/logo.png" alt = "logo" >
< / a >
< label class = "md-header__button md-icon" for = "__drawer" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z" / > < / svg >
< / label >
< div class = "md-header__title" data-md-component = "header-title" >
< div class = "md-header__ellipsis" >
< div class = "md-header__topic" >
< span class = "md-ellipsis" >
TRaSH Guides
< / span >
< / div >
< div class = "md-header__topic" data-md-component = "header-topic" >
< span class = "md-ellipsis" >
Docker
< / span >
< / div >
< / div >
< / div >
< form class = "md-header__option" data-md-component = "palette" >
< input class = "md-option" data-md-color-media = "(prefers-color-scheme: dark)" data-md-color-scheme = "slate" data-md-color-primary = "indigio" data-md-color-accent = "blue" aria-label = "Switch to light mode" type = "radio" name = "__palette" id = "__palette_1" >
< label class = "md-header__button md-icon" title = "Switch to light mode" for = "__palette_2" hidden >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3Z" / > < / svg >
< / label >
< input class = "md-option" data-md-color-media = "(prefers-color-scheme: light)" data-md-color-scheme = "default" data-md-color-primary = "indigo" data-md-color-accent = "blue" aria-label = "Switch to dark mode" type = "radio" name = "__palette" id = "__palette_2" >
< label class = "md-header__button md-icon" title = "Switch to dark mode" for = "__palette_1" hidden >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z" / > < / svg >
< / label >
< / form >
< label class = "md-header__button md-icon" for = "__search" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z" / > < / svg >
< / label >
< div class = "md-search" data-md-component = "search" role = "dialog" >
< label class = "md-search__overlay" for = "__search" > < / label >
< div class = "md-search__inner" role = "search" >
< form class = "md-search__form" name = "search" >
< input type = "text" class = "md-search__input" name = "query" aria-label = "Search" placeholder = "Search" autocapitalize = "off" autocorrect = "off" autocomplete = "off" spellcheck = "false" data-md-component = "search-query" required >
< label class = "md-search__icon md-icon" for = "__search" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z" / > < / svg >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z" / > < / svg >
< / label >
< nav class = "md-search__options" aria-label = "Search" >
< button type = "reset" class = "md-search__icon md-icon" aria-label = "Clear" tabindex = "-1" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z" / > < / svg >
< / button >
< / nav >
< / form >
< div class = "md-search__output" >
< div class = "md-search__scrollwrap" data-md-scrollfix >
< div class = "md-search-result" data-md-component = "search-result" >
< div class = "md-search-result__meta" >
Initializing search
< / div >
< ol class = "md-search-result__list" > < / ol >
< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "md-header__source" >
< a href = "https://github.com/TRaSH-/Guides" title = "Go to repository" class = "md-source" data-md-component = "source" >
< div class = "md-source__icon md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 448 512" > <!-- ! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --> < path d = "M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z" / > < / svg >
< / div >
< div class = "md-source__repository" >
TRaSH-/Guides
< / div >
< / a >
< / div >
< / nav >
< / header >
< div class = "md-container" data-md-component = "container" >
< nav class = "md-tabs" aria-label = "Tabs" data-md-component = "tabs" >
< div class = "md-tabs__inner md-grid" >
< ul class = "md-tabs__list" >
< li class = "md-tabs__item" >
< a href = "../../.." class = "md-tabs__link" >
Home
< / a >
< / li >
< li class = "md-tabs__item" >
< a href = "../../../Radarr/" class = "md-tabs__link" >
Radarr
< / a >
< / li >
< li class = "md-tabs__item" >
< a href = "../../../Sonarr/" class = "md-tabs__link" >
Sonarr
< / a >
< / li >
< li class = "md-tabs__item" >
< a href = "../../../Bazarr/" class = "md-tabs__link" >
Bazarr
< / a >
< / li >
< li class = "md-tabs__item" >
< a href = "../../../Downloaders/" class = "md-tabs__link" >
Downloaders
< / a >
< / li >
< li class = "md-tabs__item" >
< a href = "../../../Plex/" class = "md-tabs__link" >
Plex
< / a >
< / li >
< li class = "md-tabs__item" >
< a href = "../../../Misc/" class = "md-tabs__link" >
Misc
< / a >
< / li >
< li class = "md-tabs__item" >
< a href = "../../Hardlinks-and-Instant-Moves/" class = "md-tabs__link md-tabs__link--active" >
Hardlinks
< / a >
< / li >
< li class = "md-tabs__item" >
< a href = ".." class = "md-tabs__link" >
How-to-setup-for
< / a >
< / li >
< / ul >
< / div >
< / nav >
< main class = "md-main" data-md-component = "main" >
< div class = "md-main__inner md-grid" >
< div class = "md-sidebar md-sidebar--primary" data-md-component = "sidebar" data-md-type = "navigation" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--primary md-nav--lifted" aria-label = "Navigation" data-md-level = "0" >
< label class = "md-nav__title" for = "__drawer" >
< a href = "../../.." title = "TRaSH Guides" class = "md-nav__button md-logo" aria-label = "TRaSH Guides" data-md-component = "logo" >
< img src = "../../../img/logo.png" alt = "logo" >
< / a >
TRaSH Guides
< / label >
< div class = "md-nav__source" >
< a href = "https://github.com/TRaSH-/Guides" title = "Go to repository" class = "md-source" data-md-component = "source" >
< div class = "md-source__icon md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 448 512" > <!-- ! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --> < path d = "M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z" / > < / svg >
< / div >
< div class = "md-source__repository" >
TRaSH-/Guides
< / div >
< / a >
< / div >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../.." class = "md-nav__link" >
Home
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_2" type = "checkbox" id = "__nav_2" >
< label class = "md-nav__link" for = "__nav_2" >
Radarr
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Radarr" data-md-level = "1" >
< label class = "md-nav__title" for = "__nav_2" >
< span class = "md-nav__icon md-icon" > < / span >
Radarr
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Radarr/" class = "md-nav__link" >
Home
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-Quality-Settings-File-Size/" class = "md-nav__link" >
Quality Settings (File Size)
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-recommended-naming-scheme/" class = "md-nav__link" >
Recommended naming scheme
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-import-custom-formats/" class = "md-nav__link" >
How to import Custom Formats
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-how-to-update-custom-formats/" class = "md-nav__link" >
How to Update Custom Formats
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-setup-custom-formats/" class = "md-nav__link" >
How to setup Custom Formats
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-collection-of-custom-formats/" class = "md-nav__link" >
Collection of Custom Formats
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-remote-path-mapping/" class = "md-nav__link" >
Remote Path Mappings explained
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_2_9" type = "checkbox" id = "__nav_2_9" >
< label class = "md-nav__link" for = "__nav_2_9" >
Tips
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Tips" data-md-level = "2" >
< label class = "md-nav__title" for = "__nav_2_9" >
< span class = "md-nav__icon md-icon" > < / span >
Tips
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Tips/Merge-quality/" class = "md-nav__link" >
How to Merge Quality
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Tips/Radarr-add-a-movie-collection/" class = "md-nav__link" >
How to add a Movie Collection
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Tips/Radarr-rename-your-folders/" class = "md-nav__link" >
How to rename your folders
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Tips/Radarr-show-unknown-movie-items/" class = "md-nav__link" >
Show Unknown Movie Items
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Tips/Sync-2-radarr-sonarr/" class = "md-nav__link" >
How to Sync 2 Radarr or Sonarr with each other
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_3" type = "checkbox" id = "__nav_3" >
< label class = "md-nav__link" for = "__nav_3" >
Sonarr
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Sonarr" data-md-level = "1" >
< label class = "md-nav__title" for = "__nav_3" >
< span class = "md-nav__icon md-icon" > < / span >
Sonarr
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/" class = "md-nav__link" >
Home
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Sonarr-Quality-Settings-File-Size/" class = "md-nav__link" >
Quality Settings (File Size)
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Sonarr-recommended-naming-scheme/" class = "md-nav__link" >
Recommended naming scheme
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Sonarr-Release-Profile-RegEx/" class = "md-nav__link" >
Release Profile RegEx (WEB-DL)
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Sonarr-Release-Profile-RegEx-Anime/" class = "md-nav__link" >
Release Profile RegEx (Anime)
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Sonarr-remote-path-mapping/" class = "md-nav__link" >
Remote Path Mappings explained
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_3_7" type = "checkbox" id = "__nav_3_7" >
< label class = "md-nav__link" for = "__nav_3_7" >
Tips
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Tips" data-md-level = "2" >
< label class = "md-nav__title" for = "__nav_3_7" >
< span class = "md-nav__icon md-icon" > < / span >
Tips
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Tips/Merge-quality/" class = "md-nav__link" >
Merge quality
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Tips/Sync-2-radarr-sonarr/" class = "md-nav__link" >
Sync 2 radarr sonarr
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_4" type = "checkbox" id = "__nav_4" >
< label class = "md-nav__link" for = "__nav_4" >
Bazarr
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Bazarr" data-md-level = "1" >
< label class = "md-nav__title" for = "__nav_4" >
< span class = "md-nav__icon md-icon" > < / span >
Bazarr
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Bazarr/" class = "md-nav__link" >
Home
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Bazarr/Setup-Guide/" class = "md-nav__link" >
Basic-Guide
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Bazarr/After-install-configuration/" class = "md-nav__link" >
After Install Configuration
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "/Bazarr/scripts/" class = "md-nav__link" >
Scripts
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_4_5" type = "checkbox" id = "__nav_4_5" >
< label class = "md-nav__link" for = "__nav_4_5" >
Tips
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Tips" data-md-level = "2" >
< label class = "md-nav__title" for = "__nav_4_5" >
< span class = "md-nav__icon md-icon" > < / span >
Tips
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Bazarr/Tips/Bazarr-suggested-scoring/" class = "md-nav__link" >
Suggested Scoring
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_5" type = "checkbox" id = "__nav_5" >
< label class = "md-nav__link" for = "__nav_5" >
Downloaders
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Downloaders" data-md-level = "1" >
< label class = "md-nav__title" for = "__nav_5" >
< span class = "md-nav__icon md-icon" > < / span >
Downloaders
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/" class = "md-nav__link" >
Home
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_5_2" type = "checkbox" id = "__nav_5_2" >
< label class = "md-nav__link" for = "__nav_5_2" >
NZBGet
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "NZBGet" data-md-level = "2" >
< label class = "md-nav__title" for = "__nav_5_2" >
< span class = "md-nav__icon md-icon" > < / span >
NZBGet
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/NZBGet/Basic-Setup/" class = "md-nav__link" >
Basic-Setup
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/NZBGet/Paths-and-Categories/" class = "md-nav__link" >
Path and Categories
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "/Downloaders/NZBGet/scripts/" class = "md-nav__link" >
Scripts
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_5_3" type = "checkbox" id = "__nav_5_3" >
< label class = "md-nav__link" for = "__nav_5_3" >
SABnzbd
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "SABnzbd" data-md-level = "2" >
< label class = "md-nav__title" for = "__nav_5_3" >
< span class = "md-nav__icon md-icon" > < / span >
SABnzbd
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/SABnzbd/Basic-Setup/" class = "md-nav__link" >
Basic-Setup
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/SABnzbd/Paths-and-Categories/" class = "md-nav__link" >
Path and Categories
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "/Downloaders/SABnzbd/scripts/" class = "md-nav__link" >
Scripts
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_5_4" type = "checkbox" id = "__nav_5_4" >
< label class = "md-nav__link" for = "__nav_5_4" >
qBittorrent
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "qBittorrent" data-md-level = "2" >
< label class = "md-nav__title" for = "__nav_5_4" >
< span class = "md-nav__icon md-icon" > < / span >
qBittorrent
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/Basic-Setup/" class = "md-nav__link" >
Basic-Setup
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/Paths/" class = "md-nav__link" >
Paths
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/How-to-add-categories/" class = "md-nav__link" >
How to add Categories
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/Port-forwarding/" class = "md-nav__link" >
Port forwarding
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/3rd-party-tools/" class = "md-nav__link" >
3rd Party tools
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_5_4_6" type = "checkbox" id = "__nav_5_4_6" >
< label class = "md-nav__link" for = "__nav_5_4_6" >
Tips
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Tips" data-md-level = "3" >
< label class = "md-nav__title" for = "__nav_5_4_6" >
< span class = "md-nav__icon md-icon" > < / span >
Tips
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent/" class = "md-nav__link" >
How to run the unRaid mover for qBittorent seeding torrents
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_5_5" type = "checkbox" id = "__nav_5_5" >
< label class = "md-nav__link" for = "__nav_5_5" >
Deluge
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Deluge" data-md-level = "2" >
< label class = "md-nav__title" for = "__nav_5_5" >
< span class = "md-nav__icon md-icon" > < / span >
Deluge
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/Deluge/" class = "md-nav__link" >
Deluge Placeholder
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/Deluge/Deluge-Basic-Setup/" class = "md-nav__link" >
Deluge - Basic Setup
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/Deluge/Deluge-how-to-add-labels/" class = "md-nav__link" >
Deluge - How to add labels
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_5_6" type = "checkbox" id = "__nav_5_6" >
< label class = "md-nav__link" for = "__nav_5_6" >
ruTorrent
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "ruTorrent" data-md-level = "2" >
< label class = "md-nav__title" for = "__nav_5_6" >
< span class = "md-nav__icon md-icon" > < / span >
ruTorrent
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/ruTorrent/" class = "md-nav__link" >
ruTorrent Placeholder
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/ruTorrent/ruTorrent-Basic-Setup/" class = "md-nav__link" >
ruTorrent - Basic Setup
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_6" type = "checkbox" id = "__nav_6" >
< label class = "md-nav__link" for = "__nav_6" >
Plex
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Plex" data-md-level = "1" >
< label class = "md-nav__title" for = "__nav_6" >
< span class = "md-nav__icon md-icon" > < / span >
Plex
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Plex/" class = "md-nav__link" >
Home
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "/Plex/profiles/" class = "md-nav__link" >
Profiles
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_6_3" type = "checkbox" id = "__nav_6_3" >
< label class = "md-nav__link" for = "__nav_6_3" >
Tips
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Tips" data-md-level = "2" >
< label class = "md-nav__title" for = "__nav_6_3" >
< span class = "md-nav__icon md-icon" > < / span >
Tips
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Plex/Tips/Plex-media-server/" class = "md-nav__link" >
Suggested Plex Media Server Settings
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Plex/Tips/Optimal-plex-client-settings/" class = "md-nav__link" >
Optimal Plex Client Settings
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Plex/Tips/4k-transcoding/" class = "md-nav__link" >
JBOPS 4K Transcode Stopping with Tautulli
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_7" type = "checkbox" id = "__nav_7" >
< label class = "md-nav__link" for = "__nav_7" >
Misc
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Misc" data-md-level = "1" >
< label class = "md-nav__title" for = "__nav_7" >
< span class = "md-nav__icon md-icon" > < / span >
Misc
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Misc/" class = "md-nav__link" >
Home
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Misc/how-to-provide-a-docker-compose/" class = "md-nav__link" >
How to provide a docker compose
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Misc/How-to-setup-Torguard-for-port-forwarding/" class = "md-nav__link" >
Setup TorGuard for port forwarding
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Misc/x265-4k/" class = "md-nav__link" >
x265-4k and Golden Rule
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Misc/trash-sync/" class = "md-nav__link" >
TRaSH Sync
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--active md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_8" type = "checkbox" id = "__nav_8" checked >
< label class = "md-nav__link" for = "__nav_8" >
Hardlinks
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Hardlinks" data-md-level = "1" >
< label class = "md-nav__title" for = "__nav_8" >
< span class = "md-nav__icon md-icon" > < / span >
Hardlinks
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../Hardlinks-and-Instant-Moves/" class = "md-nav__link" >
Hardlinks - Atomic Moves
< / a >
< / li >
< li class = "md-nav__item md-nav__item--active md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "__nav_8_2" type = "checkbox" id = "__nav_8_2" checked >
< label class = "md-nav__link" for = "__nav_8_2" >
How to setup for
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "How to setup for" data-md-level = "2" >
< label class = "md-nav__title" for = "__nav_8_2" >
< span class = "md-nav__icon md-icon" > < / span >
How to setup for
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../" class = "md-nav__link" >
How to setup for
< / a >
< / li >
< li class = "md-nav__item md-nav__item--active" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "toc" type = "checkbox" id = "__toc" >
< label class = "md-nav__link md-nav__link--active" for = "__toc" >
Docker
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< a href = "./" class = "md-nav__link md-nav__link--active" >
Docker
< / a >
< nav class = "md-nav md-nav--secondary" aria-label = "Table of contents" >
< label class = "md-nav__title" for = "__toc" >
< span class = "md-nav__icon md-icon" > < / span >
Table of contents
< / label >
< ul class = "md-nav__list" data-md-component = "toc" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "#folder-structure" class = "md-nav__link" >
Folder Structure
< / a >
< nav class = "md-nav" aria-label = "Folder Structure" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#breakdown-of-the-folder-structure" class = "md-nav__link" >
Breakdown of the Folder Structure
< / a >
< nav class = "md-nav" aria-label = "Breakdown of the Folder Structure" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#torrent-clients" class = "md-nav__link" >
Torrent clients
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#usenet-clients" class = "md-nav__link" >
Usenet clients
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#the-starr-apps" class = "md-nav__link" >
The Starr Apps
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#media-server" class = "md-nav__link" >
Media Server
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "#permissions" class = "md-nav__link" >
Permissions
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "#docker-compose-example" class = "md-nav__link" >
Docker-compose Example
< / a >
< nav class = "md-nav" aria-label = "Docker-compose Example" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#docker-compose-commands" class = "md-nav__link" >
Docker-Compose Commands
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "../Dockstarter/" class = "md-nav__link" >
Dockstarter
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../Native/" class = "md-nav__link" >
Native
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../Synology/" class = "md-nav__link" >
Synology
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../Unraid/" class = "md-nav__link" >
Unraid
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "../../Examples/" class = "md-nav__link" >
Examples
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Check-if-hardlinks-are-working/" class = "md-nav__link" >
Check if hardlinks are working
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Replace-copies-with-hardlinks/" class = "md-nav__link" >
Replace copies with hardlinks
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = ".." class = "md-nav__link" >
How-to-setup-for
< / a >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-sidebar md-sidebar--secondary" data-md-component = "sidebar" data-md-type = "toc" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--secondary" aria-label = "Table of contents" >
< label class = "md-nav__title" for = "__toc" >
< span class = "md-nav__icon md-icon" > < / span >
Table of contents
< / label >
< ul class = "md-nav__list" data-md-component = "toc" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "#folder-structure" class = "md-nav__link" >
Folder Structure
< / a >
< nav class = "md-nav" aria-label = "Folder Structure" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#breakdown-of-the-folder-structure" class = "md-nav__link" >
Breakdown of the Folder Structure
< / a >
< nav class = "md-nav" aria-label = "Breakdown of the Folder Structure" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#torrent-clients" class = "md-nav__link" >
Torrent clients
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#usenet-clients" class = "md-nav__link" >
Usenet clients
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#the-starr-apps" class = "md-nav__link" >
The Starr Apps
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#media-server" class = "md-nav__link" >
Media Server
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "#permissions" class = "md-nav__link" >
Permissions
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "#docker-compose-example" class = "md-nav__link" >
Docker-compose Example
< / a >
< nav class = "md-nav" aria-label = "Docker-compose Example" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#docker-compose-commands" class = "md-nav__link" >
Docker-Compose Commands
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-content" data-md-component = "content" >
< article class = "md-content__inner md-typeset" >
< a href = "https://github.com/TRaSH-/Guides/edit/master/docs/Hardlinks/How-to-setup-for/Docker.md" title = "Edit this page" class = "md-content__button md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z" / > < / svg >
< / a >
< h1 id = "docker" > Docker< a class = "headerlink" href = "#docker" title = "Permanent link" > < / a > < / h1 >
< div class = "admonition tip" >
< p class = "admonition-title" > Tip< / p >
< p > If you're new to dockers and want a easy setup I suggest to take a look at < a href = "https://dockstarter.com/" rel = "noopener noreferrer" target = "_blank" > DockSTARTer< / a > .
I've also created a short guide < a href = "/Hardlinks/How-to-setup-for/Dockstarter/" > HERE< / a > where I explain the settings for the most used applications.< / p >
< p > The main goal of DockSTARTer is to make it quick and easy to get up and running with Docker.
You may choose to rely on DockSTARTer for various changes to your Docker system or use DockSTARTer as a stepping stone and learn to do more advanced configurations.< / p >
< p > < em > DockSTARTer was actually my first steps in to the world of dockers.< / em > < / p >
< / div >
< div class = "admonition note" >
< p class = "admonition-title" > Note< / p >
< p > I'm not going to explain how to get dockers installed and running, I will only explain which folder structure we recommend.< / p >
< p > The paths mentioned below refer to internal paths for the containers!< / p >
< p > External paths depends where you mounted your share or your drives.< / p >
< p > For example < code > /< path_to_data> /data< / code > , or even < code > /data< / code > .< / p >
< / div >
< h2 id = "folder-structure" > Folder Structure< a class = "headerlink" href = "#folder-structure" title = "Permanent link" > < / a > < / h2 >
< div class = "admonition attention" >
< p class = "admonition-title" > Attention< / p >
< p > It doesn't really matter which path you use for your media and appdata,< / p >
< p > the only thing you should avoid is < code > /home< / code > .< / p >
< p > Because user folders in < code > /home< / code > are expected to have some restrictive permissions.< / p >
< p > It just could end up creating a permissions mess, so it's better to just avoid entirely.< / p >
< / div >
< p > For this example we're going to make use of a share called < code > data< / code > .< / p >
< p > The < code > data< / code > folder has sub-folders for < code > torrents< / code > and < code > usenet< / code > and each of these have sub-folders for < code > tv< / code > , < code > movie< / code > and < code > music< / code > downloads to keep things neat. The < code > media< / code > folder has nicely named < code > TV< / code > , < code > Movies< / code > and < code > Music< / code > sub-folders, this is your library and what you’ d pass to Plex, Emby or JellyFin.< / p >
< p > < em > In this examples I'm using lower case on all folder on purpose, being Linux is case sensitive.< / em > < / p >
< div class = "highlight" > < pre > < span > < / span > < code > data
├── torrents
│ ├── movies
│ ├── music
│ └── tv
├── usenet
│ ├── movies
│ ├── music
│ └── tv
└── media
├── movies
├── music
└── tv
< / code > < / pre > < / div >
< div class = "admonition attention" >
< p > The default path setup suggested by some docker developers that encourages people to use mounts like < code > /movies< / code > , < code > /tv< / code > and < code > /downloads< / code > is very suboptimal and it makes them look like two or three file systems, even if they aren’ t (< em > Because of how Docker’ s volumes work< / em > ). It is the easiest way to get started. While easy to use, it has a major drawback. Mainly losing the ability to hardlink or instant move, resulting in a slower and more I/O intensive copy + delete is used.< / p >
< / div >
< h3 id = "breakdown-of-the-folder-structure" > Breakdown of the Folder Structure< a class = "headerlink" href = "#breakdown-of-the-folder-structure" title = "Permanent link" > < / a > < / h3 >
< h4 id = "torrent-clients" > Torrent clients< a class = "headerlink" href = "#torrent-clients" title = "Permanent link" > < / a > < / h4 >
< p > qBittorrent, Deluge, ruTorrent< / p >
< p > The reason why we use < code > /data/torrents< / code > for the torrent client is because it only needs access to the torrent files. In the torrent software settings, you’ ll need to reconfigure paths and you can sort into sub-folders like < code > /data/torrents/{tv|movies|music}< / code > .< / p >
< div class = "highlight" > < pre > < span > < / span > < code > data
└── torrents
├── movies
├── music
└── tv
< / code > < / pre > < / div >
< h4 id = "usenet-clients" > Usenet clients< a class = "headerlink" href = "#usenet-clients" title = "Permanent link" > < / a > < / h4 >
< p > NZBGet or SABnzbd< / p >
< p > The reason why we use < code > /data/usenet< / code > for the usenet client is because it only needs access to the usenet files. In the usenet software settings, you’ ll need to reconfigure paths and you can sort into sub-folders like < code > /data/usenet/{tv|movies|music}< / code > .< / p >
< div class = "highlight" > < pre > < span > < / span > < code > data
└── usenet
├── movies
├── music
└── tv
< / code > < / pre > < / div >
< h4 id = "the-starr-apps" > The Starr Apps< a class = "headerlink" href = "#the-starr-apps" title = "Permanent link" > < / a > < / h4 >
< p > Sonarr, Radarr and Lidarr< / p >
< p > Sonarr, Radarr and Lidarr gets access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete.< / p >
< div class = "highlight" > < pre > < span > < / span > < code > data
├── torrents
│ ├── movies
│ ├── music
│ └── tv
├── usenet
│ ├── movies
│ ├── music
│ └── tv
└── media
├── movies
├── music
└── tv
< / code > < / pre > < / div >
< h4 id = "media-server" > Media Server< a class = "headerlink" href = "#media-server" title = "Permanent link" > < / a > < / h4 >
< p > Plex, Emby, JellyFin and Bazarr< / p >
< p > Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.< / p >
< div class = "highlight" > < pre > < span > < / span > < code > data
└── media
├── movies
├── music
└── tv
< / code > < / pre > < / div >
< hr / >
< p > < strong > Don't forget to look at the < a href = "/Hardlinks/Examples/" > Examples< / a > how to setup the paths inside the applications.< / strong > < / p >
< h3 id = "permissions" > Permissions< a class = "headerlink" href = "#permissions" title = "Permanent link" > < / a > < / h3 >
< p > Recursively chown user and group and Recursively chmod to 775/664< / p >
< div class = "highlight" > < pre > < span > < / span > < code > sudo chown -R < span class = "nv" > $USER< / span > :< span class = "nv" > $USER< / span > /data
sudo chmod -R < span class = "nv" > a< / span > < span class = "o" > =< / span > ,a+rX,u+w,g+w /data
< / code > < / pre > < / div >
< h2 id = "docker-compose-example" > Docker-compose Example< a class = "headerlink" href = "#docker-compose-example" title = "Permanent link" > < / a > < / h2 >
< div class = "admonition example" >
< p > This is a docker-compose example based on a default Ubuntu install.< / p >
< p > The storage location used for the host is actually the same as in the container to make it easier to understand in this case < code > /data< / code > .< / p >
< p > The appdata (< code > /config< / code > ) will be stored on the host in the < code > /docker/appdata/{appname}< / code > < / p >
< / div >
< details class = "example" >
< summary > docker-compose - [CLICK TO EXPAND]< / summary >
< div class = "highlight" > < pre > < span > < / span > < code > version: " 3.2"
services:
radarr:
container_name: radarr
image: cr.hotio.dev/hotio/radarr:latest
restart: unless-stopped
logging:
driver: json-file
network_mode: bridge
ports:
- 7878:7878
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Amsterdam
volumes:
- /etc/localtime:/etc/localtime:ro
- /docker/appdata/radarr:/config
- /data:/data
sonarr:
container_name: sonarr
image: cr.hotio.dev/hotio/sonarr:latest
restart: unless-stopped
logging:
driver: json-file
network_mode: bridge
ports:
- 8989:8989
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Amsterdam
volumes:
- /etc/localtime:/etc/localtime:ro
- /docker/appdata/sonarr:/config
- /data:/data
bazarr:
container_name: bazarr
image: cr.hotio.dev/hotio/bazarr:latest
restart: unless-stopped
logging:
driver: json-file
network_mode: bridge
ports:
- 6767:6767
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Amsterdam
volumes:
- /etc/localtime:/etc/localtime:ro
- /docker/appdata/bazarr:/config
- /data/media:/data/media
sabnzbd:
container_name: sabnzbd
image: cr.hotio.dev/hotio/sabnzbd:latest
restart: unless-stopped
logging:
driver: json-file
network_mode: bridge
ports:
- 8080:8080
- 9090:9090
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Amsterdam
volumes:
- /etc/localtime:/etc/localtime:ro
- /docker/appdata/sabnzbd:/config
- /data/usenet:/data/usenet:rw
< / code > < / pre > < / div >
< / details >
< h3 id = "docker-compose-commands" > Docker-Compose Commands< a class = "headerlink" href = "#docker-compose-commands" title = "Permanent link" > < / a > < / h3 >
< details class = "hint" >
< summary > docker-compose commands - [CLICK TO EXPAND]< / summary >
< ul >
< li > < code > sudo docker-compose up -d< / code > (This Docker-compose command helps builds the image, then creates and starts Docker containers. The containers are from the services specified in the compose file. If the containers are already running and you run docker-compose up, it recreates the container.)< / li >
< li > < code > sudo docker-compose pull< / code > (Pulls an image associated with a service defined in a docker-compose.yml)< / li >
< li > < code > sudo docker-compose down< / code > (The Docker-compose down command also stops Docker containers like the stop command does. But it goes the extra mile. Docker-compose down, doesn’ t just stop the containers, it also removes them.)< / li >
< li > < code > sudo docker system prune -a --volumes --force< / code > (Remove all unused containers, networks, images (both dangling and unreferenced), and optionally, volumes.)< / li >
< / ul >
< / details >
< hr / >
< div class = "admonition help" >
< p class = "admonition-title" > Questions or Suggestions?< / p >
< p > If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.< / p >
< p > < a href = "https://trash-guides.info/discord" rel = "noopener noreferrer" target = "_blank" > < img alt = "Discord chat" src = "https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord" / > < / a > < / p >
< / div >
< hr >
< div class = "md-source-file" >
< small >
Last update:
< span class = "git-revision-date-localized-plugin git-revision-date-localized-plugin-datetime" > July 31, 2022 09:49:44< / span >
< / small >
< / div >
< footer class = "sponsorship" >
< hr >
< a href = "https://github.com/sponsors/TRaSH-" title = "Buy me a Coffee" > < img src = "/img/buy-me-a-coffee.png" alt = "Buy me a coffee" width = "137" height = "39" >
< / a >
< hr >
< / footer >
< / article >
< / div >
< / div >
< a href = "#" class = "md-top md-icon" data-md-component = "top" hidden >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z" / > < / svg >
Back to top
< / a >
< / main >
< footer class = "md-footer" >
< nav class = "md-footer__inner md-grid" aria-label = "Footer" >
< a href = "../" class = "md-footer__link md-footer__link--prev" aria-label = "Previous: How to setup for" rel = "prev" >
< div class = "md-footer__button md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z" / > < / svg >
< / div >
< div class = "md-footer__title" >
< div class = "md-ellipsis" >
< span class = "md-footer__direction" >
Previous
< / span >
How to setup for
< / div >
< / div >
< / a >
< a href = "../Dockstarter/" class = "md-footer__link md-footer__link--next" aria-label = "Next: Dockstarter" rel = "next" >
< div class = "md-footer__title" >
< div class = "md-ellipsis" >
< span class = "md-footer__direction" >
Next
< / span >
Dockstarter
< / div >
< / div >
< div class = "md-footer__button md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z" / > < / svg >
< / div >
< / a >
< / nav >
< div class = "md-footer-meta md-typeset" >
< div class = "md-footer-meta__inner md-grid" >
< div class = "md-copyright" >
< div class = "md-copyright__highlight" >
Copyright © 2022 TRaSH
< / div >
Made with
< a href = "https://squidfunk.github.io/mkdocs-material/" target = "_blank" rel = "noopener" >
Material for MkDocs
< / a >
< / div >
< div class = "md-social" >
< a href = "https://trash-guides.info/discord" target = "_blank" rel = "noopener" title = "trash-guides.info" class = "md-social__link" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 640 512" > <!-- ! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --> < path d = "M524.531 69.836a1.5 1.5 0 0 0-.764-.7A485.065 485.065 0 0 0 404.081 32.03a1.816 1.816 0 0 0-1.923.91 337.461 337.461 0 0 0-14.9 30.6 447.848 447.848 0 0 0-134.426 0 309.541 309.541 0 0 0-15.135-30.6 1.89 1.89 0 0 0-1.924-.91 483.689 483.689 0 0 0-119.688 37.107 1.712 1.712 0 0 0-.788.676C39.068 183.651 18.186 294.69 28.43 404.354a2.016 2.016 0 0 0 .765 1.375 487.666 487.666 0 0 0 146.825 74.189 1.9 1.9 0 0 0 2.063-.676A348.2 348.2 0 0 0 208.12 430.4a1.86 1.86 0 0 0-1.019-2.588 321.173 321.173 0 0 1-45.868-21.853 1.885 1.885 0 0 1-.185-3.126 251.047 251.047 0 0 0 9.109-7.137 1.819 1.819 0 0 1 1.9-.256c96.229 43.917 200.41 43.917 295.5 0a1.812 1.812 0 0 1 1.924.233 234.533 234.533 0 0 0 9.132 7.16 1.884 1.884 0 0 1-.162 3.126 301.407 301.407 0 0 1-45.89 21.83 1.875 1.875 0 0 0-1 2.611 391.055 391.055 0 0 0 30.014 48.815 1.864 1.864 0 0 0 2.063.7A486.048 486.048 0 0 0 610.7 405.729a1.882 1.882 0 0 0 .765-1.352c12.264-126.783-20.532-236.912-86.934-334.541ZM222.491 337.58c-28.972 0-52.844-26.587-52.844-59.239s23.409-59.241 52.844-59.241c29.665 0 53.306 26.82 52.843 59.239 0 32.654-23.41 59.241-52.843 59.241Zm195.38 0c-28.971 0-52.843-26.587-52.843-59.239s23.409-59.241 52.843-59.241c29.667 0 53.307 26.82 52.844 59.239 0 32.654-23.177 59.241-52.844 59.241Z" / > < / svg >
< / a >
< a href = "https://github.com/TRaSH-/Guides" target = "_blank" rel = "noopener" title = "github.com" class = "md-social__link" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 448 512" > <!-- ! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --> < path d = "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z" / > < / svg >
< / a >
< / div >
< / div >
< / div >
< / footer >
< / div >
< div class = "md-dialog" data-md-component = "dialog" >
< div class = "md-dialog__inner md-typeset" > < / div >
< / div >
< script id = "__config" type = "application/json" > { "base" : "../../.." , "features" : [ "navigation.instant" , "navigation.tabs" , "navigation.top" ] , "search" : "../../../assets/javascripts/workers/search.b97dbffb.min.js" , "translations" : { "clipboard.copied" : "Copied to clipboard" , "clipboard.copy" : "Copy to clipboard" , "search.config.lang" : "en" , "search.config.pipeline" : "trimmer, stopWordFilter" , "search.config.separator" : "[\\s\\-]+" , "search.placeholder" : "Search" , "search.result.more.one" : "1 more on this page" , "search.result.more.other" : "# more on this page" , "search.result.none" : "No matching documents" , "search.result.one" : "1 matching document" , "search.result.other" : "# matching documents" , "search.result.placeholder" : "Type to start searching" , "search.result.term.missing" : "Missing" , "select.version.title" : "Select version" } } < / script >
< script src = "../../../assets/javascripts/bundle.6c7ad80a.min.js" > < / script >
< script >
var elements = document.getElementsByClassName("lightgallery");
for(var i=0; i< elements.length ; i + + ) {
lightGallery(elements[i]);
}
< / script >
< / body >
< / html >