Skip to content

Commit

Permalink
Merge branch 'master' into notifiarr-profile-sync
Browse files Browse the repository at this point in the history
  • Loading branch information
TRaSH- authored Oct 25, 2024
2 parents da8c745 + 45cd1b5 commit af5c19a
Show file tree
Hide file tree
Showing 109 changed files with 167 additions and 96 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache dependencies
uses: actions/cache@v4.1.0
uses: actions/cache@v4.1.1
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
Expand Down Expand Up @@ -72,7 +72,7 @@ jobs:
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache dependencies
uses: actions/cache@v4.1.0
uses: actions/cache@v4.1.1
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
Expand Down
7 changes: 6 additions & 1 deletion CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,11 @@
<b><a href="https://github.com/Seros" style="color: #ffa500;">Seros</a></b>
</div>
<div style="flex: 1 1 20%; background-color: #1e2129; border: 1px solid #373a42; padding: 10px; text-align: center;">
<img src="https://avatars.githubusercontent.com/u/26818801?v=4&v=4" style="width: 50px; border-radius: 50%;" alt="Barophobia">
<br>
<b><a href="https://github.com/Barophobia" style="color: #ffa500;">Barophobia</a></b>
</div>
<div style="flex: 1 1 20%; background-color: #303850; border: 1px solid #373a42; padding: 10px; text-align: center;">
<img src="https://avatars.githubusercontent.com/u/48860738?v=4&v=4" style="width: 50px; border-radius: 50%;" alt="washedszn">
<br>
<b><a href="https://github.com/washedszn" style="color: #ffa500;">washedszn</a></b>
Expand All @@ -499,7 +504,7 @@
<br>
<b><a href="https://github.com/jonasgeiler" style="color: #ffa500;">jonasgeiler</a></b>
</div>
<div style="flex: 1 1 20%; background-color: #303850; border: 1px solid #373a42; padding: 10px; text-align: center;">
<div style="flex: 1 1 20%; background-color: #1e2129; border: 1px solid #373a42; padding: 10px; text-align: center;">
<img src="https://avatars.githubusercontent.com/u/9055441?v=4&v=4" style="width: 50px; border-radius: 50%;" alt="KaitoKid">
<br>
<b><a href="https://github.com/KaitoKid" style="color: #ffa500;">KaitoKid</a></b>
Expand Down
3 changes: 1 addition & 2 deletions docs/.pages
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ nav:
- Prowlarr
- Lidarr
- Bazarr
- File-and-Folder-Structure
- Downloaders
- Plex
- Guide-Sync
- Misc
- Hardlinks
- How-to-setup-for: Hardlinks/How-to-setup-for
- Glossary
4 changes: 2 additions & 2 deletions docs/Downloaders/NZBGet/Paths-and-Categories.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@

`Settings` => `PATHS`

![nzbget-settings-paths](/Hardlinks/images/nzbget-settings-paths.png)
![nzbget-settings-paths](/File-and-Folder-Structure/images/nzbget-settings-paths.png)

`Settings` => `CATEGORIES`

![nzbget-settings-categories](/Hardlinks/images/nzbget-settings-categories.png)
![nzbget-settings-categories](/File-and-Folder-Structure/images/nzbget-settings-categories.png)

{! include-markdown "../../../includes/downloaders/warning-path-location.md" !}

Expand Down
2 changes: 1 addition & 1 deletion docs/Downloaders/qBittorrent/How-to-add-categories.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This basic example is based on the use of docker images

Keep in mind the path are set up so it works with hardlinks and instant moves.

More info [HERE](/Hardlinks/Hardlinks-and-Instant-Moves/){:target="_blank" rel="noopener noreferrer"}
More info [HERE](/File-and-Folder-Structure/Hardlinks-and-Instant-Moves/){:target="_blank" rel="noopener noreferrer"}

!!! info

Expand Down
2 changes: 1 addition & 1 deletion docs/Downloaders/qBittorrent/Paths.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@

`Options` => `Downloads`

![qbt-options-downloads](/Hardlinks/images/qbt-options-downloads.png)
![qbt-options-downloads](/File-and-Folder-Structure/images/qbt-options-downloads.png)
7 changes: 7 additions & 0 deletions docs/File-and-Folder-Structure/.pages
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
nav:
- Home: index.md
- Hardlinks and Instant Moves: Hardlinks-and-Instant-Moves.md
- How To Set Up: How-to-set-up
- Examples: Examples.md
- Check if Hardlinks Are Working: Check-if-hardlinks-are-working.md
- Replace Copies With Hardlinks: Replace-copies-with-hardlinks.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,5 @@ It will list all files linked with the same inode number.
- In the command line type: `fsutil hardlink list c:\path\to\your\download\location\file.mkv`

It will list all hardlinked files.

--8<-- "includes/support.md"
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,5 @@
---

