You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
TRaSH-Guides/Hardlinks/How-to-setup-for/Synology/index.html

4219 lines
108 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!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/Synology/">
<link rel="prev" href="../Native/">
<link rel="next" href="../TrueNAS-Core/">
<link rel="icon" href="../../../img/favicon.png">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.18">
<title>Synology - TRaSH Guides</title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.66ac8b77.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="#synology" 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">
Synology
</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.2 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 2024 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.2 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 2024 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--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="0">
<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--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="0">
<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">
Tips
</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>
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--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="0">
<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--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="0">
<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--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="0">
<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--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="0">
<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">
<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/what-does-my-media-player-support/" class="md-nav__link">
<span class="md-ellipsis">
What does my media player support
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/Plex/Tips/4k-transcoding/" class="md-nav__link">
<span class="md-ellipsis">
Stop 4k Video Transcoding
</span>
</a>
</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--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="0">
<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--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="0">
<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 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">
Synology
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Synology
</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="#introduction" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#summary" class="md-nav__link">
<span class="md-ellipsis">
Summary
</span>
</a>
<nav class="md-nav" aria-label="Summary">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#automated-script" class="md-nav__link">
<span class="md-ellipsis">
Automated Script
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#install-docker" class="md-nav__link">
<span class="md-ellipsis">
Install Docker
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#create-the-main-share" class="md-nav__link">
<span class="md-ellipsis">
Create the main share
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#create-a-user" class="md-nav__link">
<span class="md-ellipsis">
Create a user
</span>
</a>
<nav class="md-nav" aria-label="Create a user">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#assign-shared-folder-permissions" class="md-nav__link">
<span class="md-ellipsis">
Assign shared folder permissions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#assign-application-permissions" class="md-nav__link">
<span class="md-ellipsis">
Assign application permissions
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#ssh" class="md-nav__link">
<span class="md-ellipsis">
SSH
</span>
</a>
<nav class="md-nav" aria-label="SSH">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#puid-and-pgid" class="md-nav__link">
<span class="md-ellipsis">
PUID and PGID
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#create-folder-structure" class="md-nav__link">
<span class="md-ellipsis">
Create Folder Structure
</span>
</a>
<nav class="md-nav" aria-label="Create Folder Structure">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#bad-path-suggestion" class="md-nav__link">
<span class="md-ellipsis">
Bad path suggestion
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#if-you-use-usenet" class="md-nav__link">
<span class="md-ellipsis">
If you use usenet
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#if-you-use-torrents" class="md-nav__link">
<span class="md-ellipsis">
If you use torrents
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#appdata" class="md-nav__link">
<span class="md-ellipsis">
Appdata
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#needed-files" class="md-nav__link">
<span class="md-ellipsis">
Needed files
</span>
</a>
<nav class="md-nav" aria-label="Needed files">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#whats-included-in-the-compose-and-what-is-not-included" class="md-nav__link">
<span class="md-ellipsis">
What's included in the compose and what is not included
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#changes-and-preparations" class="md-nav__link">
<span class="md-ellipsis">
Changes and preparations
</span>
</a>
<nav class="md-nav" aria-label="Changes and preparations">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#pullio-auto-update-docker-compose-the-correct-way" class="md-nav__link">
<span class="md-ellipsis">
Pullio - Auto update docker-compose the correct way
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#permissions" class="md-nav__link">
<span class="md-ellipsis">
Permissions
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#run-the-docker-compose" class="md-nav__link">
<span class="md-ellipsis">
Run the Docker Compose
</span>
</a>
<nav class="md-nav" aria-label="Run the Docker Compose">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docker-compose-commands" class="md-nav__link">
<span class="md-ellipsis">
Docker-Compose Commands
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#additional-synology-info" class="md-nav__link">
<span class="md-ellipsis">
Additional Synology Info
</span>
</a>
<nav class="md-nav" aria-label="Additional Synology Info">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#dsm-task-for-correctly-reporting-ip-in-plexnginxetc" class="md-nav__link">
<span class="md-ellipsis">
DSM Task for correctly reporting IP in Plex/Nginx/Etc
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../TrueNAS-Core/" class="md-nav__link">
<span class="md-ellipsis">
TrueNAS Core
</span>
</a>
</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="#introduction" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#summary" class="md-nav__link">
<span class="md-ellipsis">
Summary
</span>
</a>
<nav class="md-nav" aria-label="Summary">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#automated-script" class="md-nav__link">
<span class="md-ellipsis">
Automated Script
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#install-docker" class="md-nav__link">
<span class="md-ellipsis">
Install Docker
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#create-the-main-share" class="md-nav__link">
<span class="md-ellipsis">
Create the main share
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#create-a-user" class="md-nav__link">
<span class="md-ellipsis">
Create a user
</span>
</a>
<nav class="md-nav" aria-label="Create a user">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#assign-shared-folder-permissions" class="md-nav__link">
<span class="md-ellipsis">
Assign shared folder permissions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#assign-application-permissions" class="md-nav__link">
<span class="md-ellipsis">
Assign application permissions
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#ssh" class="md-nav__link">
<span class="md-ellipsis">
SSH
</span>
</a>
<nav class="md-nav" aria-label="SSH">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#puid-and-pgid" class="md-nav__link">
<span class="md-ellipsis">
PUID and PGID
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#create-folder-structure" class="md-nav__link">
<span class="md-ellipsis">
Create Folder Structure
</span>
</a>
<nav class="md-nav" aria-label="Create Folder Structure">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#bad-path-suggestion" class="md-nav__link">
<span class="md-ellipsis">
Bad path suggestion
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#if-you-use-usenet" class="md-nav__link">
<span class="md-ellipsis">
If you use usenet
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#if-you-use-torrents" class="md-nav__link">
<span class="md-ellipsis">
If you use torrents
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#appdata" class="md-nav__link">
<span class="md-ellipsis">
Appdata
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#needed-files" class="md-nav__link">
<span class="md-ellipsis">
Needed files
</span>
</a>
<nav class="md-nav" aria-label="Needed files">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#whats-included-in-the-compose-and-what-is-not-included" class="md-nav__link">
<span class="md-ellipsis">
What's included in the compose and what is not included
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#changes-and-preparations" class="md-nav__link">
<span class="md-ellipsis">
Changes and preparations
</span>
</a>
<nav class="md-nav" aria-label="Changes and preparations">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#pullio-auto-update-docker-compose-the-correct-way" class="md-nav__link">
<span class="md-ellipsis">
Pullio - Auto update docker-compose the correct way
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#permissions" class="md-nav__link">
<span class="md-ellipsis">
Permissions
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#run-the-docker-compose" class="md-nav__link">
<span class="md-ellipsis">
Run the Docker Compose
</span>
</a>
<nav class="md-nav" aria-label="Run the Docker Compose">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docker-compose-commands" class="md-nav__link">
<span class="md-ellipsis">
Docker-Compose Commands
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#additional-synology-info" class="md-nav__link">
<span class="md-ellipsis">
Additional Synology Info
</span>
</a>
<nav class="md-nav" aria-label="Additional Synology Info">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#dsm-task-for-correctly-reporting-ip-in-plexnginxetc" class="md-nav__link">
<span class="md-ellipsis">
DSM Task for correctly reporting IP in Plex/Nginx/Etc
</span>
</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/Guides/edit/master/docs/Hardlinks/How-to-setup-for/Synology.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/Synology.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="synology">Synology<a class="headerlink" href="#synology" title="Permanent link"></a></h1>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Being I don't have a Synology myself and I kind of hate the Synology GUI for the dockers, I'm doing this with the use of docker-compose through a terminal.</p>
<p>This is faster than the GUI and after installing, it shows up in the Docker GUI.</p>
<p>Thanks to faxity for the initial compose that I used to create the Synology Guide.</p>
<p>And a very big thanks to <a href="https://www.buymeacoffee.com/bokkoman" rel="noopener noreferrer" target="_blank">Bokkoman</a> and <a href="https://github.com/BaukeZwart" rel="noopener noreferrer" target="_blank">BZwart</a> that updated this Guide for DSM 7 and also offered their help on discord as Synology Support Team.</p>
</div>
<h2 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permanent link"></a></h2>
<p>This page will provide you with guidance on how to install several Docker images related to the Servarr apps to your Synology. We highly recommend to read the full guide, that way you have a better understanding of what you do, in case you later decide to make changes.</p>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link"></a></h2>
<ol>
<li>We will create <strong><em>one</em></strong> share that will hold all your data. This ensures hardlinking and/or instant moves are possible.</li>
<li>Create one user which will be assigned to the docker images as the user they run as out of security reasons.</li>
<li>Create a folder structure on the <code>data</code> and <code>docker</code> share with a few commands (or manually).</li>
<li>Download and edit the <code>docker-compose.yml</code> and <code>.env</code> files to your system settings.</li>
<li>Set permissions to all folders related in the shares.</li>
<li>Run and execute docker commands to start the containers.</li>
</ol>
<h3 id="automated-script">Automated Script<a class="headerlink" href="#automated-script" title="Permanent link"></a></h3>
<details class="example">
<summary>Automated script (<strong><img alt="‼" class="twemoji" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@15.0.3/assets/svg/203c.svg" title=":bangbang:" />Use this script at your own risk<img alt="‼" class="twemoji" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@15.0.3/assets/svg/203c.svg" title=":bangbang:" /></strong>) - [Click to show/hide]</summary>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Though, we offer a short way out. This is intended as a quick way to do everything that is written on this page within one script. And is only for initial setup. After that, you need to manage it yourself. Rerunning the script can or will reset all personal changes made in the compose/env.</p>
<p>The script is only tested on Synology DSM7 and higher.</p>
<p><strong><img alt="‼" class="twemoji" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@15.0.3/assets/svg/203c.svg" title=":bangbang:" /> We are not held reliable if anything breaks on your system. Use at your own risk <img alt="‼" class="twemoji" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@15.0.3/assets/svg/203c.svg" title=":bangbang:" /></strong></p>
</div>
<p>To get this working you will need to enable terminal access (SSH) and home folders.</p>
<p>Be sure to delete current running Docker containers related to this guide (ie. *arr apps, download clients), backup settings before you do.</p>
<p>To enable SSH on your Synology take a look <a href="#ssh" rel="noopener noreferrer" target="_blank">HERE</a>.</p>
<p>To enable Home folders, go to <code>Control Panel</code> &gt; <code>User &amp; Group</code> &gt; <code>Advanced</code> &gt; <code>Enable user home service</code> at the bottom.</p>
<p><a class="glightbox" href="../images/home-folders.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="!home-folders" src="../images/home-folders.png" /></a></p>
<p>When you enabled these two settings, run the following commands in your favorite terminal app and follow the onscreen questions.</p>
<div class="highlight"><pre><span></span><code>curl<span class="w"> </span>-sL<span class="w"> </span>git.io/syno-script<span class="w"> </span>&gt;<span class="w"> </span>~/syno-script
</code></pre></div>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>bash<span class="w"> </span>~/syno-script
</code></pre></div>
</details>
<h2 id="install-docker">Install Docker<a class="headerlink" href="#install-docker" title="Permanent link"></a></h2>
<p>You need to install Docker / Container Manager from the <code>Package Center</code>. This should also create a share named <code>docker</code>, check File Station if it is present.</p>
<h2 id="create-the-main-share">Create the main share<a class="headerlink" href="#create-the-main-share" title="Permanent link"></a></h2>
<p>We will create and use a new share named <code>data</code> (lowercase) for all your library media and downloads.</p>
<p>To create a new share:</p>
<p><code>Control Panel</code> &gt; <code>Shared Folder</code> &gt; click <code>Create</code> &gt; choose <code>Create Shared Folder</code></p>
<p><a class="glightbox" href="../images/create_share.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="!create_share" src="../images/create_share.png" /></a></p>
<p>Name this shared folder <code>data</code>. You can disable the trash can, up to you. Click next until you are done.</p>
<h2 id="create-a-user">Create a user<a class="headerlink" href="#create-a-user" title="Permanent link"></a></h2>
<p>We are going to create a new user that only has access to the share(s) that we use for the containers to run as. You rather not have the containers run as an admin/root user.</p>
<p>Go to <code>Control Panel</code> &gt; <code>User &amp; Group</code></p>
<p>In the <code>User</code> section, create a new user. Name it whatever you like, but for this guide we will use the name <code>docker</code>.</p>
<p><a class="glightbox" href="../images/adduser.PNG" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="!adduser" src="../images/adduser.PNG" /></a></p>
<p>Fill out the rest of the information, generate a password or type your own.</p>
<p>Click next, you will now be able to select which group this user will belong to, it should only be the group <code>users</code>. Click <code>Next</code>.</p>
<h3 id="assign-shared-folder-permissions">Assign shared folder permissions<a class="headerlink" href="#assign-shared-folder-permissions" title="Permanent link"></a></h3>
<p>In the next screen you will be able to select which Shares this user will have access to, click <code>No Access</code> on the top, this will deny all access.</p>
<p>Now <strong>only</strong> select <code>Read/Write</code> on the shares <code>docker</code> and <code>data</code> (the share we created earlier).</p>
<p><a class="glightbox" href="../images/adduser_2.PNG" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="!Assign shared folders permissions" src="../images/adduser_2.PNG" /></a></p>
<p>Click <code>Next</code> until you reach <code>Assign application permissions</code></p>
<h3 id="assign-application-permissions">Assign application permissions<a class="headerlink" href="#assign-application-permissions" title="Permanent link"></a></h3>
<p>In this screen you will be able to select which application this user will have access to. Check <code>Deny</code> for all applications.</p>
<p><a class="glightbox" href="../images/adduser_3.PNG" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="!Assign application permissions" src="../images/adduser_3.PNG" /></a></p>
<p>Continue to click <code>Next</code> until you are finished.</p>
<h2 id="ssh">SSH<a class="headerlink" href="#ssh" title="Permanent link"></a></h2>
<p>You are mostly going to use the terminal. Some parts will need the Synology web GUI.
To enable terminal access, you need to enable SSH in the Synology Settings.</p>
<p><code>Control Panel</code> &gt; <code>Terminal &amp; SNMP</code> &gt; <code>Enable SSH service</code></p>
<p><a class="glightbox" href="../images/synology-ssh.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="!synology-control-panel" src="../images/synology-ssh.png" /></a></p>
<p>Then use a program like <a href="https://www.putty.org/" rel="noopener noreferrer" target="_blank">Putty</a> or Powershell/Terminal to SSH into your Synology.</p>
<p>Enter the login information of a Synology user account that has admin priveliges, as only members of the 'administrators' user group are able to use SSH.</p>
<p>If you get a message asking if you want to trust the key, just press <code>OK</code> or <code>ACCEPT</code>.</p>
<h3 id="puid-and-pgid">PUID and PGID<a class="headerlink" href="#puid-and-pgid" title="Permanent link"></a></h3>
<p>In order for the Docker container to access the shares on the Synology, we need to know the user ID (PUID) and group ID (PGID) from the <code>docker</code> user we just created.</p>
<p>Once logged in to the terminal type <code>id docker</code>. If you used a different username, change <code>docker</code> to the one you used.</p>
<p><a class="glightbox" href="../images/synology-id.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="!synology-id" src="../images/synology-id.png" /></a></p>
<p>This will show you the UID (aka PUID).
Which in the screenshot above is <code>1035</code> for the docker user and the GID (aka PGID) which is <code>100</code> for the users group.
Save these values for later use.</p>
<h2 id="create-folder-structure">Create Folder Structure<a class="headerlink" href="#create-folder-structure" title="Permanent link"></a></h2>
<p>Let's create a good folder structure on the shares we use (<code>docker</code> and <code>data</code>). This will be done with a few commands.</p>
<p>The structure will look like this. You can of course edit this, but do this when you know what you are doing.
<em>We are using lowercases on all folders on purpose, being Linux is case sensitive.</em></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 -->
<!-- BEGIN INCLUDE ../../../includes/hardlinks/bad-path-suggestion.md -->
<h3 id="bad-path-suggestion">Bad path suggestion<a class="headerlink" href="#bad-path-suggestion" title="Permanent link"></a></h3>
<div class="admonition warning">
<p class="admonition-title">The default path setup suggested by some docker developers that encourages people to use mounts like <code>/movies</code>, <code>/tv</code>, <code>/books</code> or <code>/downloads</code> is very suboptimal and it makes them look like two or three file systems, even if they arent (<em>Because of how Dockers 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>
<!-- END INCLUDE -->
<!-- --8<-- "includes/hardlinks/bad-path-suggestion.md" -->
<p>To create the folder structure for your media library and also for your preferred download client, run one or both of the following commands:</p>
<h3 id="if-you-use-usenet">If you use usenet<a class="headerlink" href="#if-you-use-usenet" title="Permanent link"></a></h3>
<div class="highlight"><pre><span></span><code>mkdir<span class="w"> </span>-p<span class="w"> </span>/volume1/data/<span class="o">{</span>usenet/<span class="o">{</span>incomplete,complete<span class="o">}</span>/<span class="o">{</span>tv,movies,music<span class="o">}</span>,media/<span class="o">{</span>tv,movies,music<span class="o">}}</span>
</code></pre></div>
<h3 id="if-you-use-torrents">If you use torrents<a class="headerlink" href="#if-you-use-torrents" title="Permanent link"></a></h3>
<div class="highlight"><pre><span></span><code>mkdir<span class="w"> </span>-p<span class="w"> </span>/volume1/data/<span class="o">{</span>torrents/<span class="o">{</span>tv,movies,music<span class="o">}</span>,media/<span class="o">{</span>tv,movies,music<span class="o">}}</span>
</code></pre></div>
<hr />
<h3 id="appdata">Appdata<a class="headerlink" href="#appdata" title="Permanent link"></a></h3>
<p>Your application data will be stored in the <code>docker</code> share in the folder called <code>appdata</code> (<code>/volume1/docker/appdata</code>)
Create these folders with command below, or create them in File Station manually.</p>
<div class="highlight"><pre><span></span><code>mkdir<span class="w"> </span>-p<span class="w"> </span>/volume1/docker/appdata/<span class="o">{</span>radarr,sonarr,bazarr,plex,prowlarr,pullio<span class="o">}</span>
</code></pre></div>
<p>You can add your own subfolders for your download client(s) using the command above, by adding the name to the command.</p>
<p>So your appdata folder will look like this.</p>
<div class="highlight"><pre><span></span><code><span class="n">docker</span>
<span class="err">└──</span><span class="w"> </span><span class="n">appdata</span>
<span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="n">radarr</span>
<span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="n">sonarr</span>
<span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="n">bazarr</span>
<span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="n">plex</span>
<span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="n">prowlarr</span>
<span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="n">pullio</span>
<span class="w"> </span><span class="err">├──</span><span class="w"> </span><span class="p">(</span><span class="n">your</span><span class="w"> </span><span class="n">download</span><span class="w"> </span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="o">.</span><span class="n">e</span><span class="o">.</span><span class="w"> </span><span class="n">nzbget</span><span class="p">;</span><span class="w"> </span><span class="n">sabnzbd</span><span class="p">;</span><span class="w"> </span><span class="n">qbittorrent</span><span class="p">)</span>
<span class="w"> </span><span class="err">└──</span><span class="w"> </span><span class="p">(</span><span class="n">other</span><span class="w"> </span><span class="n">applications</span><span class="p">)</span>
</code></pre></div>
<hr />
<h2 id="needed-files">Needed files<a class="headerlink" href="#needed-files" title="Permanent link"></a></h2>
<p>Now we are ready to move to the installation of containers.</p>
<p>For this, we need two files:</p>
<ol>
<li><code>docker-compose.yml</code></li>
<li><code>.env</code></li>
</ol>
<p>We will start with downloading the <code>docker-compose.yml</code> file</p>
<p>Download this <a href="https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml" rel="noopener noreferrer" target="_blank">docker-compose.yml</a> to your <code>/volume1/docker/appdata</code> location so you got your important stuff together. Or use the command below:</p>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml<span class="w"> </span>-P<span class="w"> </span>/volume1/docker/appdata/
</code></pre></div>
<h3 id="whats-included-in-the-compose-and-what-is-not-included">What's included in the compose and what is not included<a class="headerlink" href="#whats-included-in-the-compose-and-what-is-not-included" title="Permanent link"></a></h3>
<p>This docker-compose file will have the following docker containers included.</p>
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">Radarr</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">Sonarr</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">Bazarr</span><span class="w"> </span><span class="p">(</span><span class="n">Subtitle</span><span class="w"> </span><span class="n">searcher</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">downloader</span><span class="p">)</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">Plex</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">Prowlarr</span><span class="w"> </span><span class="p">(</span><span class="n">indexer</span><span class="o">/</span><span class="n">tracker</span><span class="w"> </span><span class="n">manager</span><span class="p">)</span>
</code></pre></div>
<p>What's not included (and where are the download clients?).</p>
<p>We didn't add a download client to it, because it depends on what you prefer (usenet/torrent) and which client you prefer. We have a repository <a href="https://github.com/TRaSH-/Guides-Synology-Templates/tree/main/templates" rel="noopener noreferrer" target="_blank">Repository</a> on Github where we provide and maintain some templates that are ready to use with the main <code>docker-compose.yml</code>.</p>
<p>The only thing you need to do is copy &amp; paste what's inside the template file into to the main <code>docker-compose.yml</code> on the bottom, the templates also have a command what you need to use to create the <a href="#appdata">appdata</a> folder that we explained earlier. Without the appdata folder for the application, the creation of the container will fail because of the missing folder.</p>
<p>Second we will download the <code>.env</code> file</p>
<p>Download this <a href="https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env" rel="noopener noreferrer" target="_blank">.env</a> to your <code>/volume1/docker/appdata</code> location next to the <code>docker-compose.yml</code>. Or use this command:</p>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env<span class="w"> </span>-P<span class="w"> </span>/volume1/docker/appdata/
</code></pre></div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p><img alt="‼" class="twemoji" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@15.0.3/assets/svg/203c.svg" title=":bangbang:" /> MAKE SURE THE FILE KEEPS THE ORIGINAL NAME <code>.env</code> WITH THE DOT BEFORE IT <img alt="‼" class="twemoji" src="https://cdn.jsdelivr.net/gh/jdecked/twemoji@15.0.3/assets/svg/203c.svg" title=":bangbang:" /></p>
</div>
<hr />
<h3 id="changes-and-preparations">Changes and preparations<a class="headerlink" href="#changes-and-preparations" title="Permanent link"></a></h3>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>If you need to edit docker-compose.yml or the .env file we advise to use <a href="https://notepad-plus-plus.org/" rel="noopener noreferrer" target="_blank">Notepad++</a> or <a href="https://code.visualstudio.com/" rel="noopener noreferrer" target="_blank">Visual Studio Code</a></p>
</div>
<p>The <code>.env</code> file we downloaded holds the variables/information you need to change in order for everything to work. I added explanations in the <code>.env</code> file.</p>
<ol>
<li>DOCKERCONFDIR (only change this if you know what you're doing and decide to use another path than this guide used)</li>
<li>DOCKERDATADIR (only change this if you know what you're doing and decide to use another path than this guide used)</li>
<li>PUID/PGID (this info you got earlier from <a href="#puid-and-pgid">HERE</a>)</li>
<li>TZ (Change to your timezone, can be found <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones" rel="noopener noreferrer" target="_blank">HERE</a>)</li>
<li>Install and Create a task scheduler for Pullio, so your containers stay up to date.</li>
</ol>
<div class="admonition info">
<p>The <code>.env</code> holds more variables/information for other containers you don't need to remove those variables and will be only used when you install the other containers.</p>
</div>
<hr />
<h4 id="pullio-auto-update-docker-compose-the-correct-way">Pullio - Auto update docker-compose the correct way<a class="headerlink" href="#pullio-auto-update-docker-compose-the-correct-way" title="Permanent link"></a></h4>
<p>Pullio allows you to automatically update your containers. And send you a notification through various means. We use a Discord Webhook.</p>
<p>First you need to download Pullio</p>
<div class="highlight"><pre><span></span><code><span class="w"> </span>sudo<span class="w"> </span>curl<span class="w"> </span>-fsSL<span class="w"> </span><span class="s2">&quot;https://raw.githubusercontent.com/hotio/pullio/master/pullio.sh&quot;</span><span class="w"> </span>-o<span class="w"> </span>/usr/local/bin/pullio
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="w"> </span>sudo<span class="w"> </span>chmod<span class="w"> </span>+x<span class="w"> </span>/usr/local/bin/pullio
</code></pre></div>
<p>For Pullio to do it's job, you will need to create a Scheduled Task in your Task Scheduler that runs for example at 4am at night with <strong>root</strong> privileges.</p>
<p><code>Control Panel</code> &gt; <code>Task Scheduler</code> &gt; click <code>Create</code> &gt; choose <code>Scheduled task - user defined script</code></p>
<p>Give the task a name so you know what it does. Choose user <code>root</code>.</p>
<p>In the <code>Schedule</code> tab choose when and how often you want it to check for updates.</p>
<p>At <code>Task Settings</code> tab, add the following line in the Run Command section:</p>
<div class="highlight"><pre><span></span><code>/usr/local/bin/pullio<span class="w"> </span>&gt;<span class="w"> </span>/volume1/docker/appdata/pullio/pullio.log<span class="w"> </span><span class="m">2</span>&gt;<span class="p">&amp;</span><span class="m">1</span>
</code></pre></div>
<p>It can be frustrating to test the script if no docker image updates are available, for that you can run command <code>sudo pullio --debug</code> and the script will behave as if an update is available. If you have set to receive notifications, you should receive them.</p>
<p>More info about Pullio <a href="https://hotio.dev/scripts/pullio/" rel="noopener noreferrer" target="_blank">HERE</a></p>
<hr />
<h3 id="permissions">Permissions<a class="headerlink" href="#permissions" title="Permanent link"></a></h3>
<p>Now we need to make sure that the newly created files and folders have the correct permissions.</p>
<p>If you have an existing library, it is advised to move these to the new <code>data</code> share prior to running the commands below.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you're using a different user than <code>docker</code> (the user generated in the beginning), then you need to change the <code>docker:users</code> part in the command below!!!</p>
</div>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>chown<span class="w"> </span>-R<span class="w"> </span>docker:users<span class="w"> </span>/volume1/data<span class="w"> </span>/volume1/docker
</code></pre></div>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>chmod<span class="w"> </span>-R<span class="w"> </span><span class="nv">a</span><span class="o">=</span>,a+rX,u+w,g+w<span class="w"> </span>/volume1/data<span class="w"> </span>/volume1/docker
</code></pre></div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you move files from a different library into the newly created library afterwards, you need to rerun these commands. !!!</p>
</div>
<hr />
<h2 id="run-the-docker-compose">Run the Docker Compose<a class="headerlink" href="#run-the-docker-compose" title="Permanent link"></a></h2>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>make sure you delete/remove all your existing dockers from the Docker GUI and also remove your native installs (in Package Center) of these applications !!!
If you had previous installed apps, make a backup of their config folders or backup through the webui of the app.</p>
</div>
<p>If you have followed all the steps and your compose file is ready, run the following commands:</p>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>/volume1/docker/appdata
</code></pre></div>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>docker-compose<span class="w"> </span>up<span class="w"> </span>-d
</code></pre></div>
<p>You will notice that all the images will be downloaded, after that the containers will be started. If you get a error then read what error says and try to fix it (missing folders, permissions errors, etc). If you can't figure out the solution to your errors, join the guides-discord <a href="https://trash-guides.info/discord" rel="noopener noreferrer" target="_blank">here</a> and create a support ticket.</p>
<hr />
<p><strong>If you need help setting up the applications, look at the <a href="/Hardlinks/Examples/">Examples</a> how to setup the paths inside your applications.</strong></p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>If you need to do any changes, only edit the <code>docker-compose.yml</code> file. To activate the changes, <a href="#run-the-docker-compose">run the commands from here</a>) again.</p>
<p>Any changes you do/did in the GUI will be reverted when you run the docker-compose command.</p>
<p>Just don't use the GUI, only for information purposes !!!</p>
</div>
<!-- BEGIN INCLUDE ../../../includes/hardlinks/docker-compose-commands.md -->
<h3 id="docker-compose-commands">Docker-Compose Commands<a class="headerlink" href="#docker-compose-commands" title="Permanent link"></a></h3>
<details class="tip">
<summary>docker-compose commands - [Click to show/hide]</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, doesnt 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>
<!-- END INCLUDE -->
<!-- --8<-- "includes/hardlinks/docker-compose-commands.md" -->
<!-- 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&amp;color=4051B5&amp;logo=discord" /></a></p>
</div>
<!-- END INCLUDE -->
<!-- --8<-- "includes/support.md" -->
<hr />
<h2 id="additional-synology-info">Additional Synology Info<a class="headerlink" href="#additional-synology-info" title="Permanent link"></a></h2>
<h3 id="dsm-task-for-correctly-reporting-ip-in-plexnginxetc">DSM Task for correctly reporting IP in Plex/Nginx/Etc<a class="headerlink" href="#dsm-task-for-correctly-reporting-ip-in-plexnginxetc" title="Permanent link"></a></h3>
<p>Due to some iptables configuration in DSM, you can get an incorrect IP reported in Plex or other apps that need an read/report the IP. To fix this, you need to add two rules to your iptables. unfortunately, those rules can sometimes be deleted at reboot or after DSM update.</p>
<p>To fix this, you will need to add a Scheduled Task that executes at boot with root user, which will check if the rules exists, if not, re-add them.</p>
<details class="question">
<summary>Task bash command - [Click to show/hide]</summary>
<div class="highlight"><pre><span></span><code><span class="ch">#!/bin/bash</span>
<span class="nv">currentAttempt</span><span class="o">=</span><span class="m">0</span>
<span class="nv">totalAttempts</span><span class="o">=</span><span class="m">10</span>
<span class="nv">delay</span><span class="o">=</span><span class="m">15</span>
<span class="k">while</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="nv">$currentAttempt</span><span class="w"> </span>-lt<span class="w"> </span><span class="nv">$totalAttempts</span><span class="w"> </span><span class="o">]</span>
<span class="k">do</span>
<span class="w"> </span><span class="nv">currentAttempt</span><span class="o">=</span><span class="k">$((</span><span class="w"> </span><span class="nv">$currentAttempt</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="k">))</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;Attempt </span><span class="nv">$currentAttempt</span><span class="s2"> of </span><span class="nv">$totalAttempts</span><span class="s2">...&quot;</span>
<span class="w"> </span><span class="nv">result</span><span class="o">=</span><span class="k">$(</span>iptables-save<span class="k">)</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[[</span><span class="w"> </span><span class="nv">$result</span><span class="w"> </span><span class="o">=</span>~<span class="w"> </span><span class="s2">&quot;-A DOCKER -i docker0 -j RETURN&quot;</span><span class="w"> </span><span class="o">]]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;Docker rules found! Modifying...&quot;</span>
<span class="w"> </span>iptables<span class="w"> </span>-t<span class="w"> </span>nat<span class="w"> </span>-A<span class="w"> </span>PREROUTING<span class="w"> </span>-m<span class="w"> </span>addrtype<span class="w"> </span>--dst-type<span class="w"> </span>LOCAL<span class="w"> </span>-j<span class="w"> </span>DOCKER
<span class="w"> </span>iptables<span class="w"> </span>-t<span class="w"> </span>nat<span class="w"> </span>-A<span class="w"> </span>PREROUTING<span class="w"> </span>-m<span class="w"> </span>addrtype<span class="w"> </span>--dst-type<span class="w"> </span>LOCAL<span class="w"> </span>!<span class="w"> </span>--dst<span class="w"> </span><span class="m">127</span>.0.0.0/8<span class="w"> </span>-j<span class="w"> </span>DOCKER
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;Done!&quot;</span>
<span class="w"> </span><span class="k">break</span>
<span class="w"> </span><span class="k">fi</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;Docker rules not found! Sleeping for </span><span class="nv">$delay</span><span class="s2"> seconds...&quot;</span>
<span class="w"> </span>sleep<span class="w"> </span><span class="nv">$delay</span>
<span class="k">done</span>
</code></pre></div>
</details>
<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">April 30, 2024 20:47:27</span>
</span>
<span class="md-source-file__fact">
<span class="md-icon" title="Created">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-datetime">April 24, 2021 19:35:09</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 &copy; 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.2 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 2024 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.2 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 2024 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.b8dbb3d2.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.3220b9d7.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>