Merge branch 'master' into notifier

pull/34/head
nitsua 4 years ago committed by GitHub
commit 302bcbc483
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 10

@ -6,7 +6,7 @@ jobs:
editorconfig-checker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v2.3.4
- name: editorconfig-checker
run: |
docker run --rm -v ${GITHUB_WORKSPACE}:/check mstruebing/editorconfig-checker
@ -14,7 +14,7 @@ jobs:
markdownlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v2.3.4
- name: markdownlint
run: |
find ~+ ${github_workspace} -name '*.md' | xargs docker run --rm -v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} markdownlint/markdownlint -r ~MD013,~MD033,~MD034,~MD046
@ -22,7 +22,7 @@ jobs:
yamllint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v2.3.4
- name: yamllint
run: |
find ~+ ${github_workspace} -name '*.yaml' -o -name '*.yml' | xargs docker run --rm -v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} peterdavehello/yamllint yamllint -d '{extends: default, rules: {document-start: {present: false}, line-length: disable}}'

@ -10,7 +10,9 @@ jobs:
name: Deploy docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- uses: actions/setup-python@v2.1.4
with:

@ -30,7 +30,7 @@ First we're going to visit the [Discord Notifier](https://discordnotifier.com/in
## Profile
After you logged in you will be redirected to your profile screen where you need to do a few things.
After you have logged in, you will be redirected to your profile screen.
![image-20201107184811997](images/image-20201107184811997.png)
@ -44,7 +44,7 @@ After you logged in you will be redirected to your profile screen where you need
## Notification Setup
Here you will be able to setup the following things:
Here, you can setup the following items:
- Notifications Settings => Setup which notifications you want to receive.
- Discord Settings => Setup your discord channels and your reactions and invite the bot into your channel.
@ -157,10 +157,10 @@ This section exist of 2 parts.
First we're going to download the emoji's and you can do that in 2 ways.
1. One by One - Right click -> save as for these emoji images.
1. 1 at a time - Right click -> Save As... - for these emoji images to some location on your computer.
1. Pack Download - Click [here](https://discordnotifier.com/setup.php?grab=reactions){:target="_blank"} to download a zip of all the current reaction images.
For this Example we will be using the Pack Download, that you need to unpack to your computer and then add them to your Discord Server
For this example, we will be using Pack Download. You'll need download the file and then unpack it somewhere on your computer. After which, you can then add the emoji's to your Discord Server easily.
How to add your own Emoji's => [LINK](https://support.discord.com/hc/en-us/articles/360036479811-Custom-Emojis){:target="_blank"}
@ -170,7 +170,7 @@ After you've added them to your Discord Server it's time to get the ID's from yo
\:emoji_name:
```
??? summary "Example"
??? example "Example"
![image-20201108092738752](images/image-20201108092738752.png)
What results in to.
@ -192,7 +192,7 @@ Do this for all the other boxes also including your Trackers/Indexers.
1. Paste here the the emoji ID.
1. The actual indexer name you're using in Sonarr/Radarr.
??? summary "Example"
??? example "Example"
![image-20201108094627415](images/image-20201108094627415.png)
@ -217,11 +217,11 @@ This is where we add all this to your *arr and Plex.
### Radarr, Readarr and Lidarr
Radarr, Readarr and Lidarr supports Discord Notifier native so that's a easy one to add.
Radarr, Readarr and Lidarr supports Discord Notifier natively so that's an easy one to add.
`Settings` => `Connect` => click on ![image-20201108174654550.png](images/image-20201108174654550.png) and select `Discord Notifier` add your API key and you're done.
??? summary "Radarr Example"
??? example "Radarr Example"
In Radarr go to `Settings` => `Connect` => Click on ![image-20201108174654550](images/image-20201108174654550.png) and select `DiscordNotifier.com`.
![image-20201108154540683](images/image-20201108154540683.png)
@ -245,7 +245,7 @@ That's why we're going to use the webhook method.
`Settings` => `Connect` > Click on ![image-20201108174654550.png](images/image-20201108174654550.png) and select `Webhook`.
Add the following info.
Add the following info:
**Name**: Discord Notifier
@ -255,7 +255,7 @@ Add the following info.
Click **Save**
??? summary "Sonarr Example"
??? example "Sonarr Example"
`Settings` => `Connect` > Click on ![image-20201108174654550.png](images/image-20201108174654550.png) and select `Webhook`.
@ -282,11 +282,11 @@ For Bazarr you need to make use of JSON method.
On the top click on ![image-20201108191244845](images/image-20201108191244845.png) `Edit` icon and Enable the notification type.
Add the JSON URL that you can copy/paste from the integrations page.
Add the JSON URL that you copy/pasted from the integrations page.
Scroll up and save
??? summary "Bazarr Example"
??? example "Bazarr Example"
`Settings` => `Notifications` => and select`JSON`
@ -299,7 +299,7 @@ Scroll up and save
![image-20201108190148938](images/image-20201108190148938.png)
1. Enable the JSON Notification.
2. Add the JSON URL that you can copy/paste from the integrations page.
2. Add the JSON URL that you copy/pasted from the integrations page.
3. Click on `Test` to see if it works.
4. If everything is correct click on `Ok`
@ -315,7 +315,7 @@ Scroll up and save
`Settings` => `Webhooks` => click on `ADD WEBHOOK` and add the URL that you can copy/paste from the integrations page and click on `SAVE CHANGES`
??? summary "Plex Example"
??? example "Plex Example"
`Settings` => `Webhooks` => click on `ADD WEBHOOK`
@ -372,3 +372,4 @@ On the top of the integrations page you will now have the ability to test your s
![image-20201108195808555](images/image-20201108195808555.png)
Click on the icons to test your notifications.
After going through this tutorial and you still arent getting notifications in your discord channel from the respective logos, then retry the steps outlined above. If there is still an issue, try asking in the Discord Notifier [discord channel](https://discord.gg/AURf8Yz){:target="_blank"} for additional support.

@ -20,7 +20,7 @@ sudo docker run --rm \
CONTAINER_NAME CONTAINER_NAME2
```
??? summary "Example:"
??? example "Example:"
```bash
sudo docker run --rm \

@ -0,0 +1,395 @@
# How To Set Up Hardlinks and Atomic-Moves
## Description
!!! info
If youre wondering why hard links arent working or why a simple move is taking far longer than it should.
Here we will try to explains it.
The paths you use on the inside matter. Because of how Dockers volumes work, passing in two or three volumes such as the commonly suggested `/tv`, `/movies` and `/downloads` makes them look like two or three file systems, even if they arent. This means hard links wont work and instead of an instant move, a slower and more I/O intensive copy + delete is used.
So you want one of the following ?
- Instant moves (Atomic-Moves) during import of the *arr (useful when using Usenet)?
- You don't want to use twice the storage when using torrents. (hardlinks)?
- You want to perma seed?
Then keep reading.
### FAQ
??? faq "FAQ"
1. Q: **What are the `*arr`?**
- Sonarr, Radarr, Lidarr, etc.
1. Q: **What are hardlinks?**
- Short answer is "having a file in multiple folders" without using up your storage, [Long Answer](https://medium.com/@krisbredemeier/the-difference-between-hard-links-and-soft-or-symbolic-links-780149244f7d){:target="_blank"}.
1. Q: **What's Atomic Moves?**
- A real move and not a copy file from download folder to media folder and then delete file from download folder.
------
### How to Setup for
- [DockSTARTer](#dockstarter)
- [UnRaid](#unraid)
#### DockSTARTer
??? summary "DockSTARTer"
!!! note
I'm using the default paths in this example, and will keep the other paths unchanged so nothing will break if you make a mistake.
We're going to use a mounted drive that we're going to use as storage for downloads and your media.
In this example the mounted drive will be mounted to `/mnt/` with the following folder structure.
```
storage
├── downloads
| ├── torrents
│ | ├── movies
│ | ├── music
│ | └── tv
| └── usenet
│ ├── movies
│ ├── music
│ └── tv
└── medialibrary
├── movies
├── music
└── tv
```
##### Step 1
To accomplisch this we need to change first a few paths in your `.env` (Usually `~/.docker/compose/.env`)
```yaml
# Global Settings
COMPOSE_HTTP_TIMEOUT=60
DOCKERCONFDIR=~/.config/appdata
DOCKERGID=999
DOCKERHOSTNAME=DockSTARTer
DOCKERLOGGING_MAXFILE=10
DOCKERLOGGING_MAXSIZE=200k
DOCKERSTORAGEDIR=/mnt/storage
PGID=1000
PUID=1000
TZ=America/Chicago
# DEPRECATED Settings (will be removed at the end of 2020)
DOCKERSHAREDDIR=~/shared
DOWNLOADSDIR=/mnt/downloads
MEDIADIR_AUDIOBOOKS=/mnt/medialibrary/audiobooks
MEDIADIR_BOOKS=/mnt/medialibrary/books
MEDIADIR_COMICS=/mnt/medialibrary/comics
MEDIADIR_MOVIES=/mnt/medialibrary/movies
MEDIADIR_MUSIC=/mnt/medialibrary/music
MEDIADIR_TV=/mnt/medialibrary/tv
```
##### Step 2
When that's all set then you will need to change the paths you're going to use in the containers from:
`/downloads` => `/storage/downloads`
`/audiobooks` => `/storage/medialibrary/audiobooks`
`/books` => `/storage/medialibrary/books`
`/comics` => `/storage/medialibrary/comics`
`/movies` => `/storage/medialibrary/movies`
`/music` => `/storage/medialibrary/music`
`/tv` => `/storage/medialibrary/tv`
#### UnRaid
??? summary "UnRaid"
!!! note
The first thing you need to do is forget the suggested paths from the Spaceinvader One YouTube Tutorials,
and don't use the predefined paths from the unraid templates.
(Spaceinvader One YouTube guides are great to learn how to start with unraid or how to setup certain applications, and yes I did and still do use them. Probably the main reason why he's using those path is because they are predefined in the template)
!!! attention
To get Hardlinks and Atomic-Moves working with Unraid you will need to make use of **ONE** share with subfolders.
##### Create the main share
For this example I'm using my own setup and preferred share `data`.
Go to your dashboard and on the top select `shares` select `add share` .
[![main-share](images/image-20201111225320772.png)](https://raw.githubusercontent.com/TRaSH-/Guides/master/docs/Misc/images/image-20201111225320772.png){:target="_blank"}
1. use `data`
1. if you got a cache drive and want to make use of it put it on `Yes` or keep it disabled (Hardlinks will stay in tact if you're using the cache)
1. click on `ADD SHARE`
!!! note
Keep in mind regarding the use of the Cache drive, The mover can't move files that are in use, like when `seeding` with torrents. You will need to shutdown your client or stop/pause the torrents so the mover can move them to your Array.
With Usenet you won't have any issues.
##### Folder Structure
On the host (Unraid) you will need to add /mnt/user before it. **So /mnt/user/data**
The `data` folder has sub-folders for `torrents` and `usenet` and each of these have sub-folders for `tv`, `movie` and `music` downloads to keep things neat. The `media` folder has nicely named `TV`, `Movies` and `Music` sub-folders, this is your library and what youd pass to Plex, Emby or JellyFin.
These subfolders you need to create your self, you can use krusader or winscp to create them or any other way you prefer.
```none
data
├── torrents
│ ├── movies
│ ├── music
│ └── tv
├── usenet
│ ├── movies
│ ├── music
│ └── tv
└── media
├── movies
├── music
└── tv
```
*I'm using lower case on all folder on purpose, being Linux is case sensitive.*
##### Setting up the containers
After you created all the needed folders it's time to setup the paths in the docker containers.
Go to your dashboard and select your docker container you want to edit or if you're starting fresh add the docker containers you want to use or prefer.
Unraid makes it actually pretty clear what's the Host Path and what's the Container Path.
`Container Path:` => The path that will be used inside the container.
`Host Path:` => The path on your Unraid Server (The Host).
##### Torrent clients
qBittorrent, Deluge, ruTorrent
![unraid-torrent-clients](images/image-20201112201012153.png)
`Container Path:` => `/data/torrent`
`Host Path`: => `/mnt/user/data/torrents`
!!! info
The reason why we use `/data/torrent` for the torrent client is because it only needs access to the torrent files. In the torrent software settings, youll need to reconfigure paths and you can sort into sub-folders like/data/torrents/{tv|movies|music}.
```none
data
└── torrents
├── movies
├── music
└── tv
```
##### Usenet clients
NZBGet or SABnzbd
![unraid-usenet-client](images/image-20201112203013210.png)
`Container Path:` => `/data/usenet`
`Host Path:` => `/mnt/user/data/usenet`
!!! info
The reason why we use `/data/usenet` for the usenet client is because it only needs access to the usenet files. In the usenet software settings, youll need to reconfigure paths and you can sort into sub-folders like/data/usenet/{tv|movies|music}.
```none
data
└── usenet
├── movies
├── music
└── tv
```
##### The arr(s)
Sonarr, Radarr and Lidarr
![unraid-arr](images/image-20201112204406692.png)
`Container Path:` => `/data`
`Host Path:` => `/mnt/user/data/`
!!! info
Sonarr, Radarr and Lidarr get's access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete.
```none
data
├── torrents
│ ├── movies
│ ├── music
│ └── tv
├── usenet
│ ├── movies
│ ├── music
│ └── tv
└── media
├── movies
├── music
└── tv
```
##### Media Server
Plex, Emby, JellyFin and Bazarr
![unraid-media-server](images/image-20201112205218382.png)
`Container Path:` => `/data/media`
`Host Path:` => `/mnt/user/data/media/`
!!! info
Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
```none
data
└── media
├── movies
├── music
└── tv
```
##### Final Result
[![final-results](images/image-20201112210400294.png)](https://raw.githubusercontent.com/TRaSH-/Guides/master/docs/Misc/images/image-20201112210400294.png){:target="_blank"}
------
### Examples
!!! info
Pick one path layout and use it for all of them.
It doesn't matter if you prefer to use `/data`, `/shared`, `/storage` or whatever.
The screenshots in the examples are using the following root path `/storage`
- [Sonarr](#sonarr)
- [Radarr](#radarr)
- [SABnzbd](#sabnzbd)
- [NZBGet](#nzbget)
- [qBittorrent](#qbittorent)
- [Deluge](#deluge)
- [ruTorrent](#rutorrent)
#### Sonarr
??? example "Sonarr Examples"
`Settings` => `Media Managemen` => `Root Folders`
![sonarr-root-folder](images/image-20201111190131842.png)
`Series` => `Add New`
![image-20201111190300091](images/image-20201111190300091.png)
![image-20201111184955092](images/image-20201111184955092.png)
#### Radarr
??? example "Radarr Examples"
`Settings` => `Media Managemen` => `Root Folders`
![radarr-root-folder](images/image-20201111185454928.png)
`Movies` => `Add New`
![image-20201111185158391](images/image-20201111185158391.png)
![image-20201111185304391](images/image-20201111185304391.png)
#### SABnzbd config
??? example "SABnzbd Examples"
`SABnzbd config` => `Folders`
![sabnzbd-folders](images/image-20201111190431670.png)
`SABnzbd config` => `Categories`
![sabnzbd-categories](images/image-20201111190616235.png)
#### NZBGet
??? example "NZBGet Examples"
`Settings` => `PATHS`
![settings-paths](images/image-20201111191413616.png)
`Settings` => `CATEGORIES`
![settings-categories](images/image-20201111191615112.png)
#### qBittorrent
??? example "qBittorrent Examples"
`Options` => `Downloads`
![options-downloads](images/image-20201111191744466.png)
#### Deluge
??? example "Deluge Example"
`Preferences` => `Downloads`
![preferences-downloads](images/image-20201111191831583.png)
#### ruTorrent
??? example "ruTorrent Examples"
`../config/rtorrent/config/rtorrent.rc` (path to your appdata)
![rtorrent.rc](images/image-20201111201032265.png)
`Settings` => `Downloads`
![settings-downloads](images/image-20201111202759459.png)
`Settings` => `Autotools`
![settings-autotools](images/image-20201111202945331.png)
------
Big Thnx to [fryfrog](https://github.com/fryfrog){:target="_blank"} for his [Docker Guide](https://wiki.servarr.com/Docker_Guide){:target="_blank"} that I used as basis for this guide.

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

@ -32,6 +32,10 @@ markdown_extensions:
plugins:
- search
- git-revision-date-localized:
type: timeago
locale: en
fallback_to_build_date: false
- awesome-pages
- macros:
j2_block_start_string: "[[%"

@ -3,4 +3,5 @@ mkdocs-material>=6.1.0
pymdown-extensions>=3.3.2
mkdocs-macros-plugin>=0.4.18
mkdocs-awesome-pages-plugin>=2.4.0
mkdocs-redirects>=1.0.1
mkdocs-redirects>=1.0.1
mkdocs-git-revision-date-localized-plugin>=0.7.3

Loading…
Cancel
Save