diff --git a/404.html b/404.html index 20748a7..3ba8700 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Page Not Found | Unpackerr Extracter - + diff --git a/assets/js/0058b4c6.7b616161.js b/assets/js/0058b4c6.36e12553.js similarity index 99% rename from assets/js/0058b4c6.7b616161.js rename to assets/js/0058b4c6.36e12553.js index b7e4391..78319f5 100644 --- a/assets/js/0058b4c6.7b616161.js +++ b/assets/js/0058b4c6.36e12553.js @@ -1 +1 @@ -"use strict";(self.webpackChunkunpackerrdox=self.webpackChunkunpackerrdox||[]).push([[849],{6164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"someSidebar":[{"type":"link","label":"Introduction","href":"/docs/introduction","docId":"introduction","unlisted":false},{"type":"category","label":"Installation","items":[{"type":"link","label":"Choose Install Method","href":"/docs/install/choosemethod","docId":"install/choosemethod","unlisted":false},{"type":"category","label":"Docker","items":[{"type":"link","label":"Docker Basics","href":"/docs/install/docker","docId":"install/docker","unlisted":false},{"type":"link","label":"Docker Compose","href":"/docs/install/compose","docId":"install/compose","unlisted":false},{"type":"link","label":"unRAID","href":"/docs/install/unraid","docId":"install/unraid","unlisted":false},{"type":"link","label":"TrueNAS Scale","href":"/docs/install/truenas-scale","docId":"install/truenas-scale","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"FreeBSD","href":"/docs/install/freebsd","docId":"install/freebsd","unlisted":false},{"type":"link","label":"MacOS","href":"/docs/install/macos","docId":"install/macos","unlisted":false},{"type":"link","label":"Windows","href":"/docs/install/windows","docId":"install/windows","unlisted":false},{"type":"category","label":"Linux","items":[{"type":"link","label":"Repository","href":"/docs/install/linux","docId":"install/linux","unlisted":false},{"type":"link","label":"Arch Linux","href":"/docs/install/archlinux","docId":"install/archlinux","unlisted":false},{"type":"link","label":"Seedbox","href":"/docs/install/seedbox","docId":"install/seedbox","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Application Configuration","href":"/docs/install/configuration","docId":"install/configuration","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"FAQs","href":"/docs/unpackerr/faq","docId":"unpackerr/faq","unlisted":false},{"type":"category","label":"Tips & Tricks","items":[{"type":"link","label":"Troubleshooting","href":"/docs/unpackerr/troubleshooting","docId":"unpackerr/troubleshooting","unlisted":false},{"type":"link","label":"Torrent Downloaders","href":"/docs/downloaders/torrent","docId":"downloaders/torrent","unlisted":false},{"type":"link","label":"Usenet Downloaders","href":"/docs/downloaders/usenet","docId":"downloaders/usenet","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"html","value":"","defaultStyle":true},{"type":"link","label":"eXtractor Tool","href":"/docs/xt","docId":"xt","unlisted":false}]},"docs":{"downloaders/torrent":{"id":"downloaders/torrent","title":"Torrent Downloaders","description":"Information about torrent downloaders.","sidebar":"someSidebar"},"downloaders/usenet":{"id":"downloaders/usenet","title":"Usenet Downloaders","description":"Information about usenet downloaders.","sidebar":"someSidebar"},"install/archlinux":{"id":"install/archlinux","title":"Arch Linux","description":"Install Unpackerr on an Arch Linux server.","sidebar":"someSidebar"},"install/choosemethod":{"id":"install/choosemethod","title":"Choose Install Method","description":"Choose an Unpackerr install method.","sidebar":"someSidebar"},"install/compose":{"id":"install/compose","title":"Docker Compose","description":"Install Unpackerr with Docker Compose!","sidebar":"someSidebar"},"install/configuration":{"id":"install/configuration","title":"Application Configuration","description":"Unpackerr configurations explained.","sidebar":"someSidebar"},"install/docker":{"id":"install/docker","title":"Docker Basics","description":"Install Unpackerr using Docker!","sidebar":"someSidebar"},"install/freebsd":{"id":"install/freebsd","title":"FreeBSD","description":"Install Unpackerr on a FreeBSD server.","sidebar":"someSidebar"},"install/generated/cmdhook":{"id":"install/generated/cmdhook","title":"cmdhook","description":"Command Hooks"},"install/generated/folder":{"id":"install/generated/folder","title":"folder","description":"Watch Folders"},"install/generated/folders":{"id":"install/generated/folders","title":"folders","description":"Folder Settings"},"install/generated/footer":{"id":"install/generated/footer","title":"footer","description":"This page was generated automatically, 02 AUG 2024 20:44 UTC"},"install/generated/global":{"id":"install/generated/global","title":"global","description":"Global Settings"},"install/generated/index":{"id":"install/generated/index","title":"index","description":""},"install/generated/starr":{"id":"install/generated/starr","title":"starr","description":"Sonarr Settings"},"install/generated/webhook":{"id":"install/generated/webhook","title":"webhook","description":"Web Hooks"},"install/generated/webserver":{"id":"install/generated/webserver","title":"webserver","description":"Web Server"},"install/includes/archiveaccess":{"id":"install/includes/archiveaccess","title":"archiveaccess","description":"Unpackerr requires write access to your download location."},"install/includes/dockerconfigfile":{"id":"install/includes/dockerconfigfile","title":"dockerconfigfile","description":"When you start Unpackerr in Docker it checks for a /config directory. If one exists, and there is"},"install/includes/dockerdatamount":{"id":"install/includes/dockerdatamount","title":"dockerdatamount","description":"The /data or /downloads mount you use for Starr apps should be set the same for Unpackerr."},"install/includes/linuxpermissions":{"id":"install/includes/linuxpermissions","title":"linuxpermissions","description":"On Linux, unpackerr runs as userunpackerr. You will need to give that"},"install/linux":{"id":"install/linux","title":"Repository","description":"Install Unpackerr on a Linux server.","sidebar":"someSidebar"},"install/macos":{"id":"install/macos","title":"MacOS","description":"Install Unpackerr on a macOS system.","sidebar":"someSidebar"},"install/seedbox":{"id":"install/seedbox","title":"Seedbox","description":"Install Unpackerr on a Linux server without root.","sidebar":"someSidebar"},"install/truenas-scale":{"id":"install/truenas-scale","title":"TrueNAS Scale","description":"Install Unpackerr on TrueNAS Scale using TrueCharts.","sidebar":"someSidebar"},"install/unraid":{"id":"install/unraid","title":"unRAID","description":"Install Unpackerr on your unRAID server!","sidebar":"someSidebar"},"install/windows":{"id":"install/windows","title":"Windows","description":"Install Unpackerr on a Windows system.","sidebar":"someSidebar"},"introduction":{"id":"introduction","title":"Introduction","description":"Introduction and explanation of Unpackerr.","sidebar":"someSidebar"},"unpackerr/faq":{"id":"unpackerr/faq","title":"FAQs","description":"Frequently asked questions about Unpackerr installation and troubleshooting.","sidebar":"someSidebar"},"unpackerr/license":{"id":"unpackerr/license","title":"Unpackerr License and Copyright","description":""},"unpackerr/troubleshooting":{"id":"unpackerr/troubleshooting","title":"Troubleshooting","description":"Tips and Tricks for troubleshooting Unpackerr installations.","sidebar":"someSidebar"},"xt":{"id":"xt","title":"eXtractor Tool","description":"Recursively decompress archives","sidebar":"someSidebar"}}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkunpackerrdox=self.webpackChunkunpackerrdox||[]).push([[849],{6164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"someSidebar":[{"type":"link","label":"Introduction","href":"/docs/introduction","docId":"introduction","unlisted":false},{"type":"category","label":"Installation","items":[{"type":"link","label":"Choose Install Method","href":"/docs/install/choosemethod","docId":"install/choosemethod","unlisted":false},{"type":"category","label":"Docker","items":[{"type":"link","label":"Docker Basics","href":"/docs/install/docker","docId":"install/docker","unlisted":false},{"type":"link","label":"Docker Compose","href":"/docs/install/compose","docId":"install/compose","unlisted":false},{"type":"link","label":"unRAID","href":"/docs/install/unraid","docId":"install/unraid","unlisted":false},{"type":"link","label":"TrueNAS Scale","href":"/docs/install/truenas-scale","docId":"install/truenas-scale","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"FreeBSD","href":"/docs/install/freebsd","docId":"install/freebsd","unlisted":false},{"type":"link","label":"MacOS","href":"/docs/install/macos","docId":"install/macos","unlisted":false},{"type":"link","label":"Windows","href":"/docs/install/windows","docId":"install/windows","unlisted":false},{"type":"category","label":"Linux","items":[{"type":"link","label":"Repository","href":"/docs/install/linux","docId":"install/linux","unlisted":false},{"type":"link","label":"Arch Linux","href":"/docs/install/archlinux","docId":"install/archlinux","unlisted":false},{"type":"link","label":"Seedbox","href":"/docs/install/seedbox","docId":"install/seedbox","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Application Configuration","href":"/docs/install/configuration","docId":"install/configuration","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"FAQs","href":"/docs/unpackerr/faq","docId":"unpackerr/faq","unlisted":false},{"type":"category","label":"Tips & Tricks","items":[{"type":"link","label":"Troubleshooting","href":"/docs/unpackerr/troubleshooting","docId":"unpackerr/troubleshooting","unlisted":false},{"type":"link","label":"Torrent Downloaders","href":"/docs/downloaders/torrent","docId":"downloaders/torrent","unlisted":false},{"type":"link","label":"Usenet Downloaders","href":"/docs/downloaders/usenet","docId":"downloaders/usenet","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"html","value":"","defaultStyle":true},{"type":"link","label":"eXtractor Tool","href":"/docs/xt","docId":"xt","unlisted":false}]},"docs":{"downloaders/torrent":{"id":"downloaders/torrent","title":"Torrent Downloaders","description":"Information about torrent downloaders.","sidebar":"someSidebar"},"downloaders/usenet":{"id":"downloaders/usenet","title":"Usenet Downloaders","description":"Information about usenet downloaders.","sidebar":"someSidebar"},"install/archlinux":{"id":"install/archlinux","title":"Arch Linux","description":"Install Unpackerr on an Arch Linux server.","sidebar":"someSidebar"},"install/choosemethod":{"id":"install/choosemethod","title":"Choose Install Method","description":"Choose an Unpackerr install method.","sidebar":"someSidebar"},"install/compose":{"id":"install/compose","title":"Docker Compose","description":"Install Unpackerr with Docker Compose!","sidebar":"someSidebar"},"install/configuration":{"id":"install/configuration","title":"Application Configuration","description":"Unpackerr configurations explained.","sidebar":"someSidebar"},"install/docker":{"id":"install/docker","title":"Docker Basics","description":"Install Unpackerr using Docker!","sidebar":"someSidebar"},"install/freebsd":{"id":"install/freebsd","title":"FreeBSD","description":"Install Unpackerr on a FreeBSD server.","sidebar":"someSidebar"},"install/generated/cmdhook":{"id":"install/generated/cmdhook","title":"cmdhook","description":"Command Hooks"},"install/generated/folder":{"id":"install/generated/folder","title":"folder","description":"Watch Folders"},"install/generated/folders":{"id":"install/generated/folders","title":"folders","description":"Folder Settings"},"install/generated/footer":{"id":"install/generated/footer","title":"footer","description":"This page was generated automatically, 02 AUG 2024 22:34 UTC"},"install/generated/global":{"id":"install/generated/global","title":"global","description":"Global Settings"},"install/generated/index":{"id":"install/generated/index","title":"index","description":""},"install/generated/starr":{"id":"install/generated/starr","title":"starr","description":"Sonarr Settings"},"install/generated/webhook":{"id":"install/generated/webhook","title":"webhook","description":"Web Hooks"},"install/generated/webserver":{"id":"install/generated/webserver","title":"webserver","description":"Web Server"},"install/includes/archiveaccess":{"id":"install/includes/archiveaccess","title":"archiveaccess","description":"Unpackerr requires write access to your download location."},"install/includes/dockerconfigfile":{"id":"install/includes/dockerconfigfile","title":"dockerconfigfile","description":"When you start Unpackerr in Docker it checks for a /config directory. If one exists, and there is"},"install/includes/dockerdatamount":{"id":"install/includes/dockerdatamount","title":"dockerdatamount","description":"The /data or /downloads mount you use for Starr apps should be set the same for Unpackerr."},"install/includes/linuxpermissions":{"id":"install/includes/linuxpermissions","title":"linuxpermissions","description":"On Linux, unpackerr runs as userunpackerr. You will need to give that"},"install/linux":{"id":"install/linux","title":"Repository","description":"Install Unpackerr on a Linux server.","sidebar":"someSidebar"},"install/macos":{"id":"install/macos","title":"MacOS","description":"Install Unpackerr on a macOS system.","sidebar":"someSidebar"},"install/seedbox":{"id":"install/seedbox","title":"Seedbox","description":"Install Unpackerr on a Linux server without root.","sidebar":"someSidebar"},"install/truenas-scale":{"id":"install/truenas-scale","title":"TrueNAS Scale","description":"Install Unpackerr on TrueNAS Scale using TrueCharts.","sidebar":"someSidebar"},"install/unraid":{"id":"install/unraid","title":"unRAID","description":"Install Unpackerr on your unRAID server!","sidebar":"someSidebar"},"install/windows":{"id":"install/windows","title":"Windows","description":"Install Unpackerr on a Windows system.","sidebar":"someSidebar"},"introduction":{"id":"introduction","title":"Introduction","description":"Introduction and explanation of Unpackerr.","sidebar":"someSidebar"},"unpackerr/faq":{"id":"unpackerr/faq","title":"FAQs","description":"Frequently asked questions about Unpackerr installation and troubleshooting.","sidebar":"someSidebar"},"unpackerr/license":{"id":"unpackerr/license","title":"Unpackerr License and Copyright","description":""},"unpackerr/troubleshooting":{"id":"unpackerr/troubleshooting","title":"Troubleshooting","description":"Tips and Tricks for troubleshooting Unpackerr installations.","sidebar":"someSidebar"},"xt":{"id":"xt","title":"eXtractor Tool","description":"Recursively decompress archives","sidebar":"someSidebar"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/29c75c2e.793eeb58.js b/assets/js/29c75c2e.816fed9f.js similarity index 91% rename from assets/js/29c75c2e.793eeb58.js rename to assets/js/29c75c2e.816fed9f.js index 130a95c..c36dcad 100644 --- a/assets/js/29c75c2e.793eeb58.js +++ b/assets/js/29c75c2e.816fed9f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkunpackerrdox=self.webpackChunkunpackerrdox||[]).push([[137],{528:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var o=n(4848),r=n(8453);const a={},s=void 0,c={id:"install/generated/footer",title:"footer",description:"This page was generated automatically, 02 AUG 2024 20:44 UTC",source:"@site/docs/install/generated/footer.md",sourceDirName:"install/generated",slug:"/install/generated/footer",permalink:"/docs/install/generated/footer",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},i={},l=[];function u(e){const t={a:"a",...(0,r.R)(),...e.components};return(0,o.jsxs)("font",{color:"gray",style:{float:"right","font-style":"italic"},children:["This page was ",(0,o.jsx)(t.a,{href:"https://github.com/Unpackerr/unpackerr/tree/main/init/config",children:"generated automatically"}),", 02 AUG 2024 20:44 UTC"]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>c});var o=n(6540);const r={},a=o.createContext(r);function s(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkunpackerrdox=self.webpackChunkunpackerrdox||[]).push([[137],{528:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var o=n(4848),r=n(8453);const a={},s=void 0,c={id:"install/generated/footer",title:"footer",description:"This page was generated automatically, 02 AUG 2024 22:34 UTC",source:"@site/docs/install/generated/footer.md",sourceDirName:"install/generated",slug:"/install/generated/footer",permalink:"/docs/install/generated/footer",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},i={},l=[];function u(e){const t={a:"a",...(0,r.R)(),...e.components};return(0,o.jsxs)("font",{color:"gray",style:{float:"right","font-style":"italic"},children:["This page was ",(0,o.jsx)(t.a,{href:"https://github.com/Unpackerr/unpackerr/tree/main/init/config",children:"generated automatically"}),", 02 AUG 2024 22:34 UTC"]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>c});var o=n(6540);const r={},a=o.createContext(r);function s(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/43892b4c.c29134b5.js b/assets/js/43892b4c.c29134b5.js deleted file mode 100644 index 3250d19..0000000 --- a/assets/js/43892b4c.c29134b5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkunpackerrdox=self.webpackChunkunpackerrdox||[]).push([[782,137,149,644,565,64,487,707,97,412],{4191:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>a,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>x});var s=t(4848),r=t(8453),i=t(9971),d=t(3400),l=t(528);const o={id:"configuration",title:"Application Configuration",pagination_prev:"install/choosemethod",pagination_next:"unpackerr/troubleshooting",description:"Unpackerr configurations explained."},a=void 0,c={id:"install/configuration",title:"Application Configuration",description:"Unpackerr configurations explained.",source:"@site/docs/install/configuration.md",sourceDirName:"install",slug:"/install/configuration",permalink:"/docs/install/configuration",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{id:"configuration",title:"Application Configuration",pagination_prev:"install/choosemethod",pagination_next:"unpackerr/troubleshooting",description:"Unpackerr configurations explained."},sidebar:"someSidebar",previous:{title:"Choose Install Method",permalink:"/docs/install/choosemethod"},next:{title:"Troubleshooting",permalink:"/docs/unpackerr/troubleshooting"}},h={},x=[{value:"Config",id:"config",level:2},{value:"Generator",id:"generator",level:3},{value:"Two+ Instances",id:"two-instances",level:3},...d.toc,{value:"Secrets and Passwords",id:"secrets-and-passwords",level:2},...i.toc,{value:"Event IDs",id:"event-ids",level:2},...l.toc];function j(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["This is where to learn what each config item is, the default\nvalues for each item, and the name to use in an environment variable.\nYou should use the data here along with the data in the\n",(0,s.jsx)(n.a,{href:"https://github.com/Unpackerr/unpackerr/blob/main/examples/unpackerr.conf.example",children:"example config file"}),"\nto paint the full picture of how to configure Unpackerr."]}),"\n",(0,s.jsx)(n.h2,{id:"config",children:"Config"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Setting a log file is strongly recommend. This makes it much easier to troubleshoot problems."}),"\n",(0,s.jsxs)(n.li,{children:["To use a config file in Docker, mount ",(0,s.jsx)(n.code,{children:"/config"})," to the container and Unpackerr will write a config file.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Update the new file at ",(0,s.jsx)(n.code,{children:"/config/unpackerr.conf"})," and restart the container."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["When using a config file you must uncomment at minimum the ",(0,s.jsx)(n.code,{children:"[[header]]"})," ",(0,s.jsxs)("font",{color:"gray",children:["\nex. ",(0,s.jsx)(n.code,{children:"[[radarr]]"})]}),", ",(0,s.jsx)(n.code,{children:"url"})," and ",(0,s.jsx)(n.code,{children:"api_key"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Uncomment means remove the hash ",(0,s.jsx)(n.code,{children:"#"})," at the beginning of the line."]}),"\n",(0,s.jsxs)(n.li,{children:["The config file format is ",(0,s.jsx)(n.a,{href:"https://toml.io",children:"TOML"}),".","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Indentation is not important like YAML files, but it's used for ease of readability."}),"\n",(0,s.jsxs)(n.li,{children:["You may use ",(0,s.jsx)(n.code,{children:'"'})," or ",(0,s.jsx)(n.code,{children:"'"})," or ",(0,s.jsx)(n.code,{children:"'''"})," or ",(0,s.jsx)(n.code,{children:'"""'})," to wrap strings. Recommend ",(0,s.jsx)(n.code,{children:"'"})," for paths."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"generator",children:"Generator"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://notifiarr.com",children:"Notifiarr"})," hosts a configuration file maker.\nSimply fill in a web form, and click a button to get a working config file."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.strong,{children:["Access the generator here: ",(0,s.jsx)(n.a,{href:"https://notifiarr.com/unpackerr",children:"https://notifiarr.com/unpackerr"})]})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"two-instances",children:"Two+ Instances"}),"\n",(0,s.jsxs)(n.p,{children:["When adding a second (or third+) instance to the ",(0,s.jsx)(n.strong,{children:"config file"}),", you just\nadd another ",(0,s.jsx)(n.code,{children:"[[header]]"})," ",(0,s.jsxs)("font",{color:"gray",children:["ex. ",(0,s.jsx)(n.code,{children:"[[sonarr]]"})]})," and the\n",(0,s.jsx)(n.code,{children:"url"}),"/",(0,s.jsx)(n.code,{children:"api_key"}),"/etc under it. When adding a second instance to the ",(0,s.jsx)(n.strong,{children:"environment\nvariables"}),", you must increment the ",(0,s.jsx)(n.code,{children:"0"})," to a ",(0,s.jsx)(n.code,{children:"1"}),". And to a ",(0,s.jsx)(n.code,{children:"2"})," if you have 3\ninstances. There is no limit to the number of supported instances. This notation\nworks for all starr apps, folders, command hooks, and web hooks."]}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsx)("summary",{children:"Config examples with multiple instances."}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Config File example with two Radarrs and two Folders."}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'[[radarr]]\n url = "http://radarr"\n api_key = "32characters"\n\n[[radarr]]\n url = "http://radarr4k"\n api_key = "32morecharacters"\n\n[[folder]]\n path = "/data/downloads/software/"\n\n[[folder]]\n path = "/data/downloads/games/"\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Environment Variable example with two Radarrs and two Folders setting the same values as above."}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"UN_RADARR_0_URL=http://radarr\nUN_RADARR_0_API_KEY=32characters\nUN_RADARR_1_URL=http://radarr4k\nUN_RADARR_1_API_KEY=32morecharacters\nUN_FOLDER_0_PATH=/data/downloads/software/\nUN_FOLDER_1_PATH=/data/downloads/games/\n"})})]}),"\n",(0,s.jsxs)(n.p,{children:["Anything that ",(0,s.jsx)(n.a,{href:"https://github.com/Unpackerr/unpackerr/blob/main/examples/unpackerr.conf.example#L99",children:"has a header"}),"\nwith double brackets ",(0,s.jsx)(n.code,{children:"[[..]]"})," can be repeated as many times as you'd like."]}),"\n",(0,s.jsx)(d.default,{}),"\n",(0,s.jsx)(n.h2,{id:"secrets-and-passwords",children:"Secrets and Passwords"}),"\n",(0,s.jsxs)(n.p,{children:['If a wrong password is provided, the entire archive must\nbe read before we know it\'s a bad password.\nProviding many passwords here can drastically slow down\nextractions and cause extra disk IO. You may also specify\na password file by providing a "password" in this format: ',(0,s.jsx)(n.code,{children:"filepath:/path/to/passwords.txt"}),".\nThe file must contain 1 password per line."]}),"\n",(0,s.jsxs)(n.admonition,{title:"Other Secrets",type:"info",children:[(0,s.jsxs)(n.p,{children:["You may store any string parameter (except time intervals) into a separate file\nby setting the value to ",(0,s.jsx)(n.code,{children:"filepath:/path/to/file.txt"}),". In other words, if you want\nyour Radarr API key to be read from a separate file, instead of storing it directly\nin the config file or environment variables you can do this:"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'[[radarr]]\n url = "https://some.url/radarr"\n api_key = "filepath:/etc/secrets/radarr.txt"\n'})}),(0,s.jsx)(n.p,{children:"Or if using environment variables:"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"UN_RADARR_0_API_KEY=filepath:/etc/secrets/radarr.txt\n"})}),(0,s.jsxs)(n.p,{children:["Then store the API key (and only the API key) in ",(0,s.jsx)(n.code,{children:"/etc/secrets/radarr.txt"}),"."]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:(0,s.jsx)("font",{color:"gray",children:"This feature was added in Unpackerr v0.14.0."})})})]}),"\n",(0,s.jsx)(i.default,{}),"\n",(0,s.jsx)(n.h2,{id:"event-ids",children:"Event IDs"}),"\n",(0,s.jsx)(n.p,{children:"Event IDs are needed/used in command hooks and webhooks."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"0"})," = all, ",(0,s.jsx)(n.code,{children:"1"})," = queued, ",(0,s.jsx)(n.code,{children:"2"})," = extracting, ",(0,s.jsx)(n.code,{children:"3"})," = extract failed, ",(0,s.jsx)(n.code,{children:"4"})," = extracted,\n",(0,s.jsx)(n.code,{children:"5"})," = imported, ",(0,s.jsx)(n.code,{children:"6"})," = deleting, ",(0,s.jsx)(n.code,{children:"7"})," = delete failed, ",(0,s.jsx)(n.code,{children:"8"})," = deleted, ",(0,s.jsx)(n.code,{children:"9"})," = nothing extracted"]}),"\n",(0,s.jsx)(n.p,{children:"The 'nothing extracted' event (9) only fires for the folder watcher, not starr apps."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(l.default,{})]})}function f(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(j,{...e})}):j(e)}},1536:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/cmdhook",title:"cmdhook",description:"Command Hooks",source:"@site/docs/install/generated/cmdhook.md",sourceDirName:"install/generated",slug:"/install/generated/cmdhook",permalink:"/docs/install/generated/cmdhook",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Command Hooks",id:"command-hooks",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"command-hooks",children:"Command Hooks"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_CMDHOOK_"}),", Header: ",(0,s.jsx)("b",{children:" [[cmdhook]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'#####################\n### Command Hooks ###\n#####################\n# Executes a script or command when an extraction queues, starts, finishes, and/or is deleted.\n# All data is passed in as environment variables. Try /usr/bin/env to see what variables are available.\n###### Don\'t forget to uncomment [[cmdhook]] at a minimum !!!!\n[[cmdhook]]\n command = \'/downloads/scripts/command.sh\'\n## Provide an optional name to hide the URL in logs.\n## If a name is not provided the first word in the command is used.\n name = ""\n## Runs the command inside /bin/sh (\'nix) or cmd.exe (Windows).\n shell = false\n## Do not log command\'s output.\n silent = false\n## List of event ids to run command for, [0] for all.\n## The default is [0] and this is an example:\n events = [1, 4, 7]\n## ===> Optional Command Hook Configuration <===\n## List of apps to exclude. None by default. This is an example:\n exclude = ["readarr", "lidarr"]\n## You can adjust how long to wait for the command to run.\n timeout = "10s"\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Command Hooks\nUN_CMDHOOK_0_COMMAND=/downloads/scripts/command.sh\nUN_CMDHOOK_0_NAME=\nUN_CMDHOOK_0_SHELL=false\nUN_CMDHOOK_0_SILENT=false\nUN_CMDHOOK_0_EVENTS_0=1\nUN_CMDHOOK_0_EVENTS_1=4\nUN_CMDHOOK_0_EVENTS_2=7\nUN_CMDHOOK_0_EXCLUDE_0=readarr\nUN_CMDHOOK_0_EXCLUDE_1=lidarr\nUN_CMDHOOK_0_TIMEOUT=10s\n"})})]}),"\n",(0,s.jsxs)(n.p,{children:["Unpackerr can execute commands (or scripts) before and after an archive extraction.\nThe only thing required is a command. Name is optional, and used in logs only.\nSetting ",(0,s.jsx)(n.code,{children:"shell"})," to ",(0,s.jsx)(n.code,{children:"true"})," executes your command after ",(0,s.jsx)(n.code,{children:"/bin/sh -c"})," or ",(0,s.jsx)(n.code,{children:"cmd.exe /c"}),"\non Windows."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"command"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_COMMAND"})}),(0,s.jsx)(n.td,{children:"No Default / Command to run."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_NAME"})}),(0,s.jsx)(n.td,{children:"No Default / Name for logs, otherwise uses first word in command."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"shell"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_SHELL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Run command inside a shell."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"silent"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_SILENT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Hide command output from logs."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"events"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_EVENTS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"[0]"})," / List of event ids to run command for, ",(0,s.jsx)(n.code,{children:"0"})," for all."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"exclude"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_EXCLUDE_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"[]"})," / List of apps to exclude: radarr, sonarr, folders, etc."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the command to run."]})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["All extraction data is input to the command using environment variables, see example below.\nExtracted files variables names begin with ",(0,s.jsx)(n.code,{children:"UN_DATA_FILES_"}),".\nTry ",(0,s.jsx)(n.code,{children:"/usr/bin/env"})," as an example command to see what variables are available."]}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsx)("summary",{children:"Example Output Variables"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-none",children:"UN_DATA_OUTPUT=folder/subfolder_unpackerred\nUN_PATH=folder/subfolder\nUN_DATA_START=2021-10-04T23:04:27.849216-07:00\nUN_REVISION=\nUN_EVENT=extracted\nUN_GO=go1.17\nUN_DATA_ARCHIVES=folder/subfolder_unpackerred/Funjetting.rar,folder/subfolder_unpackerred/Funjetting.r00,folder/subfolder/files.zip\nUN_DATA_ARCHIVE_2=folder/subfolder/files.zip\nUN_DATA_ARCHIVE_1=folder/subfolder_unpackerred/Funjetting.r00\nUN_DATA_ARCHIVE_0=folder/subfolder_unpackerred/Funjetting.rar\nUN_DATA_FILES=folder/subfolder/Funjetting.mp3,folder/subfolder/Funjetting.r00,folder/subfolder/Funjetting.rar,folder/subfolder/_unpackerred.subfolder.txt\nUN_DATA_FILE_1=folder/subfolder/Funjetting.r00\nUN_DATA_BYTES=2407624\nPWD=/Users/david/go/src/github.com/Unpackerr/unpackerr\nUN_DATA_FILE_0=folder/subfolder/Funjetting.mp3\nUN_OS=darwin\nUN_DATA_FILE_3=folder/subfolder/_unpackerred.subfolder.txt\nUN_DATA_FILE_2=folder/subfolder/Funjetting.rar\nUN_BRANCH=\nUN_TIME=2021-10-04T23:04:27.869613-07:00\nUN_VERSION=\nUN_DATA_QUEUE=0\nSHLVL=1\nUN_APP=Folder\nUN_STARTED=2021-10-04T23:03:22.849253-07:00\nUN_ARCH=amd64\nUN_DATA_ELAPSED=20.365752ms\nUN_DATA_ERROR=\n"})})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},5212:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/folder",title:"folder",description:"Watch Folders",source:"@site/docs/install/generated/folder.md",sourceDirName:"install/generated",slug:"/install/generated/folder",permalink:"/docs/install/generated/folder",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Watch Folders",id:"watch-folders",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"watch-folders",children:"Watch Folders"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_FOLDER_"}),", Header: ",(0,s.jsx)("b",{children:" [[folder]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"##################################################################################\n### ### STOP HERE ### STOP HERE ### STOP HERE ### STOP HERE #### STOP HERE ### #\n### Only using Starr apps? The things above. The below configs are OPTIONAL. ### #\n##################################################################################\n\n\n##-Folders-#######################################################################\n## This application can also watch folders for things to extract. If you copy a ##\n## subfolder into a watched folder (defined below) any extractable items in the ##\n## folder will be decompressed. This has nothing to do with Starr applications. ##\n##################################################################################\n[[folder]]\n path = '/downloads/auto_extract'\n## Path to extract files to. The default (leaving this blank) is the same as `path` (above).\n extract_path = ''\n## Delete extracted or original files this long after extraction.\n## The default is 0. Set to 0 to disable all deletes. Uncomment it to enable deletes. Uses Go Duration.\n delete_after = \"10m\"\n## Unpackerr extracts archives inside archives. Set this to true to disable recursive extractions.\n disable_recursion = false\n## Delete extracted files after successful extraction? Honors delete_after.\n delete_files = false\n## Delete original items after successful extraction? Honors delete_after.\n delete_original = false\n## Disable extraction log (unpackerred.txt) file creation?\n disable_log = false\n## Move extracted files into original folder? If false, files go into an _unpackerred folder.\n move_back = false\n## Set this to true if you want this app to extract ISO files with .iso extension.\n extract_isos = false\n"})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Watch Folders\nUN_FOLDER_0_PATH=/downloads/auto_extract\nUN_FOLDER_0_EXTRACT_PATH=\nUN_FOLDER_0_DELETE_AFTER=10m\nUN_FOLDER_0_DISABLE_RECURSION=false\nUN_FOLDER_0_DELETE_FILES=false\nUN_FOLDER_0_DELETE_ORIGINAL=false\nUN_FOLDER_0_DISABLE_LOG=false\nUN_FOLDER_0_MOVE_BACK=false\nUN_FOLDER_0_EXTRACT_ISOS=false\n"})})]}),"\n",(0,s.jsx)(n.p,{children:"Folders are a way to watch a folder for things to extract. You can use this to\nmonitor your download client's \"move to\" path if you're not using it with an Starr app."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"path"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_PATH"})}),(0,s.jsxs)(n.td,{children:["No Default / Folder to watch for archives. ",(0,s.jsx)(n.strong,{children:"Not for Starr apps."})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"extract_path"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_EXTRACT_PATH"})}),(0,s.jsxs)(n.td,{children:["No Default / Where to extract to. Uses ",(0,s.jsx)(n.code,{children:"path"})," if not set."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_after"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_DELETE_AFTER"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10m"'})," / Delete requested files after this duration; ",(0,s.jsx)(n.code,{children:"0"})," disables."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"disable_recursion"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_DISABLE_RECURSION"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true disables extracting archives inside archives."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_files"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_DELETE_FILES"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete extracted files after successful extraction."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_original"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_DELETE_ORIGINAL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after successful extraction."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"disable_log"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_DISABLE_LOG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Turns off creation of extraction logs files for this folder."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"move_back"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_MOVE_BACK"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Move extracted items back into original folder."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"extract_isos"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_EXTRACT_ISOS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true enables .iso file extraction."]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},2898:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/folders",title:"folders",description:"Folder Settings",source:"@site/docs/install/generated/folders.md",sourceDirName:"install/generated",slug:"/install/generated/folders",permalink:"/docs/install/generated/folders",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Folder Settings",id:"folder-settings",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"folder-settings",children:"Folder Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_FOLDERS_"}),", Header: ",(0,s.jsx)("b",{children:" [folders]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'## Global Folder configuration that affects all watched folders.\n[folders]\n## How often poller checks for new folders.\n## The default of `0s` will disable the poller on all systems except Docker.\n## Set this value to `1ms` to disable it in Docker.\n interval = "0s"\n## How many new folder events can be immediately queued. Don\'t change this.\n buffer = 20000\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Folder Settings\nUN_FOLDERS_INTERVAL=1s\nUN_FOLDERS_BUFFER=20000\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"interval"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDERS_INTERVAL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"0s"'})," / How often poller checks for new folders. Use ",(0,s.jsx)(n.code,{children:"1ms"})," to disable it."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"buffer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDERS_BUFFER"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"20000"})," / How many new folder events can be immediately queued."]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},528:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/footer",title:"footer",description:"This page was generated automatically, 02 AUG 2024 20:44 UTC",source:"@site/docs/install/generated/footer.md",sourceDirName:"install/generated",slug:"/install/generated/footer",permalink:"/docs/install/generated/footer",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[];function c(e){const n={a:"a",...(0,r.R)(),...e.components};return(0,s.jsxs)("font",{color:"gray",style:{float:"right","font-style":"italic"},children:["This page was ",(0,s.jsx)(n.a,{href:"https://github.com/Unpackerr/unpackerr/tree/main/init/config",children:"generated automatically"}),", 02 AUG 2024 20:44 UTC"]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},3400:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/global",title:"global",description:"Global Settings",source:"@site/docs/install/generated/global.md",sourceDirName:"install/generated",slug:"/install/generated/global",permalink:"/docs/install/generated/global",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Global Settings",id:"global-settings",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"global-settings",children:"Global Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'#######################################################\n## Unpackerr Example Configuration File ##\n#######################################################\n## The values are a mix of defaults and examples. ##\n## Environment Variables may override all values. ##\n## More configuration help: https://unpackerr.zip ##\n## Config Generator: https://notifiarr.com/unpackerr ##\n#######################################################\n\n## Turn on debug messages in the output. Do not wrap this in quotes.\n## Recommend trying this so you know what it looks like. I personally leave it on.\ndebug = false\n\n## Disable writing messages to stdout/stderr. This silences the app. Set a log\n## file below if you set this to true. Recommended when starting with systemctl.\nquiet = false\n\n## Send error output to stderr instead of stdout by setting error_stderr to true.\n## Recommend leaving this at false. Ignored if quiet (above) is true.\nerror_stderr = false\n\n## Setting activity to true will silence all app queue log lines with only zeros.\n## Set this to true when you want less log spam.\nactivity = false\n\n## The Starr-application activity queue is logged on an interval.\n## Adjust that interval with this setting.\n## Default is a minute. 2m, 5m, 10m, 30m, 1h are also perfectly acceptable.\nlog_queues = "1m"\n\n## Write messages to a log file. This is the same data that is normally output to stdout.\n## This setting is great for Docker users that want to export their logs to a file.\n## The alternative is to use syslog to log the output of the application to a file.\n## Default is no log file; this is unset.\n## Except on macOS and Windows, the log file gets set to "~/.unpackerr/unpackerr.log"\n## log_files=0 turns off auto-rotation.\n## Default files is 10 and size(mb) is 10 Megabytes; both doubled if debug is true.\nlog_file = \'/downloads/unpackerr.log\'\nlog_files = 10\nlog_file_mb = 10\n\n## How often to poll starr apps (sonarr, radarr, etc).\n## Recommend 1m-5m. Uses Go Duration.\ninterval = "2m"\n\n## How long an item must be queued (download complete) before extraction will start.\n## One minute is the historic default and works well. Set higher if your downloads\n## take longer to finalize (or transfer locally). Uses Go Duration.\nstart_delay = "1m"\n\n## How long to wait before removing the history for a failed extraction.\n## Once the history is deleted the item will be recognized as new and\n## extraction will start again. Uses Go Duration.\nretry_delay = "5m"\n\n## How many times to retry a failed extraction. Pauses retry_delay between attempts.\nmax_retries = 3\n\n## How many files may be extracted in parallel. 1 works fine.\n## Do not wrap the number in quotes. Raise this only if you have fast disks and CPU.\nparallel = 1\n\n## Use these configurations to control the file modes used for newly extracted\n## files and folders. Recommend 0644/0755 or 0666/0777.\nfile_mode = "0644"\ndir_mode = "0755"\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Global Settings\nUN_DEBUG=false\nUN_QUIET=false\nUN_ERROR_STDERR=false\nUN_ACTIVITY=false\nUN_LOG_QUEUES=1m\nUN_LOG_FILE=/downloads/unpackerr.log\nUN_LOG_FILES=10\nUN_LOG_FILE_MB=10\nUN_INTERVAL=2m\nUN_START_DELAY=1m\nUN_RETRY_DELAY=5m\nUN_MAX_RETRIES=3\nUN_PARALLEL=1\nUN_FILE_MODE=0644\nUN_DIR_MODE=0755\n"})})]}),"\n",(0,s.jsxs)(n.p,{children:["These values must exist at the top of the config file.\nIf you put them anywhere else they may be attached to a ",(0,s.jsx)(n.code,{children:"[header]"})," inadvertently.\nWhen using environment variables, you can simply omit the ones you don't set or change from default."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"debug"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_DEBUG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Turns on more logs."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"quiet"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_QUIET"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Do not print logs to stdout or stderr."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"error_stderr"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_ERROR_STDERR"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Print ERROR lines to stderr instead of stdout."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"activity"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_ACTIVITY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting true will print only queue counts with activity."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_queues"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LOG_QUEUES"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"1m"'})," / How often to print internal counters. Uses Go Duration."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_file"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LOG_FILE"})}),(0,s.jsx)(n.td,{children:"No Default / Provide optional file path to write logs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_files"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LOG_FILES"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"10"})," / Log files to keep after rotating. ",(0,s.jsx)(n.code,{children:"0"})," disables rotation"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_file_mb"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LOG_FILE_MB"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"10"})," / Max size of log files in megabytes"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"interval"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_INTERVAL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"2m"'})," / How often apps are polled, recommend ",(0,s.jsx)(n.code,{children:"1m"})," to ",(0,s.jsx)(n.code,{children:"5m"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"start_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_START_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"1m"'})," / Files are queued at least this long before extraction."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"retry_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RETRY_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Failed extractions are retried after at least this long."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"max_retries"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_MAX_RETRIES"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"3"})," / Failed extractions are retried after at least this long."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"parallel"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_PARALLEL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"1"})," / Concurrent extractions, only recommend ",(0,s.jsx)(n.code,{children:"1"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"file_mode"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FILE_MODE"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"0644"'})," / Extracted files are written with this mode."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"dir_mode"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_DIR_MODE"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"0755"'})," / Extracted folders are written with this mode"]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},9971:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>f,contentTitle:()=>x,default:()=>p,frontMatter:()=>h,metadata:()=>j,toc:()=>u});var s=t(4848),r=t(8453),i=t(9046),d=t(2898),l=t(4993),o=t(5212),a=t(3418),c=t(1536);const h={},x=void 0,j={id:"install/generated/index",title:"index",description:"",source:"@site/docs/install/generated/index.md",sourceDirName:"install/generated",slug:"/install/generated/",permalink:"/docs/install/generated/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},f={},u=[...i.toc,...d.toc,...l.toc,...o.toc,...a.toc,...c.toc];function _(e){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.default,{}),"\n",(0,s.jsx)(d.default,{}),"\n",(0,s.jsx)(l.default,{}),"\n",(0,s.jsx)(o.default,{}),"\n",(0,s.jsx)(a.default,{}),"\n",(0,s.jsx)(c.default,{})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(_,{...e})}):_()}},4993:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/starr",title:"starr",description:"Sonarr Settings",source:"@site/docs/install/generated/starr.md",sourceDirName:"install/generated",slug:"/install/generated/starr",permalink:"/docs/install/generated/starr",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Sonarr Settings",id:"sonarr-settings",level:2},{value:"Radarr Settings",id:"radarr-settings",level:2},{value:"Lidarr Settings",id:"lidarr-settings",level:2},{value:"Readarr Settings",id:"readarr-settings",level:2},{value:"Whisparr Settings",id:"whisparr-settings",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"sonarr-settings",children:"Sonarr Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_SONARR_"}),", Header: ",(0,s.jsx)("b",{children:" [[sonarr]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'## Leaving the [[sonarr]] header uncommented (no leading hash #) without also\n## uncommenting the api_key (remove the hash #) will produce a startup warning.\n[[sonarr]]\n url = "http://127.0.0.1:8989"\n api_key = "0123456789abcdef0123456789abcdef"\n## List of paths where content is downloaded for this app.\n## Used as fallback if the path the Starr app reports does not exist or is not accessible.\n paths = [\'/downloads\']\n## Default protocols is torrent. Alternative: "torrent,usenet"\n protocols = "torrent"\n## How long to wait for a reply from the backend.\n timeout = "10s"\n## How long to wait after import before deleting the extracted items.\n delete_delay = "5m"\n## If you use this app with NZB you may wish to delete archives after extraction.\n## General recommendation is: do not enable this for torrent use.\n## Setting this to true deletes the entire original download folder after import.\n delete_orig = false\n## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.\n syncthing = false\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Sonarr Settings\nUN_SONARR_0_URL=http://sonarr:8989\nUN_SONARR_0_API_KEY=0123456789abcdef0123456789abcdef\nUN_SONARR_0_PATHS_0=/downloads\nUN_SONARR_0_PROTOCOLS=torrent\nUN_SONARR_0_TIMEOUT=10s\nUN_SONARR_0_DELETE_DELAY=5m\nUN_SONARR_0_DELETE_ORIG=false\nUN_SONARR_0_SYNCTHING=false\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_URL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"starr is not a real section has no default url"'})," / URL where this starr app can be accessed."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_key"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_API_KEY"})}),(0,s.jsx)(n.td,{children:"No Default / Provide URL and API key if you use this app."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"paths"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_PATHS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'["/downloads"]'})," / File system path where downloaded items are located."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"protocols"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_PROTOCOLS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"torrent"'})," / Protocols to process. Alt: ",(0,s.jsx)(n.code,{children:"torrent,usenet"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the app to respond."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_DELETE_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Extracts are deleted this long after import, ",(0,s.jsx)(n.code,{children:"-1s"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_orig"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_DELETE_ORIG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after import? Recommend keeping this false."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"syncthing"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_SYNCTHING"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true makes unpackerr wait for syncthing to finish."]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"radarr-settings",children:"Radarr Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_RADARR_"}),", Header: ",(0,s.jsx)("b",{children:" [[radarr]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'## Leaving the [[radarr]] header uncommented (no leading hash #) without also\n## uncommenting the api_key (remove the hash #) will produce a startup warning.\n[[radarr]]\n url = "http://127.0.0.1:7878"\n api_key = "0123456789abcdef0123456789abcdef"\n## List of paths where content is downloaded for this app.\n## Used as fallback if the path the Starr app reports does not exist or is not accessible.\n paths = [\'/downloads\']\n## Default protocols is torrent. Alternative: "torrent,usenet"\n protocols = "torrent"\n## How long to wait for a reply from the backend.\n timeout = "10s"\n## How long to wait after import before deleting the extracted items.\n delete_delay = "5m"\n## If you use this app with NZB you may wish to delete archives after extraction.\n## General recommendation is: do not enable this for torrent use.\n## Setting this to true deletes the entire original download folder after import.\n delete_orig = false\n## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.\n syncthing = false\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Radarr Settings\nUN_RADARR_0_URL=http://radarr:7878\nUN_RADARR_0_API_KEY=0123456789abcdef0123456789abcdef\nUN_RADARR_0_PATHS_0=/downloads\nUN_RADARR_0_PROTOCOLS=torrent\nUN_RADARR_0_TIMEOUT=10s\nUN_RADARR_0_DELETE_DELAY=5m\nUN_RADARR_0_DELETE_ORIG=false\nUN_RADARR_0_SYNCTHING=false\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_URL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"starr is not a real section has no default url"'})," / URL where this starr app can be accessed."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_key"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_API_KEY"})}),(0,s.jsx)(n.td,{children:"No Default / Provide URL and API key if you use this app."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"paths"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_PATHS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'["/downloads"]'})," / File system path where downloaded items are located."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"protocols"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_PROTOCOLS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"torrent"'})," / Protocols to process. Alt: ",(0,s.jsx)(n.code,{children:"torrent,usenet"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the app to respond."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_DELETE_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Extracts are deleted this long after import, ",(0,s.jsx)(n.code,{children:"-1s"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_orig"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_DELETE_ORIG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after import? Recommend keeping this false."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"syncthing"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_SYNCTHING"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true makes unpackerr wait for syncthing to finish."]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"lidarr-settings",children:"Lidarr Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_LIDARR_"}),", Header: ",(0,s.jsx)("b",{children:" [[lidarr]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'[[lidarr]]\n url = "http://127.0.0.1:8686"\n api_key = "0123456789abcdef0123456789abcdef"\n## List of paths where content is downloaded for this app.\n## Used as fallback if the path the Starr app reports does not exist or is not accessible.\n paths = [\'/downloads\']\n## Default protocols is torrent. Alternative: "torrent,usenet"\n protocols = "torrent"\n## How long to wait for a reply from the backend.\n timeout = "10s"\n## How long to wait after import before deleting the extracted items.\n delete_delay = "5m"\n## If you use this app with NZB you may wish to delete archives after extraction.\n## General recommendation is: do not enable this for torrent use.\n## Setting this to true deletes the entire original download folder after import.\n delete_orig = false\n## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.\n syncthing = false\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Lidarr Settings\nUN_LIDARR_0_URL=http://lidarr:8686\nUN_LIDARR_0_API_KEY=0123456789abcdef0123456789abcdef\nUN_LIDARR_0_PATHS_0=/downloads\nUN_LIDARR_0_PROTOCOLS=torrent\nUN_LIDARR_0_TIMEOUT=10s\nUN_LIDARR_0_DELETE_DELAY=5m\nUN_LIDARR_0_DELETE_ORIG=false\nUN_LIDARR_0_SYNCTHING=false\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_URL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"starr is not a real section has no default url"'})," / URL where this starr app can be accessed."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_key"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_API_KEY"})}),(0,s.jsx)(n.td,{children:"No Default / Provide URL and API key if you use this app."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"paths"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_PATHS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'["/downloads"]'})," / File system path where downloaded items are located."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"protocols"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_PROTOCOLS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"torrent"'})," / Protocols to process. Alt: ",(0,s.jsx)(n.code,{children:"torrent,usenet"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the app to respond."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_DELETE_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Extracts are deleted this long after import, ",(0,s.jsx)(n.code,{children:"-1s"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_orig"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_DELETE_ORIG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after import? Recommend keeping this false."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"syncthing"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_SYNCTHING"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true makes unpackerr wait for syncthing to finish."]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"readarr-settings",children:"Readarr Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_READARR_"}),", Header: ",(0,s.jsx)("b",{children:" [[readarr]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'[[readarr]]\n url = "http://127.0.0.1:8787"\n api_key = "0123456789abcdef0123456789abcdef"\n## List of paths where content is downloaded for this app.\n## Used as fallback if the path the Starr app reports does not exist or is not accessible.\n paths = [\'/downloads\']\n## Default protocols is torrent. Alternative: "torrent,usenet"\n protocols = "torrent"\n## How long to wait for a reply from the backend.\n timeout = "10s"\n## How long to wait after import before deleting the extracted items.\n delete_delay = "5m"\n## If you use this app with NZB you may wish to delete archives after extraction.\n## General recommendation is: do not enable this for torrent use.\n## Setting this to true deletes the entire original download folder after import.\n delete_orig = false\n## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.\n syncthing = false\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Readarr Settings\nUN_READARR_0_URL=http://readarr:8787\nUN_READARR_0_API_KEY=0123456789abcdef0123456789abcdef\nUN_READARR_0_PATHS_0=/downloads\nUN_READARR_0_PROTOCOLS=torrent\nUN_READARR_0_TIMEOUT=10s\nUN_READARR_0_DELETE_DELAY=5m\nUN_READARR_0_DELETE_ORIG=false\nUN_READARR_0_SYNCTHING=false\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_URL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"starr is not a real section has no default url"'})," / URL where this starr app can be accessed."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_key"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_API_KEY"})}),(0,s.jsx)(n.td,{children:"No Default / Provide URL and API key if you use this app."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"paths"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_PATHS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'["/downloads"]'})," / File system path where downloaded items are located."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"protocols"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_PROTOCOLS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"torrent"'})," / Protocols to process. Alt: ",(0,s.jsx)(n.code,{children:"torrent,usenet"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the app to respond."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_DELETE_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Extracts are deleted this long after import, ",(0,s.jsx)(n.code,{children:"-1s"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_orig"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_DELETE_ORIG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after import? Recommend keeping this false."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"syncthing"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_SYNCTHING"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true makes unpackerr wait for syncthing to finish."]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"whisparr-settings",children:"Whisparr Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_WHISPARR_"}),", Header: ",(0,s.jsx)("b",{children:" [[whisparr]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'[[whisparr]]\n url = "http://127.0.0.1:6969"\n api_key = "0123456789abcdef0123456789abcdef"\n## List of paths where content is downloaded for this app.\n## Used as fallback if the path the Starr app reports does not exist or is not accessible.\n paths = [\'/downloads\']\n## Default protocols is torrent. Alternative: "torrent,usenet"\n protocols = "torrent"\n## How long to wait for a reply from the backend.\n timeout = "10s"\n## How long to wait after import before deleting the extracted items.\n delete_delay = "5m"\n## If you use this app with NZB you may wish to delete archives after extraction.\n## General recommendation is: do not enable this for torrent use.\n## Setting this to true deletes the entire original download folder after import.\n delete_orig = false\n## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.\n syncthing = false\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Whisparr Settings\nUN_WHISPARR_0_URL=http://whisparr:6969\nUN_WHISPARR_0_API_KEY=0123456789abcdef0123456789abcdef\nUN_WHISPARR_0_PATHS_0=/downloads\nUN_WHISPARR_0_PROTOCOLS=torrent\nUN_WHISPARR_0_TIMEOUT=10s\nUN_WHISPARR_0_DELETE_DELAY=5m\nUN_WHISPARR_0_DELETE_ORIG=false\nUN_WHISPARR_0_SYNCTHING=false\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_URL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"starr is not a real section has no default url"'})," / URL where this starr app can be accessed."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_key"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_API_KEY"})}),(0,s.jsx)(n.td,{children:"No Default / Provide URL and API key if you use this app."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"paths"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_PATHS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'["/downloads"]'})," / File system path where downloaded items are located."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"protocols"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_PROTOCOLS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"torrent"'})," / Protocols to process. Alt: ",(0,s.jsx)(n.code,{children:"torrent,usenet"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the app to respond."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_DELETE_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Extracts are deleted this long after import, ",(0,s.jsx)(n.code,{children:"-1s"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_orig"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_DELETE_ORIG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after import? Recommend keeping this false."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"syncthing"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_SYNCTHING"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true makes unpackerr wait for syncthing to finish."]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},3418:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/webhook",title:"webhook",description:"Web Hooks",source:"@site/docs/install/generated/webhook.md",sourceDirName:"install/generated",slug:"/install/generated/webhook",permalink:"/docs/install/generated/webhook",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Web Hooks",id:"web-hooks",level:2},{value:"Notes for Web Hooks",id:"notes-for-web-hooks",level:3}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"web-hooks",children:"Web Hooks"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_WEBHOOK_"}),", Header: ",(0,s.jsx)("b",{children:" [[webhook]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'################\n### Webhooks ###\n################\n# Sends a webhook when an extraction queues, starts, finishes, and/or is deleted.\n# Created to integrate with notifiarr.com.\n# Also works natively with Discord.com, Telegram.org, and Slack.com webhooks.\n# Can possibly be used with other services by providing a custom template_path.\n###### Don\'t forget to uncomment [[webhook]] and url at a minimum !!!!\n[[webhook]]\n url = "https://notifiarr.com/api/v1/notification/unpackerr/api_key_from_notifiarr_com"\n## Provide an optional name to hide the URL in logs.\n## If a name is not provided then the URL is used.\n name = ""\n## Do not log success (less log spam).\n silent = false\n## List of event ids to send notification for, [0] for all.\n## The default is [0] and this is an example:\n events = [1, 4, 6]\n## ===> Advanced Optional Webhook Configuration <===\n## Used in Discord and Slack templates as bot name, in Telegram as chat_id.\n nickname = "Unpackerr"\n## Also passed into templates. Used in Slack templates for destination channel.\n channel = ""\n## List of apps to exclude. None by default. This is an example:\n exclude = ["readarr", "lidarr"]\n## Override internal webhook template for discord.com or other hooks.\n template_path = \'\'\n## Override automatic template detection. Values: notifiarr, discord, telegram, gotify, pushover, slack\n template = ""\n## Set this to true to ignore the SSL certificate on the server.\n ignore_ssl = false\n## You can adjust how long to wait for a server response.\n timeout = "10s"\n## If your custom template uses another MIME type, set this.\n content_type = "application/json"\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Web Hooks\nUN_WEBHOOK_0_URL=https://notifiarr.com/api/v1/notification/unpackerr/api_key_from_notifiarr_com\nUN_WEBHOOK_0_NAME=\nUN_WEBHOOK_0_SILENT=false\nUN_WEBHOOK_0_EVENTS_0=1\nUN_WEBHOOK_0_EVENTS_1=4\nUN_WEBHOOK_0_EVENTS_2=6\nUN_WEBHOOK_0_NICKNAME=Unpackerr\nUN_WEBHOOK_0_CHANNEL=\nUN_WEBHOOK_0_EXCLUDE_0=readarr\nUN_WEBHOOK_0_EXCLUDE_1=lidarr\nUN_WEBHOOK_0_TEMPLATE_PATH=\nUN_WEBHOOK_0_TEMPLATE=\nUN_WEBHOOK_0_IGNORE_SSL=false\nUN_WEBHOOK_0_TIMEOUT=10s\nUN_WEBHOOK_0_CONTENT_TYPE=application/json\n"})})]}),"\n",(0,s.jsxs)(n.p,{children:["This application can send a ",(0,s.jsx)(n.code,{children:"POST"})," webhook to a URL when an extraction begins, and again\nwhen it finishes. Configure 1 or more webhook URLs with the parameters below.\nWorks great with ",(0,s.jsx)(n.a,{href:"https://notifiarr.com",children:"notifiarr.com"}),". You can use\n",(0,s.jsx)(n.a,{href:"https://requestbin.com/r/",children:"requestbin.com"})," to test and ",(0,s.jsx)(n.em,{children:"see"})," the payload."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_URL"})}),(0,s.jsx)(n.td,{children:"No Default / URL to send POST webhook to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_NAME"})}),(0,s.jsx)(n.td,{children:"No Default / Provide an optional name to hide the URL in logs."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"silent"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_SILENT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Hide successful POSTs from logs."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"events"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_EVENTS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"[0]"})," / List of event ids to send notification for, ",(0,s.jsx)(n.code,{children:"0"})," for all."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"nickname"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_NICKNAME"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"Unpackerr"'})," / Passed into templates for telegram, discord and slack hooks."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"channel"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_CHANNEL"})}),(0,s.jsx)(n.td,{children:"No Default / Passed into templates for slack.com webhooks."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"exclude"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_EXCLUDE_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"[]"})," / List of apps to exclude: radarr, sonarr, folders, etc."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"template_path"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_TEMPLATE_PATH"})}),(0,s.jsx)(n.td,{children:"No Default / Instead of an internal template, provide your own."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"template"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_TEMPLATE"})}),(0,s.jsx)(n.td,{children:"No Default / Instead of auto template selection, force a built-in template."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ignore_ssl"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_IGNORE_SSL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Ignore invalid SSL certificates."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for server response."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"content_type"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_CONTENT_TYPE"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"application/json"'})," / Content-Type header sent to webhook."]})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"notes-for-web-hooks",children:"Notes for Web Hooks"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.em,{children:[(0,s.jsx)(n.code,{children:"Nickname"})," should equal the ",(0,s.jsx)(n.code,{children:"chat_id"})," value in Telegram webhooks."]})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.em,{children:[(0,s.jsx)(n.code,{children:"Channel"})," is used as destination channel for Slack. It's not used in others."]})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.em,{children:[(0,s.jsx)(n.code,{children:"Nickname"})," and ",(0,s.jsx)(n.code,{children:"Channel"})," may be used as custom values in custom templates."]})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.em,{children:[(0,s.jsx)(n.code,{children:"Name"})," is only used in logs, but it's also available as a template value as ",(0,s.jsx)(n.code,{children:"{{name}}"}),"."]})}),"\n",(0,s.jsxs)(n.li,{children:["Built-In Templates: ",(0,s.jsx)(n.code,{children:"pushover"}),", ",(0,s.jsx)(n.code,{children:"telegram"}),", ",(0,s.jsx)(n.code,{children:"discord"}),", ",(0,s.jsx)(n.code,{children:"notifiarr"}),", ",(0,s.jsx)(n.code,{children:"slack"}),", ",(0,s.jsx)(n.code,{children:"gotify"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},9046:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/webserver",title:"webserver",description:"Web Server",source:"@site/docs/install/generated/webserver.md",sourceDirName:"install/generated",slug:"/install/generated/webserver",permalink:"/docs/install/generated/webserver",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Web Server",id:"web-server",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"web-server",children:"Web Server"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_WEBSERVER_"}),", Header: ",(0,s.jsx)("b",{children:" [webserver]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'[webserver]\n## The web server currently only supports metrics; set this to true if you wish to use it.\n metrics = false\n## This may be set to a port or an ip:port to bind a specific IP. 0.0.0.0 binds ALL IPs.\n listen_addr = "0.0.0.0:5656"\n## Recommend setting a log file for HTTP requests. Otherwise, they go with other logs.\n log_file = \'\'\n## This app automatically rotates logs. Set these to the size and number to keep.\n log_files = 10\n log_file_mb = 10\n## Set both of these to valid file paths to enable HTTPS/TLS.\n ssl_cert_file = \'\'\n ssl_key_file = \'\'\n## Base URL from which to serve content.\n urlbase = "/"\n## Upstreams should be set to the IP or CIDR of your trusted upstream proxy.\n## Setting this correctly allows X-Forwarded-For to be used in logs.\n## In the future it may control auth proxy trust. Must be a list of strings.\n## example: upstreams = [ "127.0.0.1/32", "10.1.2.0/24" ]\n upstreams = []\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Web Server\nUN_WEBSERVER_METRICS=false\nUN_WEBSERVER_LISTEN_ADDR=0.0.0.0:5656\nUN_WEBSERVER_LOG_FILE=\nUN_WEBSERVER_LOG_FILES=10\nUN_WEBSERVER_LOG_FILE_MB=10\nUN_WEBSERVER_SSL_CERT_FILE=\nUN_WEBSERVER_SSL_KEY_FILE=\nUN_WEBSERVER_URLBASE=/\nUN_WEBSERVER_UPSTREAMS=\n"})})]}),"\n",(0,s.jsx)(n.admonition,{title:"Metrics",type:"note",children:(0,s.jsxs)(n.p,{children:["The web server currently only provides prometheus metrics, which you can display in\n",(0,s.jsx)(n.a,{href:"https://grafana.com/grafana/dashboards/18817-unpackerr/",children:"Grafana"}),".\nIt provides no UI. This may change in the future. The web server was added in v0.12.0."]})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"metrics"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_METRICS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Extracted folders are written with this mode"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"listen_addr"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_LISTEN_ADDR"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"0.0.0.0:5656"'})," / ip",":port"," to listen on; ",(0,s.jsx)(n.code,{children:"0.0.0.0"})," is all IPs."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_file"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_LOG_FILE"})}),(0,s.jsx)(n.td,{children:"No Default / Provide optional file path to write HTTP logs."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_files"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_LOG_FILES"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"10"})," / Log files to keep after rotating. ",(0,s.jsx)(n.code,{children:"0"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_file_mb"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_LOG_FILE_MB"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"10"})," / Max size of HTTP log files in megabytes"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ssl_cert_file"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_SSL_CERT_FILE"})}),(0,s.jsx)(n.td,{children:"No Default / Path to SSL cert file to serve HTTPS."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ssl_key_file"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_SSL_KEY_FILE"})}),(0,s.jsx)(n.td,{children:"No Default / Path to SSL key file to serve HTTPS."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"urlbase"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_URLBASE"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"/"'})," / Base URL path to serve HTTP content."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"upstreams"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_UPSTREAMS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"[]"})," / List of upstream proxy CIDRs or IPs to trust."]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>d,x:()=>l});var s=t(6540);const r={},i=s.createContext(r);function d(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/43892b4c.fb42829f.js b/assets/js/43892b4c.fb42829f.js new file mode 100644 index 0000000..b91468a --- /dev/null +++ b/assets/js/43892b4c.fb42829f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkunpackerrdox=self.webpackChunkunpackerrdox||[]).push([[782,137,149,644,565,64,487,707,97,412],{4191:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>a,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>x});var s=t(4848),r=t(8453),i=t(9971),d=t(3400),l=t(528);const o={id:"configuration",title:"Application Configuration",pagination_prev:"install/choosemethod",pagination_next:"unpackerr/troubleshooting",description:"Unpackerr configurations explained."},a=void 0,c={id:"install/configuration",title:"Application Configuration",description:"Unpackerr configurations explained.",source:"@site/docs/install/configuration.md",sourceDirName:"install",slug:"/install/configuration",permalink:"/docs/install/configuration",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{id:"configuration",title:"Application Configuration",pagination_prev:"install/choosemethod",pagination_next:"unpackerr/troubleshooting",description:"Unpackerr configurations explained."},sidebar:"someSidebar",previous:{title:"Choose Install Method",permalink:"/docs/install/choosemethod"},next:{title:"Troubleshooting",permalink:"/docs/unpackerr/troubleshooting"}},h={},x=[{value:"Config",id:"config",level:2},{value:"Generator",id:"generator",level:3},{value:"Two+ Instances",id:"two-instances",level:3},...d.toc,{value:"Secrets and Passwords",id:"secrets-and-passwords",level:2},...i.toc,{value:"Event IDs",id:"event-ids",level:2},...l.toc];function j(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["This is where to learn what each config item is, the default\nvalues for each item, and the name to use in an environment variable.\nExpand the blue sections to see excerpts from the\n",(0,s.jsx)(n.a,{href:"https://github.com/Unpackerr/unpackerr/blob/main/examples/docker-compose.yml",children:"example docker-compose.yml"}),"\nand ",(0,s.jsx)(n.a,{href:"https://github.com/Unpackerr/unpackerr/blob/main/examples/unpackerr.conf.example",children:"example config"})," files."]}),"\n",(0,s.jsx)(n.h2,{id:"config",children:"Config"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Setting a log file is strongly recommend. This makes it much easier to troubleshoot problems."}),"\n",(0,s.jsxs)(n.li,{children:["To use a config file in Docker, mount ",(0,s.jsx)(n.code,{children:"/config"})," to the container and Unpackerr will write a config file.","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Update the new file at ",(0,s.jsx)(n.code,{children:"/config/unpackerr.conf"})," and restart the container."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["When using a config file you must uncomment at minimum the ",(0,s.jsx)(n.code,{children:"[[header]]"})," ",(0,s.jsxs)("font",{color:"gray",children:["\nex. ",(0,s.jsx)(n.code,{children:"[[radarr]]"})]}),", ",(0,s.jsx)(n.code,{children:"url"})," and ",(0,s.jsx)(n.code,{children:"api_key"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Uncomment means remove the hash ",(0,s.jsx)(n.code,{children:"#"})," at the beginning of the line."]}),"\n",(0,s.jsxs)(n.li,{children:["The config file format is ",(0,s.jsx)(n.a,{href:"https://toml.io",children:"TOML"}),".","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Indentation is not important like YAML files, but it's used for ease of readability."}),"\n",(0,s.jsxs)(n.li,{children:["You may use ",(0,s.jsx)(n.code,{children:'"'})," or ",(0,s.jsx)(n.code,{children:"'"})," or ",(0,s.jsx)(n.code,{children:"'''"})," or ",(0,s.jsx)(n.code,{children:'"""'})," to wrap strings. Recommend ",(0,s.jsx)(n.code,{children:"'"})," for paths."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"generator",children:"Generator"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://notifiarr.com",children:"Notifiarr"})," hosts a configuration file maker.\nSimply fill in a web form, and click a button to get a working config file."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.strong,{children:["Access the generator here: ",(0,s.jsx)(n.a,{href:"https://notifiarr.com/unpackerr",children:"https://notifiarr.com/unpackerr"})]})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"two-instances",children:"Two+ Instances"}),"\n",(0,s.jsxs)(n.p,{children:["When adding a second (or third+) instance to the ",(0,s.jsx)(n.strong,{children:"config file"}),", you just\nadd another ",(0,s.jsx)(n.code,{children:"[[header]]"})," ",(0,s.jsxs)("font",{color:"gray",children:["ex. ",(0,s.jsx)(n.code,{children:"[[sonarr]]"})]})," and the\n",(0,s.jsx)(n.code,{children:"url"}),"/",(0,s.jsx)(n.code,{children:"api_key"}),"/etc under it. When adding a second instance to the ",(0,s.jsx)(n.strong,{children:"environment\nvariables"}),", you must increment the ",(0,s.jsx)(n.code,{children:"0"})," to a ",(0,s.jsx)(n.code,{children:"1"}),". And to a ",(0,s.jsx)(n.code,{children:"2"})," if you have 3\ninstances. There is no limit to the number of supported instances. This notation\nworks for all starr apps, folders, command hooks, and web hooks."]}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsx)("summary",{children:"Config examples with multiple instances."}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Config File example with two Radarrs and two Folders."}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'[[radarr]]\n url = "http://radarr"\n api_key = "32characters"\n\n[[radarr]]\n url = "http://radarr4k"\n api_key = "32morecharacters"\n\n[[folder]]\n path = "/data/downloads/software/"\n\n[[folder]]\n path = "/data/downloads/games/"\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Environment Variable example with two Radarrs and two Folders setting the same values as above."}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"UN_RADARR_0_URL=http://radarr\nUN_RADARR_0_API_KEY=32characters\nUN_RADARR_1_URL=http://radarr4k\nUN_RADARR_1_API_KEY=32morecharacters\nUN_FOLDER_0_PATH=/data/downloads/software/\nUN_FOLDER_1_PATH=/data/downloads/games/\n"})})]}),"\n",(0,s.jsxs)(n.p,{children:["Anything that ",(0,s.jsx)(n.a,{href:"https://github.com/Unpackerr/unpackerr/blob/main/examples/unpackerr.conf.example#L99",children:"has a header"}),"\nwith double brackets ",(0,s.jsx)(n.code,{children:"[[..]]"})," can be repeated as many times as you'd like."]}),"\n",(0,s.jsx)(d.default,{}),"\n",(0,s.jsx)(n.h2,{id:"secrets-and-passwords",children:"Secrets and Passwords"}),"\n",(0,s.jsxs)(n.p,{children:['If a wrong password is provided, the entire archive must\nbe read before we know it\'s a bad password.\nProviding many passwords here can drastically slow down\nextractions and cause extra disk IO. You may also specify\na password file by providing a "password" in this format: ',(0,s.jsx)(n.code,{children:"filepath:/path/to/passwords.txt"}),".\nThe file must contain 1 password per line."]}),"\n",(0,s.jsxs)(n.admonition,{title:"Other Secrets",type:"info",children:[(0,s.jsxs)(n.p,{children:["You may store any string parameter (except time intervals) into a separate file\nby setting the value to ",(0,s.jsx)(n.code,{children:"filepath:/path/to/file.txt"}),". In other words, if you want\nyour Radarr API key to be read from a separate file, instead of storing it directly\nin the config file or environment variables you can do this:"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'[[radarr]]\n url = "https://some.url/radarr"\n api_key = "filepath:/etc/secrets/radarr.txt"\n'})}),(0,s.jsx)(n.p,{children:"Or if using environment variables:"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"UN_RADARR_0_API_KEY=filepath:/etc/secrets/radarr.txt\n"})}),(0,s.jsxs)(n.p,{children:["Then store the API key (and only the API key) in ",(0,s.jsx)(n.code,{children:"/etc/secrets/radarr.txt"}),"."]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:(0,s.jsx)("font",{color:"gray",children:"This feature was added in Unpackerr v0.14.0."})})})]}),"\n",(0,s.jsx)(i.default,{}),"\n",(0,s.jsx)(n.h2,{id:"event-ids",children:"Event IDs"}),"\n",(0,s.jsx)(n.p,{children:"Event IDs are needed/used in command hooks and webhooks."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"0"})," = all, ",(0,s.jsx)(n.code,{children:"1"})," = queued, ",(0,s.jsx)(n.code,{children:"2"})," = extracting, ",(0,s.jsx)(n.code,{children:"3"})," = extract failed, ",(0,s.jsx)(n.code,{children:"4"})," = extracted,\n",(0,s.jsx)(n.code,{children:"5"})," = imported, ",(0,s.jsx)(n.code,{children:"6"})," = deleting, ",(0,s.jsx)(n.code,{children:"7"})," = delete failed, ",(0,s.jsx)(n.code,{children:"8"})," = deleted, ",(0,s.jsx)(n.code,{children:"9"})," = nothing extracted"]}),"\n",(0,s.jsx)(n.p,{children:"The 'nothing extracted' event (9) only fires for the folder watcher, not starr apps."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(l.default,{})]})}function f(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(j,{...e})}):j(e)}},1536:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/cmdhook",title:"cmdhook",description:"Command Hooks",source:"@site/docs/install/generated/cmdhook.md",sourceDirName:"install/generated",slug:"/install/generated/cmdhook",permalink:"/docs/install/generated/cmdhook",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Command Hooks",id:"command-hooks",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"command-hooks",children:"Command Hooks"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_CMDHOOK_"}),", Header: ",(0,s.jsx)("b",{children:" [[cmdhook]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'#####################\n### Command Hooks ###\n#####################\n# Executes a script or command when an extraction queues, starts, finishes, and/or is deleted.\n# All data is passed in as environment variables. Try /usr/bin/env to see what variables are available.\n###### Don\'t forget to uncomment [[cmdhook]] at a minimum !!!!\n[[cmdhook]]\n command = \'/downloads/scripts/command.sh\'\n## Provide an optional name to hide the URL in logs.\n## If a name is not provided the first word in the command is used.\n name = ""\n## Runs the command inside /bin/sh (\'nix) or cmd.exe (Windows).\n shell = false\n## Do not log command\'s output.\n silent = false\n## List of event ids to run command for, [0] for all.\n## The default is [0] and this is an example:\n events = [1, 4, 7]\n## ===> Optional Command Hook Configuration <===\n## List of apps to exclude. None by default. This is an example:\n exclude = ["readarr", "lidarr"]\n## You can adjust how long to wait for the command to run.\n timeout = "10s"\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Command Hooks\nUN_CMDHOOK_0_COMMAND=/downloads/scripts/command.sh\nUN_CMDHOOK_0_NAME=\nUN_CMDHOOK_0_SHELL=false\nUN_CMDHOOK_0_SILENT=false\nUN_CMDHOOK_0_EVENTS_0=1\nUN_CMDHOOK_0_EVENTS_1=4\nUN_CMDHOOK_0_EVENTS_2=7\nUN_CMDHOOK_0_EXCLUDE_0=readarr\nUN_CMDHOOK_0_EXCLUDE_1=lidarr\nUN_CMDHOOK_0_TIMEOUT=10s\n"})})]}),"\n",(0,s.jsxs)(n.p,{children:["Unpackerr can execute commands (or scripts) before and after an archive extraction.\nThe only thing required is a command. Name is optional, and used in logs only.\nSetting ",(0,s.jsx)(n.code,{children:"shell"})," to ",(0,s.jsx)(n.code,{children:"true"})," executes your command after ",(0,s.jsx)(n.code,{children:"/bin/sh -c"})," or ",(0,s.jsx)(n.code,{children:"cmd.exe /c"}),"\non Windows."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"command"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_COMMAND"})}),(0,s.jsx)(n.td,{children:"No Default / Command to run."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_NAME"})}),(0,s.jsx)(n.td,{children:"No Default / Name for logs, otherwise uses first word in command."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"shell"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_SHELL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Run command inside a shell."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"silent"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_SILENT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Hide command output from logs."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"events"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_EVENTS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"[0]"})," / List of event ids to run command for, ",(0,s.jsx)(n.code,{children:"0"})," for all."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"exclude"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_EXCLUDE_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"[]"})," / List of apps to exclude: radarr, sonarr, folders, etc."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_CMDHOOK_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the command to run."]})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["All extraction data is input to the command using environment variables, see example below.\nExtracted files variables names begin with ",(0,s.jsx)(n.code,{children:"UN_DATA_FILES_"}),".\nTry ",(0,s.jsx)(n.code,{children:"/usr/bin/env"})," as an example command to see what variables are available."]}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsx)("summary",{children:"Example Output Variables"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-none",children:"UN_DATA_OUTPUT=folder/subfolder_unpackerred\nUN_PATH=folder/subfolder\nUN_DATA_START=2021-10-04T23:04:27.849216-07:00\nUN_REVISION=\nUN_EVENT=extracted\nUN_GO=go1.17\nUN_DATA_ARCHIVES=folder/subfolder_unpackerred/Funjetting.rar,folder/subfolder_unpackerred/Funjetting.r00,folder/subfolder/files.zip\nUN_DATA_ARCHIVE_2=folder/subfolder/files.zip\nUN_DATA_ARCHIVE_1=folder/subfolder_unpackerred/Funjetting.r00\nUN_DATA_ARCHIVE_0=folder/subfolder_unpackerred/Funjetting.rar\nUN_DATA_FILES=folder/subfolder/Funjetting.mp3,folder/subfolder/Funjetting.r00,folder/subfolder/Funjetting.rar,folder/subfolder/_unpackerred.subfolder.txt\nUN_DATA_FILE_1=folder/subfolder/Funjetting.r00\nUN_DATA_BYTES=2407624\nPWD=/Users/david/go/src/github.com/Unpackerr/unpackerr\nUN_DATA_FILE_0=folder/subfolder/Funjetting.mp3\nUN_OS=darwin\nUN_DATA_FILE_3=folder/subfolder/_unpackerred.subfolder.txt\nUN_DATA_FILE_2=folder/subfolder/Funjetting.rar\nUN_BRANCH=\nUN_TIME=2021-10-04T23:04:27.869613-07:00\nUN_VERSION=\nUN_DATA_QUEUE=0\nSHLVL=1\nUN_APP=Folder\nUN_STARTED=2021-10-04T23:03:22.849253-07:00\nUN_ARCH=amd64\nUN_DATA_ELAPSED=20.365752ms\nUN_DATA_ERROR=\n"})})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},5212:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/folder",title:"folder",description:"Watch Folders",source:"@site/docs/install/generated/folder.md",sourceDirName:"install/generated",slug:"/install/generated/folder",permalink:"/docs/install/generated/folder",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Watch Folders",id:"watch-folders",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"watch-folders",children:"Watch Folders"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_FOLDER_"}),", Header: ",(0,s.jsx)("b",{children:" [[folder]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"##################################################################################\n### ### STOP HERE ### STOP HERE ### STOP HERE ### STOP HERE #### STOP HERE ### #\n### Only using Starr apps? The things above. The below configs are OPTIONAL. ### #\n##################################################################################\n\n\n##-Folders-#######################################################################\n## This application can also watch folders for things to extract. If you copy a ##\n## subfolder into a watched folder (defined below) any extractable items in the ##\n## folder will be decompressed. This has nothing to do with Starr applications. ##\n##################################################################################\n[[folder]]\n path = '/downloads/auto_extract'\n## Path to extract files to. The default (leaving this blank) is the same as `path` (above).\n extract_path = ''\n## Delete extracted or original files this long after extraction.\n## The default is 0. Set to 0 to disable all deletes. Uncomment it to enable deletes. Uses Go Duration.\n delete_after = \"10m\"\n## Unpackerr extracts archives inside archives. Set this to true to disable recursive extractions.\n disable_recursion = false\n## Delete extracted files after successful extraction? Honors delete_after.\n delete_files = false\n## Delete original items after successful extraction? Honors delete_after.\n delete_original = false\n## Disable extraction log (unpackerred.txt) file creation?\n disable_log = false\n## Move extracted files into original folder? If false, files go into an _unpackerred folder.\n move_back = false\n## Set this to true if you want this app to extract ISO files with .iso extension.\n extract_isos = false\n"})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Watch Folders\nUN_FOLDER_0_PATH=/downloads/auto_extract\nUN_FOLDER_0_EXTRACT_PATH=\nUN_FOLDER_0_DELETE_AFTER=10m\nUN_FOLDER_0_DISABLE_RECURSION=false\nUN_FOLDER_0_DELETE_FILES=false\nUN_FOLDER_0_DELETE_ORIGINAL=false\nUN_FOLDER_0_DISABLE_LOG=false\nUN_FOLDER_0_MOVE_BACK=false\nUN_FOLDER_0_EXTRACT_ISOS=false\n"})})]}),"\n",(0,s.jsx)(n.p,{children:"Folders are a way to watch a folder for things to extract. You can use this to\nmonitor your download client's \"move to\" path if you're not using it with an Starr app."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"path"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_PATH"})}),(0,s.jsxs)(n.td,{children:["No Default / Folder to watch for archives. ",(0,s.jsx)(n.strong,{children:"Not for Starr apps."})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"extract_path"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_EXTRACT_PATH"})}),(0,s.jsxs)(n.td,{children:["No Default / Where to extract to. Uses ",(0,s.jsx)(n.code,{children:"path"})," if not set."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_after"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_DELETE_AFTER"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10m"'})," / Delete requested files after this duration; ",(0,s.jsx)(n.code,{children:"0"})," disables."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"disable_recursion"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_DISABLE_RECURSION"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true disables extracting archives inside archives."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_files"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_DELETE_FILES"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete extracted files after successful extraction."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_original"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_DELETE_ORIGINAL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after successful extraction."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"disable_log"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_DISABLE_LOG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Turns off creation of extraction logs files for this folder."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"move_back"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_MOVE_BACK"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Move extracted items back into original folder."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"extract_isos"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDER_EXTRACT_ISOS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true enables .iso file extraction."]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},2898:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/folders",title:"folders",description:"Folder Settings",source:"@site/docs/install/generated/folders.md",sourceDirName:"install/generated",slug:"/install/generated/folders",permalink:"/docs/install/generated/folders",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Folder Settings",id:"folder-settings",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"folder-settings",children:"Folder Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_FOLDERS_"}),", Header: ",(0,s.jsx)("b",{children:" [folders]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'## Global Folder configuration that affects all watched folders.\n[folders]\n## How often poller checks for new folders.\n## The default of `0s` will disable the poller on all systems except Docker.\n## Set this value to `1ms` to disable it in Docker.\n interval = "0s"\n## How many new folder events can be immediately queued. Don\'t change this.\n buffer = 20000\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Folder Settings\nUN_FOLDERS_INTERVAL=1s\nUN_FOLDERS_BUFFER=20000\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"interval"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDERS_INTERVAL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"0s"'})," / How often poller checks for new folders. Use ",(0,s.jsx)(n.code,{children:"1ms"})," to disable it."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"buffer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FOLDERS_BUFFER"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"20000"})," / How many new folder events can be immediately queued."]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},528:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/footer",title:"footer",description:"This page was generated automatically, 02 AUG 2024 22:34 UTC",source:"@site/docs/install/generated/footer.md",sourceDirName:"install/generated",slug:"/install/generated/footer",permalink:"/docs/install/generated/footer",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[];function c(e){const n={a:"a",...(0,r.R)(),...e.components};return(0,s.jsxs)("font",{color:"gray",style:{float:"right","font-style":"italic"},children:["This page was ",(0,s.jsx)(n.a,{href:"https://github.com/Unpackerr/unpackerr/tree/main/init/config",children:"generated automatically"}),", 02 AUG 2024 22:34 UTC"]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},3400:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/global",title:"global",description:"Global Settings",source:"@site/docs/install/generated/global.md",sourceDirName:"install/generated",slug:"/install/generated/global",permalink:"/docs/install/generated/global",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Global Settings",id:"global-settings",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"global-settings",children:"Global Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'#######################################################\n## Unpackerr Example Configuration File ##\n#######################################################\n## The values are a mix of defaults and examples. ##\n## Environment Variables may override all values. ##\n## More configuration help: https://unpackerr.zip ##\n## Config Generator: https://notifiarr.com/unpackerr ##\n#######################################################\n\n## Turn on debug messages in the output. Do not wrap this in quotes.\n## Recommend trying this so you know what it looks like. I personally leave it on.\ndebug = false\n\n## Disable writing messages to stdout/stderr. This silences the app. Set a log\n## file below if you set this to true. Recommended when starting with systemctl.\nquiet = false\n\n## Send error output to stderr instead of stdout by setting error_stderr to true.\n## Recommend leaving this at false. Ignored if quiet (above) is true.\nerror_stderr = false\n\n## Setting activity to true will silence all app queue log lines with only zeros.\n## Set this to true when you want less log spam.\nactivity = false\n\n## The Starr-application activity queue is logged on an interval.\n## Adjust that interval with this setting.\n## Default is a minute. 2m, 5m, 10m, 30m, 1h are also perfectly acceptable.\nlog_queues = "1m"\n\n## Write messages to a log file. This is the same data that is normally output to stdout.\n## This setting is great for Docker users that want to export their logs to a file.\n## The alternative is to use syslog to log the output of the application to a file.\n## Default is no log file; this is unset.\n## Except on macOS and Windows, the log file gets set to "~/.unpackerr/unpackerr.log"\n## log_files=0 turns off auto-rotation.\n## Default files is 10 and size(mb) is 10 Megabytes; both doubled if debug is true.\nlog_file = \'/downloads/unpackerr.log\'\nlog_files = 10\nlog_file_mb = 10\n\n## How often to poll starr apps (sonarr, radarr, etc).\n## Recommend 1m-5m. Uses Go Duration.\ninterval = "2m"\n\n## How long an item must be queued (download complete) before extraction will start.\n## One minute is the historic default and works well. Set higher if your downloads\n## take longer to finalize (or transfer locally). Uses Go Duration.\nstart_delay = "1m"\n\n## How long to wait before removing the history for a failed extraction.\n## Once the history is deleted the item will be recognized as new and\n## extraction will start again. Uses Go Duration.\nretry_delay = "5m"\n\n## How many times to retry a failed extraction. Pauses retry_delay between attempts.\nmax_retries = 3\n\n## How many files may be extracted in parallel. 1 works fine.\n## Do not wrap the number in quotes. Raise this only if you have fast disks and CPU.\nparallel = 1\n\n## Use these configurations to control the file modes used for newly extracted\n## files and folders. Recommend 0644/0755 or 0666/0777.\nfile_mode = "0644"\ndir_mode = "0755"\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Global Settings\nUN_DEBUG=false\nUN_QUIET=false\nUN_ERROR_STDERR=false\nUN_ACTIVITY=false\nUN_LOG_QUEUES=1m\nUN_LOG_FILE=/downloads/unpackerr.log\nUN_LOG_FILES=10\nUN_LOG_FILE_MB=10\nUN_INTERVAL=2m\nUN_START_DELAY=1m\nUN_RETRY_DELAY=5m\nUN_MAX_RETRIES=3\nUN_PARALLEL=1\nUN_FILE_MODE=0644\nUN_DIR_MODE=0755\n"})})]}),"\n",(0,s.jsxs)(n.p,{children:["These values must exist at the top of the config file.\nIf you put them anywhere else they may be attached to a ",(0,s.jsx)(n.code,{children:"[header]"})," inadvertently.\nWhen using environment variables, you can simply omit the ones you don't set or change from default."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"debug"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_DEBUG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Turns on more logs."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"quiet"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_QUIET"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Do not print logs to stdout or stderr."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"error_stderr"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_ERROR_STDERR"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Print ERROR lines to stderr instead of stdout."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"activity"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_ACTIVITY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting true will print only queue counts with activity."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_queues"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LOG_QUEUES"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"1m"'})," / How often to print internal counters. Uses Go Duration."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_file"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LOG_FILE"})}),(0,s.jsx)(n.td,{children:"No Default / Provide optional file path to write logs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_files"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LOG_FILES"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"10"})," / Log files to keep after rotating. ",(0,s.jsx)(n.code,{children:"0"})," disables rotation"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_file_mb"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LOG_FILE_MB"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"10"})," / Max size of log files in megabytes"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"interval"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_INTERVAL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"2m"'})," / How often apps are polled, recommend ",(0,s.jsx)(n.code,{children:"1m"})," to ",(0,s.jsx)(n.code,{children:"5m"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"start_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_START_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"1m"'})," / Files are queued at least this long before extraction."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"retry_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RETRY_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Failed extractions are retried after at least this long."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"max_retries"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_MAX_RETRIES"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"3"})," / Failed extractions are retried after at least this long."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"parallel"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_PARALLEL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"1"})," / Concurrent extractions, only recommend ",(0,s.jsx)(n.code,{children:"1"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"file_mode"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_FILE_MODE"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"0644"'})," / Extracted files are written with this mode."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"dir_mode"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_DIR_MODE"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"0755"'})," / Extracted folders are written with this mode"]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},9971:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>f,contentTitle:()=>x,default:()=>p,frontMatter:()=>h,metadata:()=>j,toc:()=>u});var s=t(4848),r=t(8453),i=t(9046),d=t(2898),l=t(4993),o=t(5212),a=t(3418),c=t(1536);const h={},x=void 0,j={id:"install/generated/index",title:"index",description:"",source:"@site/docs/install/generated/index.md",sourceDirName:"install/generated",slug:"/install/generated/",permalink:"/docs/install/generated/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},f={},u=[...i.toc,...d.toc,...l.toc,...o.toc,...a.toc,...c.toc];function _(e){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.default,{}),"\n",(0,s.jsx)(d.default,{}),"\n",(0,s.jsx)(l.default,{}),"\n",(0,s.jsx)(o.default,{}),"\n",(0,s.jsx)(a.default,{}),"\n",(0,s.jsx)(c.default,{})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(_,{...e})}):_()}},4993:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/starr",title:"starr",description:"Sonarr Settings",source:"@site/docs/install/generated/starr.md",sourceDirName:"install/generated",slug:"/install/generated/starr",permalink:"/docs/install/generated/starr",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Sonarr Settings",id:"sonarr-settings",level:2},{value:"Radarr Settings",id:"radarr-settings",level:2},{value:"Lidarr Settings",id:"lidarr-settings",level:2},{value:"Readarr Settings",id:"readarr-settings",level:2},{value:"Whisparr Settings",id:"whisparr-settings",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"sonarr-settings",children:"Sonarr Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_SONARR_"}),", Header: ",(0,s.jsx)("b",{children:" [[sonarr]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'## Leaving the [[sonarr]] header uncommented (no leading hash #) without also\n## uncommenting the api_key (remove the hash #) will produce a startup warning.\n[[sonarr]]\n url = "http://127.0.0.1:8989"\n api_key = "0123456789abcdef0123456789abcdef"\n## List of paths where content is downloaded for this app.\n## Used as fallback if the path the Starr app reports does not exist or is not accessible.\n paths = [\'/downloads\']\n## Default protocols is torrent. Alternative: "torrent,usenet"\n protocols = "torrent"\n## How long to wait for a reply from the backend.\n timeout = "10s"\n## How long to wait after import before deleting the extracted items.\n delete_delay = "5m"\n## If you use this app with NZB you may wish to delete archives after extraction.\n## General recommendation is: do not enable this for torrent use.\n## Setting this to true deletes the entire original download folder after import.\n delete_orig = false\n## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.\n syncthing = false\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Sonarr Settings\nUN_SONARR_0_URL=http://sonarr:8989\nUN_SONARR_0_API_KEY=0123456789abcdef0123456789abcdef\nUN_SONARR_0_PATHS_0=/downloads\nUN_SONARR_0_PROTOCOLS=torrent\nUN_SONARR_0_TIMEOUT=10s\nUN_SONARR_0_DELETE_DELAY=5m\nUN_SONARR_0_DELETE_ORIG=false\nUN_SONARR_0_SYNCTHING=false\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_URL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"starr is not a real section has no default url"'})," / URL where this starr app can be accessed."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_key"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_API_KEY"})}),(0,s.jsx)(n.td,{children:"No Default / Provide URL and API key if you use this app."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"paths"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_PATHS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'["/downloads"]'})," / File system path where downloaded items are located."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"protocols"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_PROTOCOLS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"torrent"'})," / Protocols to process. Alt: ",(0,s.jsx)(n.code,{children:"torrent,usenet"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the app to respond."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_DELETE_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Extracts are deleted this long after import, ",(0,s.jsx)(n.code,{children:"-1s"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_orig"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_DELETE_ORIG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after import? Recommend keeping this false."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"syncthing"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_SONARR_SYNCTHING"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true makes unpackerr wait for syncthing to finish."]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"radarr-settings",children:"Radarr Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_RADARR_"}),", Header: ",(0,s.jsx)("b",{children:" [[radarr]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'## Leaving the [[radarr]] header uncommented (no leading hash #) without also\n## uncommenting the api_key (remove the hash #) will produce a startup warning.\n[[radarr]]\n url = "http://127.0.0.1:7878"\n api_key = "0123456789abcdef0123456789abcdef"\n## List of paths where content is downloaded for this app.\n## Used as fallback if the path the Starr app reports does not exist or is not accessible.\n paths = [\'/downloads\']\n## Default protocols is torrent. Alternative: "torrent,usenet"\n protocols = "torrent"\n## How long to wait for a reply from the backend.\n timeout = "10s"\n## How long to wait after import before deleting the extracted items.\n delete_delay = "5m"\n## If you use this app with NZB you may wish to delete archives after extraction.\n## General recommendation is: do not enable this for torrent use.\n## Setting this to true deletes the entire original download folder after import.\n delete_orig = false\n## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.\n syncthing = false\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Radarr Settings\nUN_RADARR_0_URL=http://radarr:7878\nUN_RADARR_0_API_KEY=0123456789abcdef0123456789abcdef\nUN_RADARR_0_PATHS_0=/downloads\nUN_RADARR_0_PROTOCOLS=torrent\nUN_RADARR_0_TIMEOUT=10s\nUN_RADARR_0_DELETE_DELAY=5m\nUN_RADARR_0_DELETE_ORIG=false\nUN_RADARR_0_SYNCTHING=false\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_URL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"starr is not a real section has no default url"'})," / URL where this starr app can be accessed."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_key"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_API_KEY"})}),(0,s.jsx)(n.td,{children:"No Default / Provide URL and API key if you use this app."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"paths"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_PATHS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'["/downloads"]'})," / File system path where downloaded items are located."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"protocols"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_PROTOCOLS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"torrent"'})," / Protocols to process. Alt: ",(0,s.jsx)(n.code,{children:"torrent,usenet"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the app to respond."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_DELETE_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Extracts are deleted this long after import, ",(0,s.jsx)(n.code,{children:"-1s"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_orig"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_DELETE_ORIG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after import? Recommend keeping this false."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"syncthing"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_RADARR_SYNCTHING"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true makes unpackerr wait for syncthing to finish."]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"lidarr-settings",children:"Lidarr Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_LIDARR_"}),", Header: ",(0,s.jsx)("b",{children:" [[lidarr]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'[[lidarr]]\n url = "http://127.0.0.1:8686"\n api_key = "0123456789abcdef0123456789abcdef"\n## List of paths where content is downloaded for this app.\n## Used as fallback if the path the Starr app reports does not exist or is not accessible.\n paths = [\'/downloads\']\n## Default protocols is torrent. Alternative: "torrent,usenet"\n protocols = "torrent"\n## How long to wait for a reply from the backend.\n timeout = "10s"\n## How long to wait after import before deleting the extracted items.\n delete_delay = "5m"\n## If you use this app with NZB you may wish to delete archives after extraction.\n## General recommendation is: do not enable this for torrent use.\n## Setting this to true deletes the entire original download folder after import.\n delete_orig = false\n## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.\n syncthing = false\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Lidarr Settings\nUN_LIDARR_0_URL=http://lidarr:8686\nUN_LIDARR_0_API_KEY=0123456789abcdef0123456789abcdef\nUN_LIDARR_0_PATHS_0=/downloads\nUN_LIDARR_0_PROTOCOLS=torrent\nUN_LIDARR_0_TIMEOUT=10s\nUN_LIDARR_0_DELETE_DELAY=5m\nUN_LIDARR_0_DELETE_ORIG=false\nUN_LIDARR_0_SYNCTHING=false\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_URL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"starr is not a real section has no default url"'})," / URL where this starr app can be accessed."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_key"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_API_KEY"})}),(0,s.jsx)(n.td,{children:"No Default / Provide URL and API key if you use this app."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"paths"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_PATHS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'["/downloads"]'})," / File system path where downloaded items are located."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"protocols"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_PROTOCOLS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"torrent"'})," / Protocols to process. Alt: ",(0,s.jsx)(n.code,{children:"torrent,usenet"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the app to respond."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_DELETE_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Extracts are deleted this long after import, ",(0,s.jsx)(n.code,{children:"-1s"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_orig"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_DELETE_ORIG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after import? Recommend keeping this false."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"syncthing"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_LIDARR_SYNCTHING"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true makes unpackerr wait for syncthing to finish."]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"readarr-settings",children:"Readarr Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_READARR_"}),", Header: ",(0,s.jsx)("b",{children:" [[readarr]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'[[readarr]]\n url = "http://127.0.0.1:8787"\n api_key = "0123456789abcdef0123456789abcdef"\n## List of paths where content is downloaded for this app.\n## Used as fallback if the path the Starr app reports does not exist or is not accessible.\n paths = [\'/downloads\']\n## Default protocols is torrent. Alternative: "torrent,usenet"\n protocols = "torrent"\n## How long to wait for a reply from the backend.\n timeout = "10s"\n## How long to wait after import before deleting the extracted items.\n delete_delay = "5m"\n## If you use this app with NZB you may wish to delete archives after extraction.\n## General recommendation is: do not enable this for torrent use.\n## Setting this to true deletes the entire original download folder after import.\n delete_orig = false\n## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.\n syncthing = false\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Readarr Settings\nUN_READARR_0_URL=http://readarr:8787\nUN_READARR_0_API_KEY=0123456789abcdef0123456789abcdef\nUN_READARR_0_PATHS_0=/downloads\nUN_READARR_0_PROTOCOLS=torrent\nUN_READARR_0_TIMEOUT=10s\nUN_READARR_0_DELETE_DELAY=5m\nUN_READARR_0_DELETE_ORIG=false\nUN_READARR_0_SYNCTHING=false\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_URL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"starr is not a real section has no default url"'})," / URL where this starr app can be accessed."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_key"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_API_KEY"})}),(0,s.jsx)(n.td,{children:"No Default / Provide URL and API key if you use this app."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"paths"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_PATHS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'["/downloads"]'})," / File system path where downloaded items are located."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"protocols"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_PROTOCOLS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"torrent"'})," / Protocols to process. Alt: ",(0,s.jsx)(n.code,{children:"torrent,usenet"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the app to respond."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_DELETE_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Extracts are deleted this long after import, ",(0,s.jsx)(n.code,{children:"-1s"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_orig"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_DELETE_ORIG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after import? Recommend keeping this false."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"syncthing"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_READARR_SYNCTHING"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true makes unpackerr wait for syncthing to finish."]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"whisparr-settings",children:"Whisparr Settings"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_WHISPARR_"}),", Header: ",(0,s.jsx)("b",{children:" [[whisparr]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'[[whisparr]]\n url = "http://127.0.0.1:6969"\n api_key = "0123456789abcdef0123456789abcdef"\n## List of paths where content is downloaded for this app.\n## Used as fallback if the path the Starr app reports does not exist or is not accessible.\n paths = [\'/downloads\']\n## Default protocols is torrent. Alternative: "torrent,usenet"\n protocols = "torrent"\n## How long to wait for a reply from the backend.\n timeout = "10s"\n## How long to wait after import before deleting the extracted items.\n delete_delay = "5m"\n## If you use this app with NZB you may wish to delete archives after extraction.\n## General recommendation is: do not enable this for torrent use.\n## Setting this to true deletes the entire original download folder after import.\n delete_orig = false\n## If you use Syncthing, setting this to true will make unpackerr wait for syncs to finish.\n syncthing = false\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Whisparr Settings\nUN_WHISPARR_0_URL=http://whisparr:6969\nUN_WHISPARR_0_API_KEY=0123456789abcdef0123456789abcdef\nUN_WHISPARR_0_PATHS_0=/downloads\nUN_WHISPARR_0_PROTOCOLS=torrent\nUN_WHISPARR_0_TIMEOUT=10s\nUN_WHISPARR_0_DELETE_DELAY=5m\nUN_WHISPARR_0_DELETE_ORIG=false\nUN_WHISPARR_0_SYNCTHING=false\n"})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_URL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"starr is not a real section has no default url"'})," / URL where this starr app can be accessed."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_key"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_API_KEY"})}),(0,s.jsx)(n.td,{children:"No Default / Provide URL and API key if you use this app."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"paths"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_PATHS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'["/downloads"]'})," / File system path where downloaded items are located."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"protocols"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_PROTOCOLS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"torrent"'})," / Protocols to process. Alt: ",(0,s.jsx)(n.code,{children:"torrent,usenet"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for the app to respond."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_delay"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_DELETE_DELAY"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"5m"'})," / Extracts are deleted this long after import, ",(0,s.jsx)(n.code,{children:"-1s"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delete_orig"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_DELETE_ORIG"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Delete archives after import? Recommend keeping this false."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"syncthing"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WHISPARR_SYNCTHING"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Setting this to true makes unpackerr wait for syncthing to finish."]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},3418:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/webhook",title:"webhook",description:"Web Hooks",source:"@site/docs/install/generated/webhook.md",sourceDirName:"install/generated",slug:"/install/generated/webhook",permalink:"/docs/install/generated/webhook",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Web Hooks",id:"web-hooks",level:2},{value:"Notes for Web Hooks",id:"notes-for-web-hooks",level:3}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"web-hooks",children:"Web Hooks"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_WEBHOOK_"}),", Header: ",(0,s.jsx)("b",{children:" [[webhook]]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'################\n### Webhooks ###\n################\n# Sends a webhook when an extraction queues, starts, finishes, and/or is deleted.\n# Created to integrate with notifiarr.com.\n# Also works natively with Discord.com, Telegram.org, and Slack.com webhooks.\n# Can possibly be used with other services by providing a custom template_path.\n###### Don\'t forget to uncomment [[webhook]] and url at a minimum !!!!\n[[webhook]]\n url = "https://notifiarr.com/api/v1/notification/unpackerr/api_key_from_notifiarr_com"\n## Provide an optional name to hide the URL in logs.\n## If a name is not provided then the URL is used.\n name = ""\n## Do not log success (less log spam).\n silent = false\n## List of event ids to send notification for, [0] for all.\n## The default is [0] and this is an example:\n events = [1, 4, 6]\n## ===> Advanced Optional Webhook Configuration <===\n## Used in Discord and Slack templates as bot name, in Telegram as chat_id.\n nickname = "Unpackerr"\n## Also passed into templates. Used in Slack templates for destination channel.\n channel = ""\n## List of apps to exclude. None by default. This is an example:\n exclude = ["readarr", "lidarr"]\n## Override internal webhook template for discord.com or other hooks.\n template_path = \'\'\n## Override automatic template detection. Values: notifiarr, discord, telegram, gotify, pushover, slack\n template = ""\n## Set this to true to ignore the SSL certificate on the server.\n ignore_ssl = false\n## You can adjust how long to wait for a server response.\n timeout = "10s"\n## If your custom template uses another MIME type, set this.\n content_type = "application/json"\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Web Hooks\nUN_WEBHOOK_0_URL=https://notifiarr.com/api/v1/notification/unpackerr/api_key_from_notifiarr_com\nUN_WEBHOOK_0_NAME=\nUN_WEBHOOK_0_SILENT=false\nUN_WEBHOOK_0_EVENTS_0=1\nUN_WEBHOOK_0_EVENTS_1=4\nUN_WEBHOOK_0_EVENTS_2=6\nUN_WEBHOOK_0_NICKNAME=Unpackerr\nUN_WEBHOOK_0_CHANNEL=\nUN_WEBHOOK_0_EXCLUDE_0=readarr\nUN_WEBHOOK_0_EXCLUDE_1=lidarr\nUN_WEBHOOK_0_TEMPLATE_PATH=\nUN_WEBHOOK_0_TEMPLATE=\nUN_WEBHOOK_0_IGNORE_SSL=false\nUN_WEBHOOK_0_TIMEOUT=10s\nUN_WEBHOOK_0_CONTENT_TYPE=application/json\n"})})]}),"\n",(0,s.jsxs)(n.p,{children:["This application can send a ",(0,s.jsx)(n.code,{children:"POST"})," webhook to a URL when an extraction begins, and again\nwhen it finishes. Configure 1 or more webhook URLs with the parameters below.\nWorks great with ",(0,s.jsx)(n.a,{href:"https://notifiarr.com",children:"notifiarr.com"}),". You can use\n",(0,s.jsx)(n.a,{href:"https://requestbin.com/r/",children:"requestbin.com"})," to test and ",(0,s.jsx)(n.em,{children:"see"})," the payload."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"url"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_URL"})}),(0,s.jsx)(n.td,{children:"No Default / URL to send POST webhook to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_NAME"})}),(0,s.jsx)(n.td,{children:"No Default / Provide an optional name to hide the URL in logs."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"silent"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_SILENT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Hide successful POSTs from logs."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"events"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_EVENTS_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"[0]"})," / List of event ids to send notification for, ",(0,s.jsx)(n.code,{children:"0"})," for all."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"nickname"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_NICKNAME"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"Unpackerr"'})," / Passed into templates for telegram, discord and slack hooks."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"channel"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_CHANNEL"})}),(0,s.jsx)(n.td,{children:"No Default / Passed into templates for slack.com webhooks."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"exclude"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_EXCLUDE_0"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"[]"})," / List of apps to exclude: radarr, sonarr, folders, etc."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"template_path"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_TEMPLATE_PATH"})}),(0,s.jsx)(n.td,{children:"No Default / Instead of an internal template, provide your own."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"template"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_TEMPLATE"})}),(0,s.jsx)(n.td,{children:"No Default / Instead of auto template selection, force a built-in template."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ignore_ssl"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_IGNORE_SSL"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Ignore invalid SSL certificates."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"timeout"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_TIMEOUT"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"10s"'})," / How long to wait for server response."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"content_type"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBHOOK_CONTENT_TYPE"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"application/json"'})," / Content-Type header sent to webhook."]})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"notes-for-web-hooks",children:"Notes for Web Hooks"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.em,{children:[(0,s.jsx)(n.code,{children:"Nickname"})," should equal the ",(0,s.jsx)(n.code,{children:"chat_id"})," value in Telegram webhooks."]})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.em,{children:[(0,s.jsx)(n.code,{children:"Channel"})," is used as destination channel for Slack. It's not used in others."]})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.em,{children:[(0,s.jsx)(n.code,{children:"Nickname"})," and ",(0,s.jsx)(n.code,{children:"Channel"})," may be used as custom values in custom templates."]})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsxs)(n.em,{children:[(0,s.jsx)(n.code,{children:"Name"})," is only used in logs, but it's also available as a template value as ",(0,s.jsx)(n.code,{children:"{{name}}"}),"."]})}),"\n",(0,s.jsxs)(n.li,{children:["Built-In Templates: ",(0,s.jsx)(n.code,{children:"pushover"}),", ",(0,s.jsx)(n.code,{children:"telegram"}),", ",(0,s.jsx)(n.code,{children:"discord"}),", ",(0,s.jsx)(n.code,{children:"notifiarr"}),", ",(0,s.jsx)(n.code,{children:"slack"}),", ",(0,s.jsx)(n.code,{children:"gotify"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},9046:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var s=t(4848),r=t(8453);const i={},d=void 0,l={id:"install/generated/webserver",title:"webserver",description:"Web Server",source:"@site/docs/install/generated/webserver.md",sourceDirName:"install/generated",slug:"/install/generated/webserver",permalink:"/docs/install/generated/webserver",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},o={},a=[{value:"Web Server",id:"web-server",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"web-server",children:"Web Server"}),"\n",(0,s.jsxs)(t,{children:[(0,s.jsxs)("summary",{children:["Examples. Prefix: ",(0,s.jsx)("b",{children:"UN_WEBSERVER_"}),", Header: ",(0,s.jsx)("b",{children:" [webserver]"})]}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using the config file:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'[webserver]\n## The web server currently only supports metrics; set this to true if you wish to use it.\n metrics = false\n## This may be set to a port or an ip:port to bind a specific IP. 0.0.0.0 binds ALL IPs.\n listen_addr = "0.0.0.0:5656"\n## Recommend setting a log file for HTTP requests. Otherwise, they go with other logs.\n log_file = \'\'\n## This app automatically rotates logs. Set these to the size and number to keep.\n log_files = 10\n log_file_mb = 10\n## Set both of these to valid file paths to enable HTTPS/TLS.\n ssl_cert_file = \'\'\n ssl_key_file = \'\'\n## Base URL from which to serve content.\n urlbase = "/"\n## Upstreams should be set to the IP or CIDR of your trusted upstream proxy.\n## Setting this correctly allows X-Forwarded-For to be used in logs.\n## In the future it may control auth proxy trust. Must be a list of strings.\n## example: upstreams = [ "127.0.0.1/32", "10.1.2.0/24" ]\n upstreams = []\n'})}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Using environment variables:"}),"\n"]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"## Web Server\nUN_WEBSERVER_METRICS=false\nUN_WEBSERVER_LISTEN_ADDR=0.0.0.0:5656\nUN_WEBSERVER_LOG_FILE=\nUN_WEBSERVER_LOG_FILES=10\nUN_WEBSERVER_LOG_FILE_MB=10\nUN_WEBSERVER_SSL_CERT_FILE=\nUN_WEBSERVER_SSL_KEY_FILE=\nUN_WEBSERVER_URLBASE=/\nUN_WEBSERVER_UPSTREAMS=\n"})})]}),"\n",(0,s.jsx)(n.admonition,{title:"Metrics",type:"note",children:(0,s.jsxs)(n.p,{children:["The web server currently only provides prometheus metrics, which you can display in\n",(0,s.jsx)(n.a,{href:"https://grafana.com/grafana/dashboards/18817-unpackerr/",children:"Grafana"}),".\nIt provides no UI. This may change in the future. The web server was added in v0.12.0."]})}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Config Name"}),(0,s.jsx)(n.th,{children:"Variable Name"}),(0,s.jsx)(n.th,{children:"Default / Note"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"metrics"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_METRICS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"false"})," / Extracted folders are written with this mode"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"listen_addr"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_LISTEN_ADDR"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"0.0.0.0:5656"'})," / ip",":port"," to listen on; ",(0,s.jsx)(n.code,{children:"0.0.0.0"})," is all IPs."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_file"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_LOG_FILE"})}),(0,s.jsx)(n.td,{children:"No Default / Provide optional file path to write HTTP logs."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_files"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_LOG_FILES"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"10"})," / Log files to keep after rotating. ",(0,s.jsx)(n.code,{children:"0"})," to disable."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"log_file_mb"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_LOG_FILE_MB"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"10"})," / Max size of HTTP log files in megabytes"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ssl_cert_file"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_SSL_CERT_FILE"})}),(0,s.jsx)(n.td,{children:"No Default / Path to SSL cert file to serve HTTPS."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ssl_key_file"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_SSL_KEY_FILE"})}),(0,s.jsx)(n.td,{children:"No Default / Path to SSL key file to serve HTTPS."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"urlbase"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_URLBASE"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'"/"'})," / Base URL path to serve HTTP content."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"upstreams"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"UN_WEBSERVER_UPSTREAMS"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"[]"})," / List of upstream proxy CIDRs or IPs to trust."]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>d,x:()=>l});var s=t(6540);const r={},i=s.createContext(r);function d(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.04d8ee46.js b/assets/js/runtime~main.376dc088.js similarity index 97% rename from assets/js/runtime~main.04d8ee46.js rename to assets/js/runtime~main.376dc088.js index e8b7a62..1144f34 100644 --- a/assets/js/runtime~main.04d8ee46.js +++ b/assets/js/runtime~main.376dc088.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,r,t,c,d={},o={};function f(e){var a=o[e];if(void 0!==a)return a.exports;var r=o[e]={id:e,loaded:!1,exports:{}};return d[e].call(r.exports,r,r.exports,f),r.loaded=!0,r.exports}f.m=d,f.c=o,e=[],f.O=(a,r,t,c)=>{if(!r){var d=1/0;for(i=0;i=c)&&Object.keys(f.O).every((e=>f.O[e](r[n])))?r.splice(n--,1):(o=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[r,t,c]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var c=Object.create(null);f.r(c);var d={};a=a||[null,r({}),r([]),r(r)];for(var o=2&t&&e;"object"==typeof o&&!~a.indexOf(o);o=r(o))Object.getOwnPropertyNames(o).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,f.d(c,d),c},f.d=(e,a)=>{for(var r in a)f.o(a,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((a,r)=>(f.f[r](e,a),a)),[])),f.u=e=>"assets/js/"+({48:"a94703ab",64:"935aabff",97:"f0206e4e",98:"a7bd4aaa",137:"29c75c2e",149:"3cf41b5d",154:"aa8a3533",235:"a7456010",267:"78616857",273:"a62eb1c6",282:"238f4925",326:"a035c0c6",378:"e3863396",401:"17896441",407:"5e4e568b",412:"fc4c4287",487:"9c2b1dc6",504:"91aaf6a8",520:"2e6ec07c",565:"780d955b",634:"c4f5d8e4",635:"14d479b9",644:"56bcc41a",647:"5e95c892",674:"e4349839",697:"e867472a",707:"ecd830af",736:"8ad691b8",737:"ea8a5bd8",742:"aba21aa0",765:"7d42a442",782:"43892b4c",840:"e128280a",849:"0058b4c6",863:"c9d982fa",878:"29e503cb",899:"a09c2993",940:"fd8bcec6",958:"5993bf36",969:"a22601d2"}[e]||e)+"."+{48:"31454a07",64:"ef913623",97:"37ff8ed4",98:"25091422",137:"793eeb58",149:"278b7135",154:"de6efa72",235:"46dd48b1",237:"2048eb5f",267:"91e548e6",273:"7a642dbd",282:"60445e1e",326:"0c7c0a35",378:"347cd942",401:"1f41db7e",407:"1a0df194",412:"7ce148f3",487:"1d5affa8",504:"25db91c0",520:"10d2d158",565:"3caa3d87",634:"5720f1ac",635:"09642028",644:"43f954ba",647:"163d8c0f",674:"00893545",697:"305c5cd8",707:"38a56850",736:"0346f191",737:"cb78217d",742:"e11d0eaf",765:"473ae2fc",782:"c29134b5",840:"1c382a11",849:"7b616161",863:"3a03bbec",878:"853207b2",899:"e7e9d57e",940:"2a47c95b",958:"dee37883",969:"896c68fe"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},c="unpackerrdox:",f.l=(e,a,r,d)=>{if(t[e])t[e].push(a);else{var o,n;if(void 0!==r)for(var b=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(s);var c=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),c&&c.forEach((e=>e(r))),a)return a(r)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),n&&document.head.appendChild(o)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"401",78616857:"267",a94703ab:"48","935aabff":"64",f0206e4e:"97",a7bd4aaa:"98","29c75c2e":"137","3cf41b5d":"149",aa8a3533:"154",a7456010:"235",a62eb1c6:"273","238f4925":"282",a035c0c6:"326",e3863396:"378","5e4e568b":"407",fc4c4287:"412","9c2b1dc6":"487","91aaf6a8":"504","2e6ec07c":"520","780d955b":"565",c4f5d8e4:"634","14d479b9":"635","56bcc41a":"644","5e95c892":"647",e4349839:"674",e867472a:"697",ecd830af:"707","8ad691b8":"736",ea8a5bd8:"737",aba21aa0:"742","7d42a442":"765","43892b4c":"782",e128280a:"840","0058b4c6":"849",c9d982fa:"863","29e503cb":"878",a09c2993:"899",fd8bcec6:"940","5993bf36":"958",a22601d2:"969"}[e]||e,f.p+f.u(e)},(()=>{var e={354:0,869:0};f.f.j=(a,r)=>{var t=f.o(e,a)?e[a]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var c=new Promise(((r,c)=>t=e[a]=[r,c]));r.push(t[2]=c);var d=f.p+f.u(a),o=new Error;f.l(d,(r=>{if(f.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var c=r&&("load"===r.type?"missing":r.type),d=r&&r.target&&r.target.src;o.message="Loading chunk "+a+" failed.\n("+c+": "+d+")",o.name="ChunkLoadError",o.type=c,o.request=d,t[1](o)}}),"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,r)=>{var t,c,d=r[0],o=r[1],n=r[2],b=0;if(d.some((a=>0!==e[a]))){for(t in o)f.o(o,t)&&(f.m[t]=o[t]);if(n)var i=n(f)}for(a&&a(r);b{"use strict";var e,a,r,t,c,d={},o={};function f(e){var a=o[e];if(void 0!==a)return a.exports;var r=o[e]={id:e,loaded:!1,exports:{}};return d[e].call(r.exports,r,r.exports,f),r.loaded=!0,r.exports}f.m=d,f.c=o,e=[],f.O=(a,r,t,c)=>{if(!r){var d=1/0;for(i=0;i=c)&&Object.keys(f.O).every((e=>f.O[e](r[n])))?r.splice(n--,1):(o=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[r,t,c]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var c=Object.create(null);f.r(c);var d={};a=a||[null,r({}),r([]),r(r)];for(var o=2&t&&e;"object"==typeof o&&!~a.indexOf(o);o=r(o))Object.getOwnPropertyNames(o).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,f.d(c,d),c},f.d=(e,a)=>{for(var r in a)f.o(a,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((a,r)=>(f.f[r](e,a),a)),[])),f.u=e=>"assets/js/"+({48:"a94703ab",64:"935aabff",97:"f0206e4e",98:"a7bd4aaa",137:"29c75c2e",149:"3cf41b5d",154:"aa8a3533",235:"a7456010",267:"78616857",273:"a62eb1c6",282:"238f4925",326:"a035c0c6",378:"e3863396",401:"17896441",407:"5e4e568b",412:"fc4c4287",487:"9c2b1dc6",504:"91aaf6a8",520:"2e6ec07c",565:"780d955b",634:"c4f5d8e4",635:"14d479b9",644:"56bcc41a",647:"5e95c892",674:"e4349839",697:"e867472a",707:"ecd830af",736:"8ad691b8",737:"ea8a5bd8",742:"aba21aa0",765:"7d42a442",782:"43892b4c",840:"e128280a",849:"0058b4c6",863:"c9d982fa",878:"29e503cb",899:"a09c2993",940:"fd8bcec6",958:"5993bf36",969:"a22601d2"}[e]||e)+"."+{48:"31454a07",64:"ef913623",97:"37ff8ed4",98:"25091422",137:"816fed9f",149:"278b7135",154:"de6efa72",235:"46dd48b1",237:"2048eb5f",267:"91e548e6",273:"7a642dbd",282:"60445e1e",326:"0c7c0a35",378:"347cd942",401:"1f41db7e",407:"1a0df194",412:"7ce148f3",487:"1d5affa8",504:"25db91c0",520:"10d2d158",565:"3caa3d87",634:"5720f1ac",635:"09642028",644:"43f954ba",647:"163d8c0f",674:"00893545",697:"305c5cd8",707:"38a56850",736:"0346f191",737:"cb78217d",742:"e11d0eaf",765:"473ae2fc",782:"fb42829f",840:"1c382a11",849:"36e12553",863:"3a03bbec",878:"853207b2",899:"e7e9d57e",940:"2a47c95b",958:"dee37883",969:"896c68fe"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},c="unpackerrdox:",f.l=(e,a,r,d)=>{if(t[e])t[e].push(a);else{var o,n;if(void 0!==r)for(var b=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(s);var c=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),c&&c.forEach((e=>e(r))),a)return a(r)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),n&&document.head.appendChild(o)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"401",78616857:"267",a94703ab:"48","935aabff":"64",f0206e4e:"97",a7bd4aaa:"98","29c75c2e":"137","3cf41b5d":"149",aa8a3533:"154",a7456010:"235",a62eb1c6:"273","238f4925":"282",a035c0c6:"326",e3863396:"378","5e4e568b":"407",fc4c4287:"412","9c2b1dc6":"487","91aaf6a8":"504","2e6ec07c":"520","780d955b":"565",c4f5d8e4:"634","14d479b9":"635","56bcc41a":"644","5e95c892":"647",e4349839:"674",e867472a:"697",ecd830af:"707","8ad691b8":"736",ea8a5bd8:"737",aba21aa0:"742","7d42a442":"765","43892b4c":"782",e128280a:"840","0058b4c6":"849",c9d982fa:"863","29e503cb":"878",a09c2993:"899",fd8bcec6:"940","5993bf36":"958",a22601d2:"969"}[e]||e,f.p+f.u(e)},(()=>{var e={354:0,869:0};f.f.j=(a,r)=>{var t=f.o(e,a)?e[a]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var c=new Promise(((r,c)=>t=e[a]=[r,c]));r.push(t[2]=c);var d=f.p+f.u(a),o=new Error;f.l(d,(r=>{if(f.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var c=r&&("load"===r.type?"missing":r.type),d=r&&r.target&&r.target.src;o.message="Loading chunk "+a+" failed.\n("+c+": "+d+")",o.name="ChunkLoadError",o.type=c,o.request=d,t[1](o)}}),"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,r)=>{var t,c,d=r[0],o=r[1],n=r[2],b=0;if(d.some((a=>0!==e[a]))){for(t in o)f.o(o,t)&&(f.m[t]=o[t]);if(n)var i=n(f)}for(a&&a(r);b Torrent Downloaders | Unpackerr Extracter - + diff --git a/docs/downloaders/usenet/index.html b/docs/downloaders/usenet/index.html index 27083bc..70a536a 100644 --- a/docs/downloaders/usenet/index.html +++ b/docs/downloaders/usenet/index.html @@ -4,7 +4,7 @@ Usenet Downloaders | Unpackerr Extracter - + diff --git a/docs/install/archlinux/index.html b/docs/install/archlinux/index.html index 26e51d2..438e28c 100644 --- a/docs/install/archlinux/index.html +++ b/docs/install/archlinux/index.html @@ -4,7 +4,7 @@ Arch Linux | Unpackerr Extracter - + diff --git a/docs/install/choosemethod/index.html b/docs/install/choosemethod/index.html index 957c607..5101f94 100644 --- a/docs/install/choosemethod/index.html +++ b/docs/install/choosemethod/index.html @@ -4,7 +4,7 @@ Choose Install Method | Unpackerr Extracter - + diff --git a/docs/install/compose/index.html b/docs/install/compose/index.html index 4e6a37d..5121994 100644 --- a/docs/install/compose/index.html +++ b/docs/install/compose/index.html @@ -4,7 +4,7 @@ Docker Compose | Unpackerr Extracter - + diff --git a/docs/install/configuration/index.html b/docs/install/configuration/index.html index 80c6680..03a77ad 100644 --- a/docs/install/configuration/index.html +++ b/docs/install/configuration/index.html @@ -4,15 +4,15 @@ Application Configuration | Unpackerr Extracter - +

Application Configuration

This is where to learn what each config item is, the default values for each item, and the name to use in an environment variable. -You should use the data here along with the data in the -example config file -to paint the full picture of how to configure Unpackerr.

+Expand the blue sections to see excerpts from the +example docker-compose.yml +and example config files.

Config