Big Thanks to [fryfrog](https://github.com/fryfrog){:target="\_blank" rel="noopener noreferrer"} for his [Docker Guide](https://wiki.servarr.com/docker-guide){:target="\_blank" rel="noopener noreferrer"} that we used as a basis for this guide.

--8<-- "includes/support.md"
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@
This guide consists of 4 sections.

1. This page with a short description.
1. [How to set up for](/Hardlinks/How-to-setup-for/) your installation method.
1. [Examples](/Hardlinks/Examples/) What you should use for your path settings in your used applications.
1. [Check if hardlinks are working](/Hardlinks/Check-if-hardlinks-are-working/)
2. [How to set up](/File-and-Folder-Structure/How-to-set-up/) for your installation method.
3. [Examples](/File-and-Folder-Structure/Examples/) What you should use for your path settings in your used applications.
4. [Check if hardlinks are working](/File-and-Folder-Structure/Check-if-hardlinks-are-working/)

So you want one of the following?

- Instant moves (Atomic-Moves) during import of the Starr Apps (useful when using Usenet)?
- You don't want to use twice the storage when using torrents. (hardlinks)?
- You want to perma-seed?

Then Continue to [How to set up for](/Hardlinks/How-to-setup-for/) your installation method.
Then Continue to [How to set up](/File-and-Folder-Structure/How-to-set-up/) for your installation method.

## FAQ

Expand Down Expand Up @@ -52,7 +52,7 @@ Then Continue to [How to set up for](/Hardlinks/How-to-setup-for/) your installa

[More info from Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Hard_link){:target="_blank" rel="noopener noreferrer"}

!!! warning "Don't forget to read the [Hardlinks limitations](/Hardlinks/Hardlinks-and-Instant-Moves/#hardlinks-limitations)"
!!! warning "Don't forget to read the [Hardlinks limitations](/File-and-Folder-Structure/Hardlinks-and-Instant-Moves/#hardlinks-limitations)"

### What are Instant Moves (Atomic Moves)

Expand All @@ -65,3 +65,5 @@ Then Continue to [How to set up for](/Hardlinks/How-to-setup-for/) your installa
??? question "**What are the `Starr Apps`?** - [Click to show/hide]"

Sonarr, Radarr, Lidarr, etc.

--8<-- "includes/support.md"
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
!!! tip

If you're new to dockers and want an easy setup, we suggest taking a look at [DockSTARTer](https://dockstarter.com/){:target="_blank" rel="noopener noreferrer"}.
We've also created a short guide [HERE](/Hardlinks/How-to-setup-for/Dockstarter/) where we explain the settings for the most used applications.
We've also created a short guide [HERE](/File-and-Folder-Structure/How-to-set-up/Dockstarter/) where we explain the settings for the most used applications.

The main goal of DockSTARTer is to make it quick and easy to get up and running with Docker.
You may choose to rely on DockSTARTer for various changes to your Docker system or use DockSTARTer as a stepping stone and learn to do more advanced configurations.
Expand All @@ -20,13 +20,13 @@

For example `/<path_to_data>/data`, or even `/data`.

{! include-markdown "../../../includes/hardlinks/folder-structure.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/folder-structure.md" !}

{! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/bad-path-suggestion.md" !}

{! include-markdown "../../../includes/hardlinks/breakdown-folder-structure-docker.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/breakdown-folder-structure-docker.md" !}

{! include-markdown "../../../includes/hardlinks/permissions.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/permissions.md" !}

## Docker-compose Example

Expand All @@ -44,6 +44,6 @@
--8<-- "includes/docker/docker-compose.yml"
```

{! include-markdown "../../../includes/hardlinks/docker-compose-commands.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/docker-compose-commands.md" !}

--8<-- "includes/support.md"
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ When that's all set then you will need to change the paths you're going to use i

`Settings` => `Media Management` => `Importing`

![sonarr-enable-hardlinks](/Hardlinks/images/sonarr-enable-hardlinks.png)
![sonarr-enable-hardlinks](/File-and-Folder-Structure/images/sonarr-enable-hardlinks.png)

`Settings` => `Media Management` => `Root Folders`

Expand All @@ -103,7 +103,7 @@ When that's all set then you will need to change the paths you're going to use i

`Settings` => `Media Management` => `Importing`

![radarr-enable-hardlinks](/Hardlinks/images/radarr-enable-hardlinks.png)
![radarr-enable-hardlinks](/File-and-Folder-Structure/images/radarr-enable-hardlinks.png)

`Settings` => `Media Management` => `Root Folders`

Expand Down
15 changes: 15 additions & 0 deletions docs/File-and-Folder-Structure/How-to-set-up/Native.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Native

!!! note

We're not going to explain how to install all the applications, but we will explain which folder structure we recommend.

---

{! include-markdown "../../../includes/file-and-folder-structure/folder-structure.md" !}

{! include-markdown "../../../includes/file-and-folder-structure/breakdown-folder-structure.md" !}

{! include-markdown "../../../includes/file-and-folder-structure/permissions.md" !}

--8<-- "includes/support.md"
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,9 @@ Let's create a good folder structure on the shares we use (`docker` and `data`).
The structure will look like this. You can of course edit this, but do this when you know what you are doing.
_We are using lowercase on all folders on purpose, being Linux is case-sensitive._

{! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/docker-tree-full.md" !}

{! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/bad-path-suggestion.md" !}

To create the folder structure for your media library and also for your preferred download client, run one or both of the following commands:

Expand Down Expand Up @@ -333,7 +333,7 @@ You will notice that all the images will be downloaded, and after that, the cont

---

**If you need help setting up the applications, look at the [Examples](/Hardlinks/Examples/) of how to set up the paths inside your applications.**
**If you need help setting up the applications, look at the [Examples](/File-and-Folder-Structure/Examples/) of how to set up the paths inside your applications.**

!!! warning

Expand All @@ -343,7 +343,7 @@ You will notice that all the images will be downloaded, and after that, the cont

Just don't use the GUI, only for information purposes !!!

{! include-markdown "../../../includes/hardlinks/docker-compose-commands.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/docker-compose-commands.md" !}

--8<-- "includes/support.md"

Expand All @@ -360,5 +360,7 @@ To fix this, you will need to add a Scheduled Task that executes at boot as the
??? question "Task bash command - [Click to show/hide]"

```bash
--8<-- "includes/hardlinks/docker-iptables-fix.sh"
--8<-- "includes/file-and-folder-structure/docker-iptables-fix.sh"
```

--8<-- "includes/support.md"
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ Regardless of the method, make sure that the device ends up with a `data` mount

Now that you have a `data` folder, you can follow the normal folder structure recommendations, such as the one below.

{! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/docker-tree-full.md" !}

These subfolders you need to create yourself using your preferred method. Set your permissions accordingly as well. If you use ACLs on the datasets you can replicate the usual 775/664 (UMASK 002) or 755/644 (UMASK 022) recommendation, but this guide only covers the use of basic permissions for mounting and expects the end user to fine-tune permissions via chmod, chown, and uid/gid/umask settings on the applications that will be utilizing the share.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Go to your dashboard and select `Shares` on the navigation bar, then choose `Add

On the host (unRAID) you will need to add `/mnt/user` before it. **So `/mnt/user/data`**

{! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/docker-tree-full.md" !}

_I'm using lower-case on all folders on purpose, being Linux is case-sensitive._

Expand Down Expand Up @@ -95,7 +95,7 @@ mkdir -p /mnt/user/data/{torrents/{tv,movies,music},media/{tv,movies,music}}

### Breakdown of the Folder Structure

{! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/bad-path-suggestion.md" !}

## Setting up the containers

Expand Down Expand Up @@ -127,7 +127,7 @@ qBittorrent, Deluge, ruTorrent

The reason why we use `/data/torrents/` for the torrent client is because it only needs access to the torrent data. In the torrent software settings, you’ll need to configure your categories/labels to utilize the right path for specific content. You can sort into sub-folders like `/data/torrents/{tv|movies|music}`.

{! include-markdown "../../../includes/hardlinks/docker-tree-torrents.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/docker-tree-torrents.md" !}

---

Expand All @@ -145,7 +145,7 @@ NZBGet or SABnzbd

The reason why we use `/data/usenet/` for the Usenet client is that it only needs access to the Usenet data. In the Usenet software settings, you’ll need to configure your paths to sort content into sub-folders like `/data/usenet/{tv|movies|music}`.

{! include-markdown "../../../includes/hardlinks/docker-tree-usenet.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/docker-tree-usenet.md" !}

---

Expand All @@ -163,7 +163,7 @@ Sonarr, Radarr and Lidarr

Sonarr, Radarr and Lidarr get access to everything because the download folder(s) and media folder will need to look like and be one mount, on the file system. Hard links will work properly and any moves will be atomic, rather than copying and deleting.

{! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/docker-tree-full.md" !}

---

Expand All @@ -181,7 +181,7 @@ Plex, Emby, JellyFin and Bazarr

Plex, Emby, JellyFin and Bazarr only need access to your media library, which can have any number of sub-folders (Movies, Kids Movies, TV, Documentary TV and/or Music).

{! include-markdown "../../../includes/hardlinks/docker-tree-media.md" !}
{! include-markdown "../../../includes/file-and-folder-structure/docker-tree-media.md" !}

---

Expand All @@ -191,7 +191,7 @@ Plex, Emby, JellyFin and Bazarr

### Examples how to set up your paths INSIDE your applications

**Don't forget to look at the [Examples](/Hardlinks/Examples/) of how to set up your paths INSIDE your applications.**
**Don't forget to look at the [Examples](/File-and-Folder-Structure/Examples/) of how to set up your paths INSIDE your applications.**

## Video Tutorial

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ After you create the base folders to use it's time to follow the #examples-how-t

At the moment, we do not have Windows-based screenshots for all of the apps, but they might be added later.

So, in the meantime, use the [Examples](/Hardlinks/Examples/) of how to setup your paths INSIDE your applications.
So, in the meantime, use the [Examples](/File-and-Folder-Structure/Examples/) of how to setup your paths INSIDE your applications.
However, for the paths, use the info provided below depending on whether you have a one-disk setup or a two-disk setup.

!!! warning "Linux used forward slash `/` and Windows uses backslash `\`<br>So if you see paths with a forward slash replace it with a backslash for Windows"
Expand Down
17 changes: 17 additions & 0 deletions docs/File-and-Folder-Structure/How-to-set-up/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# How To Set Up

In this section, you will find several how-to guides for installation of the Starr Apps.
This is all done in a way to achieve [Hardlinks and Instant Moves (Atomic-Moves)](/File-and-Folder-Structure/Hardlinks-and-Instant-Moves/).

Select your desired method of installation:

- [Docker](/File-and-Folder-Structure/How-to-set-up/Docker/)
- [Dockstarter](/File-and-Folder-Structure/How-to-set-up/Dockstarter/)
- [Native](/File-and-Folder-Structure/How-to-set-up/Native/)
- [Synology](/File-and-Folder-Structure/How-to-set-up/Synology/)
- [TrueNAS Core](/File-and-Folder-Structure/How-to-set-up/TrueNAS-Core/)
- TrueNAS Scale users can follow the same concepts as the Docker method, until someone provides a guide and is willing to maintain and give support for it in the Guide Discord.
- [Unraid](/File-and-Folder-Structure/How-to-set-up/Unraid/)
- [Windows](/File-and-Folder-Structure/How-to-set-up/Windows/)

--8<-- "includes/support.md"
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
23 changes: 23 additions & 0 deletions docs/File-and-Folder-Structure/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# File and Folder Structure

## Introduction

It is important that your media server has a well organised file and folder structure. Along with generally easier file and folder management, you will benefit from:

- Improved security, by only granting the appropriate applications and tools access to your files.
- [Hardlinks](/File-and-Folder-Structure/Hardlinks-and-instant-moves#what-are-hardlinks), so that the same file can appear in multiple places whilst only taking up the disk space of one copy.
- [Instant moves](/File-and-Folder-Structure/Hardlinks-and-instant-moves#what-are-instant-moves-atomic-moves) (also known as 'Atomic Moves') so that files can be moved to other parts of the file system instantaneously.

The first requirement is that all your media files and folders should be part of the same file system. That is, everything must be contained on a single physical or virtual drive. Second, all of your applications should have a consistent view of where your files and folders are - i.e., your files should appear in the same place to all of your applications.

We recommend setting up a file and folder structure on your host server that looks like this:

{! include-markdown "../../includes/file-and-folder-structure/docker-tree-full.md" !}

The `data` folder can be placed wherever you like. As an example, in Unraid, you would set up a share called `data`. This would then be accessible within Unraid's file system at `/mnt/user/data`.

If you are installing applications directly on the host system (natively), then they will already have visibility of that file and folder structure, assuming permissions are set correctly. If you are installing applications non-natively, for example via Docker, then each application should be granted access to the lowest level folder that is required whilst maintaining consistent pathing to the top level folder, which here is `data`. For example, a torrent client installed via Docker would have `/mnt/user/data/torrents` mapped to `/data/torrents`. This means that the download client would see the contents of the host's `/mnt/user/data/torrents` folder in the `/data/torrents` folder inside the container.

More detailed examples can be found in the [How To Set Up](/File-and-Folder-Structure/How-to-set-up/) section.

--8<-- "includes/support.md"
2 changes: 1 addition & 1 deletion docs/Glossary/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ A general term that collectively refers to both [Seeders](#seeder) and [Leechers

### Perma-Seed

Seeding your torrents permanently ("forever"). Most often this is done in conjunction with [hard linked](/Hardlinks/Hardlinks-and-Instant-Moves/) files, which allows files to 'exist' in two places without taking up any additional hard disk space.
Seeding your torrents permanently ("forever"). Most often this is done in conjunction with [hard linked](/File-and-Folder-Structure/Hardlinks-and-Instant-Moves/) files, which allows files to 'exist' in two places without taking up any additional hard disk space.

### [Prowlarr](../Prowlarr/index.md)

Expand Down
6 changes: 0 additions & 6 deletions docs/Hardlinks/.pages

This file was deleted.

Loading

0 comments on commit af5c19a

Please sign in to comment.