<!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/TrueNAS-Core/" >
< link rel = "prev" href = "../Synology/" >
< link rel = "next" href = "../Unraid/" >
< link rel = "icon" href = "../../../img/favicon.png" >
< meta name = "generator" content = "mkdocs-1.5.3, mkdocs-material-9.5.3" >
< title > TrueNAS Core - TRaSH Guides< / title >
< link rel = "stylesheet" href = "../../../assets/stylesheets/main.50c56a3b.min.css" >
< link rel = "stylesheet" href = "../../../assets/stylesheets/palette.06af60db.min.css" >
< 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 _hash = e => [ ... e ] . reduce ( ( e , _ ) => ( e << 5 ) - e + _ . charCodeAt ( 0 ) , 0 ) , _ _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 id = "__analytics" > function _ _md _analytics ( ) { function n ( ) { dataLayer . push ( arguments ) } window . dataLayer = window . dataLayer || [ ] , n ( "js" , new Date ) , n ( "config" , "G-ZZKM4MPQXL" ) , document . addEventListener ( "DOMContentLoaded" , function ( ) { document . forms . search && document . forms . search . query . addEventListener ( "blur" , function ( ) { this . value && n ( "event" , "search" , { search _term : this . value } ) } ) , document $ . subscribe ( function ( ) { var a = document . forms . feedback ; if ( void 0 !== a ) for ( var e of a . querySelectorAll ( "[type=submit]" ) ) e . addEventListener ( "click" , function ( e ) { e . preventDefault ( ) ; var t = document . location . pathname , e = this . getAttribute ( "data-md-value" ) ; n ( "event" , "feedback" , { page : t , data : e } ) , a . firstElementChild . disabled = ! 0 ; e = a . querySelector ( ".md-feedback__note [data-md-value='" + e + "']" ) ; e && ( e . hidden = ! 1 ) } ) , a . hidden = ! 1 } ) , location$ . subscribe ( function ( e ) { n ( "config" , "G-ZZKM4MPQXL" , { page _path : e . pathname } ) } ) } ) ; var e = document . createElement ( "script" ) ; e . async = ! 0 , e . src = "https://www.googletagmanager.com/gtag/js?id=G-ZZKM4MPQXL" , document . getElementById ( "__analytics" ) . insertAdjacentElement ( "afterEnd" , e ) } < / script >
< script > "undefined" != typeof _ _md _analytics && _ _md _analytics ( ) < / script >
< link href = "../../../assets/stylesheets/glightbox.min.css" rel = "stylesheet" / > < style >
html.glightbox-open { overflow: initial; height: 100%; }
.gslide-title { margin-top: 0px; user-select: text; }
.gslide-desc { color: #666; user-select: text; }
.gslide-image img { background: white; }
.gscrollbar-fixer { padding-right: 15px; }
.gdesc-inner { font-size: 0.75rem; }
body[data-md-color-scheme="slate"] .gdesc-inner { background: var(--md-default-bg-color);}
body[data-md-color-scheme="slate"] .gslide-title { color: var(--md-default-fg-color);}
body[data-md-color-scheme="slate"] .gslide-desc { color: var(--md-default-fg-color);}
< / style > < script src = "../../../assets/javascripts/glightbox.min.js" > < / script > < / head >
< body dir = "ltr" data-md-color-scheme = "slate" data-md-color-primary = "indigo" data-md-color-accent = "blue" >
< 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 = "#truenas-core" 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" >
TrueNAS Core
< / 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 = "indigo" data-md-color-accent = "blue" aria-label = "Switch to light mode" type = "radio" name = "__palette" id = "__palette_0" >
< label class = "md-header__button md-icon" title = "Switch to light mode" for = "__palette_1" 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_1" >
< label class = "md-header__button md-icon" title = "Switch to dark mode" for = "__palette_0" 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 >
< script > var media , input , key , value , palette = _ _md _get ( "__palette" ) ; if ( palette && palette . color ) { "(prefers-color-scheme)" === palette . color . media && ( media = matchMedia ( "(prefers-color-scheme: light)" ) , input = document . querySelector ( media . matches ? "[data-md-color-media='(prefers-color-scheme: light)']" : "[data-md-color-media='(prefers-color-scheme: dark)']" ) , palette . color . media = input . getAttribute ( "data-md-color-media" ) , palette . color . scheme = input . getAttribute ( "data-md-color-scheme" ) , palette . color . primary = input . getAttribute ( "data-md-color-primary" ) , palette . color . accent = input . getAttribute ( "data-md-color-accent" ) ) ; for ( [ key , value ] of Object . entries ( palette . color ) ) document . body . setAttribute ( "data-md-color-" + key , value ) } < / script >
< 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" title = "Clear" 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" role = "presentation" > < / ol >
< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "md-header__source" >
< a href = "https://github.com/TRaSH-Guides/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.5.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 2023 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-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 = "../../../Prowlarr/" class = "md-tabs__link" >
Prowlarr
< / 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 = "../../../Guide-Sync/" class = "md-tabs__link" >
Guide Sync
< / a >
< / li >
< li class = "md-tabs__item" >
< a href = "../../../Misc/" class = "md-tabs__link" >
Misc
< / a >
< / li >
< li class = "md-tabs__item md-tabs__item--active" >
< a href = "../../Hardlinks-and-Instant-Moves/" class = "md-tabs__link" >
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/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.5.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 2023 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" >
< span class = "md-ellipsis" >
Home
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_2" >
< label class = "md-nav__link" for = "__nav_2" id = "__nav_2_label" tabindex = "" >
< span class = "md-ellipsis" >
Radarr
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_2_label" aria-expanded = "false" >
< 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" >
< span class = "md-ellipsis" >
Home
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-Quality-Settings-File-Size/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Quality Settings (File Size)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-recommended-naming-scheme/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Recommended naming scheme
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-import-custom-formats/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to import Custom Formats
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-how-to-update-custom-formats/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to Update Custom Formats
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/radarr-setup-quality-profiles/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup Quality Profiles
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/radarr-setup-quality-profiles-anime/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup Quality Profiles (Anime)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/radarr-setup-quality-profiles-french-en/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup Quality Profiles (French)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-collection-of-custom-formats/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Collection of Custom Formats
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Radarr-remote-path-mapping/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Remote Path Mappings explained
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_2_11" >
< label class = "md-nav__link" for = "__nav_2_11" id = "__nav_2_11_label" tabindex = "0" >
< span class = "md-ellipsis" >
Tips
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_2_11_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_2_11" >
< 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/How-to-setup-language-custom-formats/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup Language Custom Formats
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Tips/Merge-quality/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to Merge Quality
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Tips/Radarr-rename-your-folders/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to rename your folders
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Tips/Radarr-show-unknown-movie-items/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Show Unknown Movie Items
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Radarr/Tips/Sync-2-radarr-sonarr/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to Sync 2 Radarr or Sonarr with each other
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_3" >
< label class = "md-nav__link" for = "__nav_3" id = "__nav_3_label" tabindex = "" >
< span class = "md-ellipsis" >
Sonarr
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_3_label" aria-expanded = "false" >
< 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" >
< span class = "md-ellipsis" >
Home
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Sonarr-Quality-Settings-File-Size/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Quality Settings (File Size)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Sonarr-recommended-naming-scheme/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Recommended naming scheme
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/sonarr-import-custom-formats/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to import Custom Formats
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/sonarr-how-to-update-custom-formats/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to Update Custom Formats
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/sonarr-setup-quality-profiles/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup Quality Profiles
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/sonarr-setup-quality-profiles-anime/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup Quality Profiles (Anime)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/sonarr-setup-quality-profiles-french-en/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup Quality Profiles (French)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/sonarr-collection-of-custom-formats/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Collection of Custom Formats
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Sonarr-remote-path-mapping/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Remote Path Mappings explained
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_3_11" >
< label class = "md-nav__link" for = "__nav_3_11" id = "__nav_3_11_label" tabindex = "0" >
< span class = "md-ellipsis" >
Sonarr v3 (Legacy)
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_3_11_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_3_11" >
< span class = "md-nav__icon md-icon" > < / span >
Sonarr v3 (Legacy)
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Sonarr-Release-Profile-RegEx/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Release Profile RegEx (WEB-DL)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Sonarr-Release-Profile-RegEx-Anime/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Release Profile RegEx (Anime)
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_3_12" >
< label class = "md-nav__link" for = "__nav_3_12" id = "__nav_3_12_label" tabindex = "0" >
< span class = "md-ellipsis" >
Tips
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_3_12_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_3_12" >
< 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/How-to-setup-language-custom-formats/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup language custom formats
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Tips/Merge-quality/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Merge quality
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Sonarr/Tips/Sync-2-radarr-sonarr/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Sync 2 radarr sonarr
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_4" >
< label class = "md-nav__link" for = "__nav_4" id = "__nav_4_label" tabindex = "" >
< span class = "md-ellipsis" >
Prowlarr
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_4_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_4" >
< span class = "md-nav__icon md-icon" > < / span >
Prowlarr
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Prowlarr/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Home
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Prowlarr/prowlarr-setup-proxy/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup proxy for certain indexers
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Prowlarr/prowlarr-setup-flaresolverr/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup FlareSolverr
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Prowlarr/prowlarr-setup-limited-api/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to setup indexers with limited API
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_5" >
< label class = "md-nav__link" for = "__nav_5" id = "__nav_5_label" tabindex = "" >
< span class = "md-ellipsis" >
Bazarr
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_5_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_5" >
< 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" >
< span class = "md-ellipsis" >
Home
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Bazarr/Setup-Guide/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Basic-Guide
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Bazarr/After-install-configuration/" class = "md-nav__link" >
< span class = "md-ellipsis" >
After Install Configuration
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "/Bazarr/scripts/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Scripts
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_5_5" >
< label class = "md-nav__link" for = "__nav_5_5" id = "__nav_5_5_label" tabindex = "0" >
< span class = "md-ellipsis" >
Tips
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_5_5_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_5_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" >
< span class = "md-ellipsis" >
Suggested Scoring
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_6" >
< label class = "md-nav__link" for = "__nav_6" id = "__nav_6_label" tabindex = "" >
< span class = "md-ellipsis" >
Downloaders
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_6_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_6" >
< 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" >
< span class = "md-ellipsis" >
Home
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_6_2" >
< label class = "md-nav__link" for = "__nav_6_2" id = "__nav_6_2_label" tabindex = "0" >
< span class = "md-ellipsis" >
NZBGet
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_6_2_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_6_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" >
< span class = "md-ellipsis" >
Basic-Setup
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/NZBGet/Paths-and-Categories/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Path and Categories
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "/Downloaders/NZBGet/scripts/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Scripts
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_6_3" >
< label class = "md-nav__link" for = "__nav_6_3" id = "__nav_6_3_label" tabindex = "0" >
< span class = "md-ellipsis" >
SABnzbd
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_6_3_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_6_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" >
< span class = "md-ellipsis" >
Basic-Setup
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/SABnzbd/Paths-and-Categories/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Path and Categories
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "/Downloaders/SABnzbd/scripts/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Scripts
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_6_4" >
< label class = "md-nav__link" for = "__nav_6_4" id = "__nav_6_4_label" tabindex = "0" >
< span class = "md-ellipsis" >
qBittorrent
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_6_4_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_6_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" >
< span class = "md-ellipsis" >
Basic-Setup
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/Paths/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Paths
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/How-to-add-categories/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to add Categories
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/Port-forwarding/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Port forwarding
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/3rd-party-tools/" class = "md-nav__link" >
< span class = "md-ellipsis" >
3rd Party tools
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_6_4_6" >
< label class = "md-nav__link" for = "__nav_6_4_6" id = "__nav_6_4_6_label" tabindex = "0" >
< span class = "md-ellipsis" >
Tips
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "3" aria-labelledby = "__nav_6_4_6_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_6_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" >
< span class = "md-ellipsis" >
unRAID Mover and qBittorrent
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/qBittorrent/Tips/Themes/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Themes
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_6_5" >
< label class = "md-nav__link" for = "__nav_6_5" id = "__nav_6_5_label" tabindex = "0" >
< span class = "md-ellipsis" >
Deluge
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_6_5_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_6_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" >
< span class = "md-ellipsis" >
Installing
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/Deluge/Basic-Setup/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Basic-Setup
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/Deluge/Using-Labels/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Using Labels
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/Deluge/Port-Forwarding/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Port forwarding
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_6_5_5" >
< label class = "md-nav__link" for = "__nav_6_5_5" id = "__nav_6_5_5_label" tabindex = "0" >
< span class = "md-ellipsis" >
Tips
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "3" aria-labelledby = "__nav_6_5_5_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_6_5_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 = "../../../Downloaders/Deluge/Tips/Plugins/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Plugins
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/Deluge/Tips/Thin-Client/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Thin Client
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/Deluge/Tips/Unraid-Mover/" class = "md-nav__link" >
< span class = "md-ellipsis" >
unRAID Mover and Deluge
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_6_6" >
< label class = "md-nav__link" for = "__nav_6_6" id = "__nav_6_6_label" tabindex = "0" >
< span class = "md-ellipsis" >
ruTorrent
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_6_6_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_6_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" >
< span class = "md-ellipsis" >
ruTorrent Placeholder
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Downloaders/ruTorrent/ruTorrent-Basic-Setup/" class = "md-nav__link" >
< span class = "md-ellipsis" >
ruTorrent - Basic Setup
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_7" >
< label class = "md-nav__link" for = "__nav_7" id = "__nav_7_label" tabindex = "" >
< span class = "md-ellipsis" >
Plex
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_7_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_7" >
< 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" >
< span class = "md-ellipsis" >
Home
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_7_2" >
< label class = "md-nav__link" for = "__nav_7_2" id = "__nav_7_2_label" tabindex = "0" >
< span class = "md-ellipsis" >
Tips
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_7_2_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_7_2" >
< 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" >
< span class = "md-ellipsis" >
Suggested Plex Media Server Settings
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Plex/Tips/Optimal-plex-client-settings/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Optimal Plex Client Settings
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Plex/Tips/4k-transcoding/" class = "md-nav__link" >
< span class = "md-ellipsis" >
JBOPS 4K Transcode Stopping with Tautulli
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "/Plex/profiles/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Profiles
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_8" >
< label class = "md-nav__link" for = "__nav_8" id = "__nav_8_label" tabindex = "" >
< span class = "md-ellipsis" >
Guide Sync
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_8_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_8" >
< span class = "md-nav__icon md-icon" > < / span >
Guide Sync
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../../Guide-Sync/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Home
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_9" >
< label class = "md-nav__link" for = "__nav_9" id = "__nav_9_label" tabindex = "" >
< span class = "md-ellipsis" >
Misc
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_9_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_9" >
< 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" >
< span class = "md-ellipsis" >
Home
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Misc/how-to-provide-a-docker-compose/" class = "md-nav__link" >
< span class = "md-ellipsis" >
How to provide a docker compose
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Misc/How-to-setup-Torguard-for-port-forwarding/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Setup TorGuard for port forwarding
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../../Misc/x265-4k/" class = "md-nav__link" >
< span class = "md-ellipsis" >
x265-4k and Golden Rule
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_10" checked >
< label class = "md-nav__link" for = "__nav_10" id = "__nav_10_label" tabindex = "" >
< span class = "md-ellipsis" >
Hardlinks
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_10_label" aria-expanded = "true" >
< label class = "md-nav__title" for = "__nav_10" >
< 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" >
< span class = "md-ellipsis" >
Hardlinks - Atomic Moves
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--active md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_10_2" checked >
< label class = "md-nav__link" for = "__nav_10_2" id = "__nav_10_2_label" tabindex = "0" >
< span class = "md-ellipsis" >
How to setup for
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "2" aria-labelledby = "__nav_10_2_label" aria-expanded = "true" >
< label class = "md-nav__title" for = "__nav_10_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" >
< span class = "md-ellipsis" >
How to setup for
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../Docker/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Docker
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../Dockstarter/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Dockstarter
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../Native/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Native
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../Synology/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Synology
< / span >
< / a >
< / li >
< li class = "md-nav__item md-nav__item--active" >
< input class = "md-nav__toggle md-toggle" type = "checkbox" id = "__toc" >
< label class = "md-nav__link md-nav__link--active" for = "__toc" >
< span class = "md-ellipsis" >
TrueNAS Core
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< a href = "./" class = "md-nav__link md-nav__link--active" >
< span class = "md-ellipsis" >
TrueNAS Core
< / span >
< / 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 = "#create-the-main-dataset" class = "md-nav__link" >
< span class = "md-ellipsis" >
Create the main dataset
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#create-a-shared-group" class = "md-nav__link" >
< span class = "md-ellipsis" >
Create a shared group
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#create-your-users" class = "md-nav__link" >
< span class = "md-ellipsis" >
Create your user(s)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#dataset-permissions" class = "md-nav__link" >
< span class = "md-ellipsis" >
Dataset permissions
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#create-your-nfs-shares" class = "md-nav__link" >
< span class = "md-ellipsis" >
Create your NFS share(s)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#configure-and-enable-nfs-service" class = "md-nav__link" >
< span class = "md-ellipsis" >
Configure and enable NFS service
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#mount-your-shares" class = "md-nav__link" >
< span class = "md-ellipsis" >
Mount your shares
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#folder-structure" class = "md-nav__link" >
< span class = "md-ellipsis" >
Folder Structure
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "../Unraid/" class = "md-nav__link" >
< span class = "md-ellipsis" >
unRAID
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "../../Examples/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Examples
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Check-if-hardlinks-are-working/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Check if hardlinks are working
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../Replace-copies-with-hardlinks/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Replace copies with hardlinks
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = ".." class = "md-nav__link" >
< span class = "md-ellipsis" >
How-to-setup-for
< / span >
< / 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 = "#create-the-main-dataset" class = "md-nav__link" >
< span class = "md-ellipsis" >
Create the main dataset
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#create-a-shared-group" class = "md-nav__link" >
< span class = "md-ellipsis" >
Create a shared group
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#create-your-users" class = "md-nav__link" >
< span class = "md-ellipsis" >
Create your user(s)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#dataset-permissions" class = "md-nav__link" >
< span class = "md-ellipsis" >
Dataset permissions
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#create-your-nfs-shares" class = "md-nav__link" >
< span class = "md-ellipsis" >
Create your NFS share(s)
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#configure-and-enable-nfs-service" class = "md-nav__link" >
< span class = "md-ellipsis" >
Configure and enable NFS service
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#mount-your-shares" class = "md-nav__link" >
< span class = "md-ellipsis" >
Mount your shares
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#folder-structure" class = "md-nav__link" >
< span class = "md-ellipsis" >
Folder Structure
< / span >
< / a >
< / 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/Guides/edit/master/docs/Hardlinks/How-to-setup-for/TrueNAS-Core.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 = "M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4v-2m10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1 2.1 2.1Z" / > < / svg >
< / a >
< a href = "https://github.com/TRaSH-Guides/Guides/raw/master/docs/Hardlinks/How-to-setup-for/TrueNAS-Core.md" title = "View source of this page" class = "md-content__button md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.15 8.15 0 0 1-1.23-2Z" / > < / svg >
< / a >
< h1 id = "truenas-core" > TrueNAS Core< a class = "headerlink" href = "#truenas-core" title = "Permanent link" > < / a > < / h1 >
< div class = "admonition note" >
< p class = "admonition-title" > Note< / p >
< p > This guide is based on TrueNAS Core 13, a storage solution based on ZFS. While there are more similarities than differences between Core and Scale in terms of creating datasets, this guide explicitly covers dataset, share, and basic permission setup in order to provide a place for creating and accessing the recommended folder structure. This does not cover jails or other virtualization means on the TrueNAS Core platform.< / p >
< p > This guide assumes that you've already created a pool, which by default will contain a top-level dataset that was configured during the time of pool configuration. For the examples below, we'll be using a pool name of < code > tank< / code > . Encryption is recommended on the pool (TrueNAS uses ZFS Encryption with AES-256-GCM in TrueNAS Core 13), but not required. TrueNAS Core allows for granularity in encrypting individual datasets if you don't want to encrypt at the top-level dataset and have it be inherited down to the other datasets.< / p >
< p > TrueNAS Core defaults to < code > lz4< / code > encryption as the compression level when creating a pool. This is fine for most workloads, and can be safely inherited down to other datasets under the top-level dataset. < code > ztsd< / code > is currently the default in FreeBSD, however TrueNAS Core still defaults to < code > lz4< / code > . Given that media files are not very compressible by nature, the only benefit that compression provides in this case is to supplementary files such as < code > .srt< / code > , < code > .nfo< / code > , etc.< / p >
< p > Additionally, since SMB does not support hardlinks we will only be covering the creation and use of NFS shares.< / p >
< / div >
< hr / >
< h2 id = "create-the-main-dataset" > Create the main dataset< a class = "headerlink" href = "#create-the-main-dataset" title = "Permanent link" > < / a > < / h2 >
< div class = "admonition warning" >
< p class = "admonition-title" > Warning< / p >
< p > To get hardlinks and atomic moves working with ZFS you will need to make use of < u > < strong > ONE< / strong > < / u > dataset with subfolders. Note that this does not mean multiple datasets under the example top-level dataset < code > tank< / code > from this example.< / p >
< / div >
< p > For this example I'm using the dataset from my existing setup, < code > Media< / code > . The naming isn't important as host machine mappings can be manipulated as desired.< / p >
< p > Go to Storage -> Pools and click on ⋮ on the right side of your root dataset, then select < code > Add Dataset< / code > .< / p >
< p > < a class = "glightbox" href = "../images/truenas-create-dataset.png" data-type = "image" data-width = "100%" data-height = "auto" data-desc-position = "bottom" > < img alt = "truenas-dataset" src = "../images/truenas-create-dataset.png" / > < / a > < / p >
< p > On the next screen you'll fill out your basic dataset info, such as name and comments. I have a few things grayed out here as the dataset has already been configured, but in this example you would use < code > Media< / code > in the Name field and keep everything else at its default (< code > Inherit< / code > ) with the exception of < code > Enable Atime< / code > and < code > Record Size< / code > . Set < code > Enable Atime< / code > to < code > off< / code > and < code > Record Size< / code > to < code > 1M< / code > . This provides a performance increase on a dataset that will primarily be handling media files. Optionally, you can configure < code > Quota for this dataset< / code > if you want to limit what the dataset displays and will accept in terms of capacity when it's mounted (i.e. setting this to < code > 10 TiB< / code > will show 10T as the capacity when mounted).< / p >
< p > During share creation, there will be an option at the bottom for < code > Share Type< / code > . < code > Generic< / code > is the default, with < code > SMB< / code > as a selectable option. Since we'll be using NFS, select < code > Generic< / code > .< / p >
< p > Click < code > Submit< / code > (mine shows < code > Save< / code > since this is an existing dataset) once complete.< / p >
< p > < a class = "glightbox" href = "../images/truenas-dataset-options.png" data-type = "image" data-width = "100%" data-height = "auto" data-desc-position = "bottom" > < img alt = "truenas-dataset" src = "../images/truenas-dataset-options.png" / > < / a > < / p >
< hr / >
< h2 id = "create-a-shared-group" > Create a shared group< a class = "headerlink" href = "#create-a-shared-group" title = "Permanent link" > < / a > < / h2 >
< p > We'll need to create a shared group so that we can ensure proper access when mounting, and to avoid ending up with < code > nobody< / code > as the group name when mounting over NFS. This group should contain any of your user accounts that will be accessing the share (Starr apps, download clients, etc). It should also match the group and < code > GID< / code > on the host you plan to mount the share to, and run your apps on.< / p >
< p > Navigate to Accounts -> Groups, and click < code > Add< / code > at the top right.< / p >
< p > You'll arrive at a simple configuration screen like the one shown below. Set your < code > GID< / code > that you plan to use, and name the group. In this example I'm using a < code > GID< / code > of < code > 1215< / code > and a group name of < code > dockermedia< / code > . Since this group won't be used for anything other than share permissions, leave < code > Permit Sudo< / code > and < code > Samba Authentication< / code > unchecked. Click < code > Submit< / code > once complete.< / p >
< p > < a class = "glightbox" href = "../images/truenas-group-options.png" data-type = "image" data-width = "100%" data-height = "auto" data-desc-position = "bottom" > < img alt = "truenas-group" src = "../images/truenas-group-options.png" / > < / a > < / p >
< hr / >
< h2 id = "create-your-users" > Create your user(s)< a class = "headerlink" href = "#create-your-users" title = "Permanent link" > < / a > < / h2 >
< p > We'll need to create a user (or users if you're using individual user accounts per service) on TrueNAS that matches the user and UID of the user you'll be mounting your share with. It's important that these match since we're not using the < code > Mapall< / code > function that exist under the NFS Share options.< / p >
< p > Navigate to Accounts -> Users, and click < code > Add< / code > at the top right.< / p >
< p > You'll arrive at a configuration screen like the one shown below. Fill out < code > Full Name< / code > and < code > Username< / code > with the desired username, and set your < code > User ID< / code > that you plan to use.< / p >
< p > You'll need to uncheck < code > New Primary Group< / code > so you can manually populate < code > Primary Group< / code > with the shared group you created in the previous step. In this example I'm using a GID of < code > 1215< / code > and a < code > Primary Group< / code > name of < code > dockermedia< / code > . Leave < code > Home Directory< / code > as < code > /nonexistent< / code > , and set < code > Disable Password< / code > to < code > Yes< / code > . Uncheck < code > Samba Authentication< / code > and click < code > Submit< / code > once complete. < code > Home Directory Permissions< / code > aren't important as it's set to < code > /nonexistent< / code > , and we won't ever be accessing it.< / p >
< p > < a class = "glightbox" href = "../images/truenas-user-options.png" data-type = "image" data-width = "100%" data-height = "auto" data-desc-position = "bottom" > < img alt = "truenas-user" src = "../images/truenas-user-options.png" / > < / a > < / p >
< div class = "admonition note" >
< p class = "admonition-title" > Note< / p >
< p > If you're using a single, shared user and group setup (1000:1000 is the common one) you can leave New Primary Group checked. Assuming there's not a group that already exists with GID 1000 it will create that group automatically with the same name as the user.< / p >
< / div >
< hr / >
< h2 id = "dataset-permissions" > Dataset permissions< a class = "headerlink" href = "#dataset-permissions" title = "Permanent link" > < / a > < / h2 >
< p > Now that we have a user and a group, we can set the permissions on the dataset.< / p >
< p > Navigate to Storage -> Pools, and click ⋮ on the right side of your target dataset (< code > Media< / code > if you're following my example), then select < code > Edit Permissions< / code > .< / p >
< p > You'll arrive at a configuration screen like the one shown below. Under < code > Owner< / code > , fill out your < code > User< / code > and < code > Group< / code > information with your desired user and the shared group you plan to use for your apps. < code > User< / code > isn't super important here if you're using a NFS share and have < code > Group< / code > configured properly, but it would matter if you're doing a single-user share (i.e. if you wanted a single person to have their own dataset -> share to map).< / p >
< p > Check the boxes for < code > Apply User< / code > , < code > Apply Group< / code > , and < code > Apply Permissions Recursively< / code > (check < code > Confirm< / code > and click < code > Continue< / code > if you get a popup). Check the < code > Access Mode< / code > boxes as indicated in the image example and click < code > Save< / code > once complete.< / p >
< p > < a class = "glightbox" href = "../images/truenas-dataset-permissions.png" data-type = "image" data-width = "100%" data-height = "auto" data-desc-position = "bottom" > < img alt = "truenas-dataset-permissions" src = "../images/truenas-dataset-permissions.png" / > < / a > < / p >
< hr / >
< h2 id = "create-your-nfs-shares" > Create your NFS share(s)< a class = "headerlink" href = "#create-your-nfs-shares" title = "Permanent link" > < / a > < / h2 >
< p > Navigate to Sharing -> Unix Shares (NFS), and click < code > Add< / code > at the top right.< / p >
< p > Under < code > Paths< / code > you can either use the interactive browser by clicking < code > /mnt< / code > , or just enter the correct < code > Path< / code > . Following along with the previous examples, mine is < code > /mnt/tank/Media< / code > .< / p >
< p > Set a < code > Description< / code > if desired (recommended for tracking), and check < code > All dirs< / code > and < code > Enabled< / code > .< / p >
< p > Click < code > Advanced Options< / code > to show the rest of the options we need.< / p >
< p > Leave < code > Security< / code > alone as the defaults are fine.< / p >
< p > At the bottom, you have a couple of options. You can either specify < code > Authorized Networks< / code > for more broad access, or authorize specific hosts (my preferred method). Either way, make sure you use one of these options to ensure that whichever host is mounting the NFS share has access.< / p >
< p > Click < code > Submit< / code > once complete.< / p >
< p > < a class = "glightbox" href = "../images/truenas-nfs-share-options.png" data-type = "image" data-width = "100%" data-height = "auto" data-desc-position = "bottom" > < img alt = "truenas-nfs-share-options" src = "../images/truenas-nfs-share-options.png" / > < / a > < / p >
< hr / >
< h2 id = "configure-and-enable-nfs-service" > Configure and enable NFS service< a class = "headerlink" href = "#configure-and-enable-nfs-service" title = "Permanent link" > < / a > < / h2 >
< p > Navigate to Services and click the edit icon under < code > Actions< / code > on the < code > NFS< / code > row.< / p >
< p > Enabling < code > NFSv4< / code > is optional. If you wish to do so you will need to ensure that your NAS and host are on the same domain (verify with < code > hostname -d< / code > ), otherwise you'll run into permission issues (indicated by < code > nobody:4294967294< / code > when checking files). Alternatively, enable < code > NFSv3 ownership model for NFSv4< / code > to avoid the domain requirements. Make sure to check < code > Allow non-root mount< / code > under < code > Other Options< / code > .< / p >
< p > One of the most important options here is the < code > Number of servers< / code > setting. If you click on the help icon you'll see the help text for this setting, which indicates that you should keep this less than or equal to the number of CPUs reported by < code > sysctl -n kern.smp.cpus< / code > to limit CPU context switching.< / p >
< p > Any other options are mostly up to your environment and you should consult standard TrueNAS support paths for assistance.< / p >
< p > Click < code > Save< / code > once complete.< / p >
< p > Make sure to check < code > Start Automatically< / code > and click the slider under < code > Running< / code > to make sure the service is running correctly and starts at boot.< / p >
< p > < a class = "glightbox" href = "../images/truenas-nfs-service-options.png" data-type = "image" data-width = "100%" data-height = "auto" data-desc-position = "bottom" > < img alt = "truenas-nfs-service-options" src = "../images/truenas-nfs-service-options.png" / > < / a > < / p >
< hr / >
< h2 id = "mount-your-shares" > Mount your shares< a class = "headerlink" href = "#mount-your-shares" title = "Permanent link" > < / a > < / h2 >
< p > Follow standard mounting procedures for your operating system/device. In Ubuntu mounting a NFS share is as simple as adding it to < code > /etc/fstab< / code > with < code > < host> :/mnt/tank/Media /mnt/data nfs defaults,_netdev,rw 0 0< / code > , and issuing < code > mount -a< / code > (or rebooting).< / p >
< p > Regardless of method, make sure that the device ends up with a < code > data< / code > mount point. The mount point is important since it will allow us to follow the usual guide for folder structure. If you've followed the guide, from a NFS share standpoint the owner and group of the < code > /mnt/data< / code > directory will be the user and group that were previously configured in the Dataset Permissions section. If this is improperly configured you can end up with < code > nobody< / code > as the owner or group, or have permission errors.< / p >
< hr / >
< h2 id = "folder-structure" > Folder Structure< a class = "headerlink" href = "#folder-structure" title = "Permanent link" > < / a > < / h2 >
< p > Now that you have a < code > data< / code > folder, you can follow the normal folder structure recommendations, such as the one below.< / p >
<!-- BEGIN INCLUDE ../../../includes/hardlinks/docker - tree - full.md -->
< div class = "highlight" > < pre > < span > < / span > < code > data
├── torrents
│ ├── books
│ ├── movies
│ ├── music
│ └── tv
├── usenet
│ ├── incomplete
│ └── complete
│ ├── books
│ ├── movies
│ ├── music
│ └── tv
└── media
├── books
├── movies
├── music
└── tv
< / code > < / pre > < / div >
<!-- END INCLUDE -->
< p > These subfolders you need to create yourself using your preferred method. Set your permissions accordingly as well. If you use ACLs on the datasets you can replicate the usual 775/664 (UMASK 002) or 755/644 (UMASK 022) recommendation, but this guide only covers the use of basic permissions for mounting and expects the end user to fine-tune permissions via chmod, chown, and uid/gid/umask settings on the applications that will be utilizing the share.< / p >
<!-- BEGIN INCLUDE ../../../includes/support.md -->
< hr / >
< div class = "admonition question" >
< 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" class = "off-glb" src = "https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord" / > < / a > < / p >
< / div >
<!-- END INCLUDE -->
<!-- - - 8< - - "includes/support.md" -->
< aside class = "md-source-file" >
< span class = "md-source-file__fact" >
< span class = "md-icon" title = "Last update" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z" / > < / svg >
< / span >
< span class = "git-revision-date-localized-plugin git-revision-date-localized-plugin-datetime" > September 14, 2023 05:34:55< / span >
< / span >
< / aside >
< 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 >
< script > var target = document . getElementById ( location . hash . slice ( 1 ) ) ; target && target . name && ( target . checked = target . name . startsWith ( "__tabbed_" ) ) < / script >
< / div >
< button type = "button" 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
< / button >
< / main >
< footer class = "md-footer" >
< 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.5.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 2023 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/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.5.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 2023 Fonticons, Inc. --> < path d = "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V96zM265.8 407.7c0-1.8 0-6 .1-11.6.1-11.4.1-28.8.1-43.7 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.6s-28.4 1.9-41.6 5.6c0 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 9 .1 21.7.1 30.6 0 4.8.1 8.6.1 10 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.3-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.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 3-1.9.4-3.7-.4-3.9-1.7zm-9.1 3.2c-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.4 0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-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.1-.9 1.1-2.8.9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9 1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1-.9.6-2.6 0-3.7-1.5zm-6.3-8.8c-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.5-.9.9-2.4.4-3.5-.6zm-6-6.4c-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.6-.4.9-1.7 1.1-2.8.4z" / > < / 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" , "content.code.copy" , "content.action.edit" , "content.action.view" ] , "search" : "../../../assets/javascripts/workers/search.f886a092.min.js" , "translations" : { "clipboard.copied" : "Copied to clipboard" , "clipboard.copy" : "Copy to clipboard" , "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" : "Select version" } } < / script >
< script src = "../../../assets/javascripts/bundle.d7c377c4.min.js" > < / script >
< script > document $ . subscribe ( ( ) => { const lightbox = GLightbox ( { "touchNavigation" : true , "loop" : false , "zoomable" : true , "draggable" : true , "openEffect" : "zoom" , "closeEffect" : "zoom" , "slideEffect" : "slide" } ) ; } ) < / script > < / body >
< / html >