mirror of
https://github.com/funkypenguin/geek-cookbook/
synced 2025-12-13 01:36:23 +00:00
Update Traefik Forward Auth for v2 (#169)
This commit is contained in:
@@ -14,18 +14,29 @@ This recipe presents a method to combine these tools into a single swarm deploym
|
||||
|
||||
Tools included in the AutoPirate stack are:
|
||||
|
||||
* **[SABnzbd](http://sabnzbd.org)** : downloads data from usenet servers based on .nzb definitions
|
||||
* **[NZBGet](https://nzbget.net/)** : downloads data from usenet servers based on .nzb definitions, but written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources (_this is a popular alternative to SABnzbd_)
|
||||
* **[RTorrent](https://github.com/rakshasa/rtorrent/wiki)** is a CLI-based torrent client, which when combined with **[ruTorrent](https://github.com/Novik/ruTorrent)** becomes a powerful and fully browser-managed torrent client. (_Yes, it's not Usenet, but Sonarr/Radarr will let fulfill your watchlist using either Usenet **or** torrents, so it's worth including_)
|
||||
* **[NZBHydra](https://github.com/theotherp/nzbhydra)** : acts as a "meta-indexer", so that your downloading tools (_radarr, sonarr, etc_) only need to be setup for a single indexes. Also produces interesting stats on indexers, which helps when evaluating which indexers are performing well.
|
||||
* **[NZBHydra2](https://github.com/theotherp/nzbhydra2)** : is a high-performance rewrite of the original NZBHydra, with extra features. While still in beta, this NZBHydra2 will eventually supercede NZBHydra
|
||||
* **[Sonarr](https://sonarr.tv)** : finds, downloads and manages TV shows
|
||||
* **[Radarr](https://radarr.video)** : finds, downloads and manages movies
|
||||
* **[Mylar](https://github.com/evilhero/mylar)** : finds, downloads and manages comic books
|
||||
* **[Headphones](https://github.com/rembo10/headphones)** : finds, downloads and manages music
|
||||
* **[Lazy Librarian](https://github.com/itsmegb/LazyLibrarian)** : finds, downloads and manages ebooks
|
||||
* **[Ombi](https://github.com/tidusjar/Ombi)** : provides an interface to request additions to a [Plex](/recipes/plex/)/[Emby](/recipes/emby/)/[Jellyfin](/recipes/jellyfin/) library using the above tools
|
||||
* **[Jackett](https://github.com/Jackett/Jackett)** : Provides an local, caching, API-based interface to torrent trackers, simplifying the way your tools search for torrents.
|
||||
* [SABnzbd][sabnzbd] is the workhorse. It takes `.nzb` files as input (_manually or from [Sonarr](/recipes/autopirate/sonarr/), [Radarr](/recipes/autopirate/radarr/), etc_), then connects to your chosen Usenet provider, downloads all the individual binaries referenced by the .nzb, and then tests/repairs/combines/uncompresses them all into the final result - media files, to be consumed by [Plex](/recipes/plex), [Emby](/recipes/emby/), [Komga](/recipes/komga/), [Calibre-Web](/recipes/calibre-web/), etc.
|
||||
|
||||
* [NZBGet][nzbget] downloads data from usenet servers based on .nzb definitions. Like [SABnzbd][sabnzbd], but written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources (_this is a popular alternative to SABnzbd_)
|
||||
|
||||
* [RTorrent][rtorrent] is a popular CLI-based bittorrent client, and [ruTorrent](https://github.com/Novik/ruTorrent) is a powerful web interface for rtorrent. (_Yes, it's not Usenet, but Sonarr/Radarr will let fulfill your watchlist using either Usenet **or** torrents, so it's worth including_)
|
||||
|
||||
* [NZBHydra][nzbhydra] is a meta search for NZB indexers. It provides easy access to a number of raw and newznab based indexers. You can search all your indexers from one place and use it as indexer source for tools like [Sonarr][sonarr] or [Radarr][radarr].
|
||||
|
||||
* [Sonarr][sonarr] finds, downloads and manages TV shows
|
||||
|
||||
* [Radarr][radarr] finds, downloads and manages movies
|
||||
|
||||
* [Lidarr][lidarr] is an automated music downloader for NZB and Torrent. It performs the same function as [Headphones][headphones], but is written using the same(ish) codebase as [Radarr][radarr] and [Sonarr](/recipes/autopirate/sonarr). It's blazingly fast, and includes beautiful album/artist art. Lidarr supports [SABnzbd](/recipes/autopirate/sabnzbd/), [NZBGet](/recipes/autopirate/nzbget/), Transmission, µTorrent, Deluge and Blackhole (_just like Sonarr / Radarr_)
|
||||
|
||||
* [Mylar][mylar] is a tool for downloading and managing digital comic books / "graphic novels"
|
||||
|
||||
* [Headphones][headphones] is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, µTorrent, Deluge and Blackhole.
|
||||
|
||||
* [Lazy Librarian][lazylibrarian] is a tool to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info.
|
||||
|
||||
* [Ombi][ombi] provides an interface to request additions to a [Plex][plex]/[Emby][emby]/[Jellyfin][jellyfin] library using the above tools
|
||||
|
||||
* [Jackett][jackett] works as a proxy server: it translates queries from apps (*[Sonarr][sonarr], [Radarr][radarr], [Mylar][mylar], etc*) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software.
|
||||
|
||||
Since this recipe is so long, and so many of the tools are optional to the final result (_i.e., if you're not interested in comics, you won't want Mylar_), I've described each individual tool on its own sub-recipe page (_below_), even though most of them are deployed very similarly.
|
||||
|
||||
@@ -105,21 +116,5 @@ networks:
|
||||
````
|
||||
|
||||
--8<-- "reference-networks.md"
|
||||
|
||||
#### Assemble the tools..
|
||||
|
||||
Now work your way through the list of tools below, adding whichever tools your want to use, and finishing with the **end** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd/)
|
||||
* [NZBGet](/recipes/autopirate/nzbget/)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* [Mylar](/recipes/autopirate/mylar/)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* [Headphones](/recipes/autopirate/headphones/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
@@ -9,9 +9,9 @@
|
||||
|
||||
## Inclusion into AutoPirate
|
||||
|
||||
To include Headphones in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
To include Headphones in your [AutoPirate][autopirate] stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
````
|
||||
```yaml
|
||||
headphones:
|
||||
image: linuxserver/headphones:latest
|
||||
env_file : /var/data/config/autopirate/headphones.env
|
||||
@@ -29,43 +29,24 @@ headphones_proxy:
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:headphones.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://headphones:8181
|
||||
-redirect-url=https://headphones.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
````
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:headphones.example.com
|
||||
- traefik.port=8181
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.headphones.rule=Host(`headphones.example.com`)"
|
||||
- "traefik.http.routers.headphones.entrypoints=https"
|
||||
- "traefik.http.services.headphones.loadbalancer.server.port=8181"
|
||||
- "traefik.http.routers.headphones.middlewares=forward-auth"
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
* [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* [Mylar](https://github.com/evilhero/mylar)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* Headphones (this page)
|
||||
* [Lidarr](/recipes/autopirate/lidarr/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
@@ -15,7 +15,7 @@ Heimdall provides a single URL to manage access to all of your autopirate tools,
|
||||
|
||||
To include Heimdall in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
```
|
||||
```yaml
|
||||
heimdall:
|
||||
image: linuxserver/heimdall:latest
|
||||
env_file: /var/data/config/autopirate/heimdall.env
|
||||
@@ -24,58 +24,28 @@ To include Heimdall in your [AutoPirate](/recipes/autopirate/) stack, include th
|
||||
- /var/data/heimdall:/config
|
||||
networks:
|
||||
- internal
|
||||
|
||||
heimdall_proxy:
|
||||
image: funkypenguin/oauth2_proxy:latest
|
||||
env_file : /var/data/config/autopirate/heimdall.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:heimdall.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://heimdall:80
|
||||
-redirect-url=https://heimdall.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:heimdall.example.com
|
||||
- traefik.port=80
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.heimdall.rule=Host(`heimdall.example.com`)"
|
||||
- "traefik.http.routers.heimdall.entrypoints=https"
|
||||
- "traefik.http.services.heimdall.loadbalancer.server.port=80"
|
||||
- "traefik.http.routers.heimdall.middlewares=forward-auth"
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
- [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
- [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
- [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
- [Sonarr](/recipes/autopirate/sonarr/)
|
||||
- [Radarr](/recipes/autopirate/radarr/)
|
||||
- [Mylar](/recipes/autopirate/mylar/)
|
||||
- [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
- [Headphones](/recipes/autopirate/headphones)
|
||||
- [Lidarr](/recipes/autopirate/lidarr/)
|
||||
- [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
- [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
- [Ombi](/recipes/autopirate/ombi/)
|
||||
- [Jackett](/recipes/autopirate/jackett/)
|
||||
- Heimdall (this page)[^2]
|
||||
- [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
[^2:] The inclusion of Heimdall was due to the efforts of @gkoerk in our [Discord server](http://chat.funkypenguin.co.nz). Thanks gkoerk!
|
||||
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
|
||||
[^2:] The inclusion of Heimdall was due to the efforts of @gkoerk in our [Discord server](http://chat.funkypenguin.co.nz). Thanks gkoerk!
|
||||
|
||||
@@ -3,7 +3,7 @@ This is not a complete recipe - it's a component of the [autopirate](/recipes/au
|
||||
|
||||
# Jackett
|
||||
|
||||
[Jackett](https://github.com/Jackett/Jackett) works as a proxy server: it translates queries from apps (Sonarr, Radarr, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software.
|
||||
[Jackett](https://github.com/Jackett/Jackett) works as a proxy server: it translates queries from apps (*[Sonarr][sonarr], [Radarr][radarr], [Mylar][mylarr], etc*) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software.
|
||||
|
||||
This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.
|
||||
|
||||
@@ -13,7 +13,7 @@ This allows for getting recent uploads (like RSS) and performing searches. Jacke
|
||||
|
||||
To include Jackett in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
```
|
||||
```yaml
|
||||
jackett:
|
||||
image: linuxserver/jackett:latest
|
||||
env_file : /var/data/config/autopirate/jackett.env
|
||||
@@ -21,53 +21,27 @@ jackett:
|
||||
- /var/data/autopirate/jackett:/config
|
||||
networks:
|
||||
- internal
|
||||
|
||||
jackett_proxy:
|
||||
image: a5huynh/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/jackett.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:jackett.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://jackett:9117
|
||||
-redirect-url=https://jackett.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:jackett.example.com
|
||||
- traefik.port=9117
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.jackett.rule=Host(`jackett.example.com`)"
|
||||
- "traefik.http.routers.jackett.entrypoints=https"
|
||||
- "traefik.http.services.jackett.loadbalancer.server.port=9117"
|
||||
- "traefik.http.routers.jackett.middlewares=forward-auth"
|
||||
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
- [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
- [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
- [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
- [Sonarr](/recipes/autopirate/sonarr/)
|
||||
- [Radarr](/recipes/autopirate/radarr/)
|
||||
- [Mylar](/recipes/autopirate/mylar/)
|
||||
- [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
- [Headphones](/recipes/autopirate/headphones)
|
||||
- [Lidarr](/recipes/autopirate/lidarr/)
|
||||
- [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
- [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
- [Ombi](/recipes/autopirate/ombi/)
|
||||
- Jackett (this page)
|
||||
- [Heimdall](/recipes/autopirate/heimdall/)
|
||||
- [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
@@ -15,9 +15,9 @@
|
||||
|
||||
## Inclusion into AutoPirate
|
||||
|
||||
To include LazyLibrarian in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
To include LazyLibrarian in your [AutoPirate][autopirate] stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
````
|
||||
```yaml
|
||||
lazylibrarian:
|
||||
image: linuxserver/lazylibrarian:latest
|
||||
env_file : /var/data/config/autopirate/lazylibrarian.env
|
||||
@@ -26,28 +26,24 @@ lazylibrarian:
|
||||
- /var/data/media:/media
|
||||
networks:
|
||||
- internal
|
||||
|
||||
lazylibrarian_proxy:
|
||||
image: a5huynh/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/lazylibrarian.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:lazylibrarian.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://lazylibrarian:5299
|
||||
-redirect-url=https://lazylibrarian.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:lazylibrarian.example.com
|
||||
- traefik.port=5299
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.lazylibrarian.rule=Host(`lazylibrarian.example.com`)"
|
||||
- "traefik.http.routers.lazylibrarian.entrypoints=https"
|
||||
- "traefik.http.services.lazylibrarian.loadbalancer.server.port=5299"
|
||||
- "traefik.http.routers.lazylibrarian.middlewares=forward-auth"
|
||||
|
||||
calibre-server:
|
||||
image: regueiro/calibre-server
|
||||
@@ -56,31 +52,10 @@ calibre-server:
|
||||
networks:
|
||||
- internal
|
||||
|
||||
````
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
* [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* [Mylar](https://github.com/evilhero/mylar)
|
||||
* Lazy Librarian (this page)
|
||||
* [Headphones](/recipes/autopirate/headphones)
|
||||
* [Lidarr](/recipes/autopirate/lidarr/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
[^2]: The calibre-server container co-exists within the Lazy Librarian (LL) containers so that LL can automatically add a book to Calibre using the calibre-server interface. The calibre library can then be properly viewed using the [calibre-web](/recipes/calibre-web) recipe.
|
||||
|
||||
--8<-- "recipe-footer.md"
|
||||
[^2]: The calibre-server container co-exists within the Lazy Librarian (LL) containers so that LL can automatically add a book to Calibre using the calibre-server interface. The calibre library can then be properly viewed using the [calibre-web](/recipes/calibre-web) recipe.
|
||||
@@ -13,63 +13,35 @@ hero: AutoPirate - A fully-featured recipe to automate finding, downloading, and
|
||||
|
||||
To include Lidarr in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
````
|
||||
lidarr:
|
||||
image: linuxserver/lidarr:latest
|
||||
env_file : /var/data/config/autopirate/lidarr.env
|
||||
volumes:
|
||||
- /var/data/autopirate/lidarr:/config
|
||||
- /var/data/media:/media
|
||||
networks:
|
||||
- internal
|
||||
````yaml
|
||||
lidarr:
|
||||
image: linuxserver/lidarr:latest
|
||||
env_file: /var/data/config/lidarr/lidarr.env
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/data/media:/media
|
||||
- /var/data/lidarr:/config
|
||||
deploy:
|
||||
replicas: 1
|
||||
labels:
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
|
||||
lidarr_proxy:
|
||||
image: a5huynh/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/lidarr.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:lidarr.example.com
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://lidarr:8181
|
||||
-redirect-url=https://lidarr.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:lidarr.example.com
|
||||
- traefik.port=8686
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.lidarr.rule=Host(`lidarr.example.com`)"
|
||||
- "traefik.http.routers.lidarr.entrypoints=https"
|
||||
- "traefik.http.services.lidarr.loadbalancer.server.port=8686"
|
||||
- "traefik.http.routers.lidarr.middlewares=forward-auth"
|
||||
````
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
* [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* [Mylar](https://github.com/evilhero/mylar)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* [Headphones](/recipes/autopirate/headphones/)
|
||||
* Lidarr (this page)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
[^2]: The addition of the Lidarr recipe was contributed by our very own @gpulido in Discord (http://chat.funkypenguin.co.nz) - Thanks Gabriel!
|
||||
|
||||
--8<-- "recipe-footer.md"
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
To include Mylar in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
````
|
||||
```yaml
|
||||
mylar:
|
||||
image: linuxserver/mylar3:latest
|
||||
env_file : /var/data/config/autopirate/mylar.env
|
||||
@@ -20,56 +20,28 @@ mylar:
|
||||
- /var/data/media:/media
|
||||
networks:
|
||||
- internal
|
||||
|
||||
mylar_proxy:
|
||||
image: a5huynh/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/mylar.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:mylar.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://mylar:8090
|
||||
-redirect-url=https://mylar.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
````
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:mylar.example.com
|
||||
- traefik.port=8090
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.mylar.rule=Host(`mylar.example.com`)"
|
||||
- "traefik.http.routers.mylar.entrypoints=https"
|
||||
- "traefik.http.services.mylar.loadbalancer.server.port=8090"
|
||||
- "traefik.http.routers.mylar.middlewares=forward-auth"
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
* [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* Mylar (this page)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* [Headphones](/recipes/autopirate/headphones)
|
||||
* [Lidarr](/recipes/autopirate/lidarr/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
[^2]. If you intend to configure Mylar to perform its own NZB searches and push the hits to a downloader such as SABnzbd, then in addition to configuring the connection to SAB with host, port and api key, you will need to set the parameter `host_return` parameter to the fully qualified Mylar address (e.g. `http://mylar:8090`).
|
||||
|
||||
This will provide the link to the downloader necessary to initiate the download. This parameter is not presented in the user interface so the config file (`$MYLAR_HOME/config.ini`) will need to be manually updated. The parameter can be found under the [Interface] section of the file. ([Details](https://github.com/evilhero/mylar/issues/2242))
|
||||
|
||||
|
||||
--8<-- "recipe-footer.md"
|
||||
[^2]. If you intend to configure Mylar to perform its own NZB searches and push the hits to a downloader such as SABnzbd, then in addition to configuring the connection to SAB with host, port and api key, you will need to set the parameter `host_return` parameter to the fully qualified Mylar address (e.g. `http://mylar:8090`).
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
## Introduction
|
||||
|
||||
NZBGet performs the same function as [SABnzbd](/recipes/autopirate/sabnzbd.md) (_downloading content from Usenet servers_), but it's lightweight and fast(er), written in C++ (_as opposed to Python_).
|
||||
NZBGet performs the same function as [SABnzbd][sabnzbd] (_downloading content from Usenet servers_), but it's lightweight and fast(er), written in C++ (_as opposed to Python_).
|
||||
|
||||

|
||||
|
||||
@@ -14,9 +14,7 @@ NZBGet performs the same function as [SABnzbd](/recipes/autopirate/sabnzbd.md) (
|
||||
To include NZBGet in your [AutoPirate](/recipes/autopirate/) stack
|
||||
(_The only reason you **wouldn't** use NZBGet, would be if you were using [SABnzbd](/recipes/autopirate/sabnzbd/) instead_), include the following in your autopirate.yml stack definition file:
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
````
|
||||
```yaml
|
||||
nzbget:
|
||||
image: linuxserver/nzbget
|
||||
env_file : /var/data/config/autopirate/nzbget.env
|
||||
@@ -25,54 +23,29 @@ nzbget:
|
||||
- /var/data/media:/data
|
||||
networks:
|
||||
- internal
|
||||
|
||||
nzbget_proxy:
|
||||
image: a5huynh/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/nzbget.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:nzbget.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://nzbget:6789
|
||||
-redirect-url=https://nzbget.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
````
|
||||
|
||||
!!! note
|
||||
NZBGet uses a 401 header to prompt for authentication. When you use OAuth2_proxy, this seems to break. Since we trust OAuth to authenticate us, we can just disable NZGet's own authentication, by changing ControlPassword to null in nzbget.conf (i.e. ```ControlPassword=```)
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:nzbget.example.com
|
||||
- traefik.port=6789
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.nzbget.rule=Host(`nzbget.example.com`)"
|
||||
- "traefik.http.routers.nzbget.entrypoints=https"
|
||||
- "traefik.http.services.nzbget.loadbalancer.server.port=6789"
|
||||
- "traefik.http.routers.nzbget.middlewares=forward-auth"
|
||||
```
|
||||
|
||||
[^tfa]: Since we're relying on [Traefik Forward Auth][tfa] to protect us, we can just disable NZGet's own authentication, by changing ControlPassword to null in nzbget.conf (i.e. ```ControlPassword=```)
|
||||
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
* NZBGet (this page)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* [Mylar](/recipes/autopirate/mylar/)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* [Headphones](/recipes/autopirate/headphones/)
|
||||
* [Lidarr](/recipes/autopirate/lidarr/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
@@ -1,77 +1,61 @@
|
||||
!!! warning
|
||||
This is not a complete recipe - it's a component of the [AutoPirate](/recipes/autopirate/) "_uber-recipe_", but has been split into its own page to reduce complexity.
|
||||
This is not a complete recipe - it's a component of the [AutoPirate](/recipes/autopirate/) "_uber-recipe_", but has been split into its own page to reduce complexity.
|
||||
|
||||
# NZBHydra 2
|
||||
|
||||
# NZBHydra
|
||||
[NZBHydra 2](https://github.com/theotherp/nzbhydra2) is a meta search for NZB indexers. It provides easy access to a number of raw and newznab based indexers. You can search all your indexers from one place and use it as an indexer source for tools like Sonarr, Radarr or CouchPotato.
|
||||
|
||||
[NZBHydra](https://github.com/theotherp/nzbhydra) is a meta search for NZB indexers. It provides easy access to a number of raw and newznab based indexers. You can search all your indexers from one place and use it as indexer source for tools like Sonarr or CouchPotato. Features include:
|
||||

|
||||
|
||||
* Search by IMDB, TMDB, TVDB, TVRage and TVMaze ID (including season and episode) and filter by age and size. If an ID is not supported by an indexer it is attempted to be converted (e.g. TMDB to IMDB)
|
||||
* Query generation, meaning when you search for a movie using e.g. an IMDB ID a query will be generated for raw indexers. Searching for a series season 1 episode 2 will also generate queries for raw indexers, like s01e02 and 1x02
|
||||
* Grouping of results with the same title and of duplicate results, accounting for result posting time, size, group and poster. By default only one of the duplicates is shown. You can provide an indexer score to influence which one that might be
|
||||
* Compatible with Sonarr, CP, NZB 360, SickBeard, Mylar and Lazy Librarian (and others)
|
||||
* Statistics on indexers (average response time, share of results, access errors), searches and downloads per time of day and day of week, NZB download history and search history (both via internal GUI and API)
|
||||
Features include:
|
||||
|
||||

|
||||
- Searches Anizb, BinSearch, NZBIndex and any newznab compatible indexers. Merges all results, filters them by a number of configurable restrictions, recognizes duplicates and returns them all in one place
|
||||
- Add results to [NZBGet][nzbget] or [SABnzbd][sabnzbd]
|
||||
- Support for all relevant media IDs (IMDB, TMDB, TVDB, TVRage, TVMaze) and conversion between them
|
||||
- Query generation, meaning a query will be generated if only a media ID is provided in the search and the indexer doesn't support the ID or if no results were found
|
||||
- Compatible with [Sonarr][sonarr], [Radarr][radarr], [NZBGet][nzbget], [SABnzbd][sabnzbd], nzb360, CouchPotato, [Mylar][mylar], [Lazy Librarian][lazylibrarian], Sick Beard, [Jackett][jackett], Watcher, etc.
|
||||
- Search and download history and extensive stats. E.g. indexer response times, download shares, NZB age, etc.
|
||||
- Authentication and multi-user support
|
||||
- Automatic update of NZB download status by querying configured downloaders
|
||||
- RSS support with configurable cache times
|
||||
- Torrent support (_Although I prefer [Jackett][jackett] for this_):
|
||||
- For GUI searches, allowing you to download torrents to a blackhole folder
|
||||
- A separate Torznab compatible endpoint for API requests, allowing you to merge multiple trackers
|
||||
- Extensive configurability
|
||||
- Migration of database and settings from v1
|
||||
|
||||
## Inclusion into AutoPirate
|
||||
|
||||
To include NZBHydra in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
To include NZBHydra2 in your [AutoPirate][autopirate] stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
````
|
||||
nzbhydra:
|
||||
image: linuxserver/hydra:latest
|
||||
env_file : /var/data/config/autopirate/nzbhydra.env
|
||||
```yaml
|
||||
nzbhydra2:
|
||||
image: linuxserver/hydra2:latest
|
||||
env_file : /var/data/config/autopirate/nzbhydra2.env
|
||||
volumes:
|
||||
- /var/data/autopirate/nzbhydra:/config
|
||||
- /var/data/autopirate/nzbhydra2:/config
|
||||
networks:
|
||||
- internal
|
||||
|
||||
nzbhydra_proxy:
|
||||
image: a5huynh/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/nzbhydra.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:nzbhydra.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://nzbhydra:5075
|
||||
-redirect-url=https://nzbhydra.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
````
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:nzbhydra.example.com
|
||||
- traefik.port=5076
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.nzbhydra.rule=Host(`nzbhydra.example.com`)"
|
||||
- "traefik.http.routers.nzbhydra.entrypoints=https"
|
||||
- "traefik.http.services.nzbhydra.loadbalancer.server.port=5076"
|
||||
- "traefik.http.routers.nzbhydra.middlewares=forward-auth"
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
* [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* [Mylar](/recipes/autopirate/mylar/)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* [Headphones](/recipes/autopirate/headphones/)
|
||||
* [Lidarr](/recipes/autopirate/lidarr/)
|
||||
* NZBHydra (this page)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
@@ -1,91 +0,0 @@
|
||||
!!! warning
|
||||
This is not a complete recipe - it's a component of the [AutoPirate](/recipes/autopirate/) "_uber-recipe_", but has been split into its own page to reduce complexity.
|
||||
|
||||
# NZBHydra 2
|
||||
|
||||
[NZBHydra 2](https://github.com/theotherp/nzbhydra2) is a meta search for NZB indexers. It provides easy access to a number of raw and newznab based indexers. You can search all your indexers from one place and use it as an indexer source for tools like Sonarr, Radarr or CouchPotato.
|
||||
|
||||
!!! note
|
||||
NZBHydra 2 is a complete rewrite of [NZBHydra (1)](/recipes/autopirate/nzbhydra/). It's currently in Beta. It works mostly fine but some functions might not be completely done and incompatibilities with some tools might still exist. You might want to run both in parallel for migration / testing purposes, but ultimately you'll probably want to switch over to NZBHydra 2 exclusively.
|
||||
|
||||

|
||||
|
||||
Features include:
|
||||
|
||||
- Searches Anizb, BinSearch, NZBIndex and any newznab compatible indexers. Merges all results, filters them by a number of configurable restrictions, recognizes duplicates and returns them all in one place
|
||||
- Add results to [NZBGet](/recipes/autopirate/nzbget/) or [SABnzbd](/recipes/autopirate/sabnzbd/)
|
||||
- Support for all relevant media IDs (IMDB, TMDB, TVDB, TVRage, TVMaze) and conversion between them
|
||||
- Query generation, meaning a query will be generated if only a media ID is provided in the search and the indexer doesn't support the ID or if no results were found
|
||||
- Compatible with [Sonarr](/recipes/autopirate/sonarr/), [Radarr](/recipes/autopirate/radarr/), [NZBGet](/recipes/autopirate/nzbget.md), [SABnzbd](/recipes/autopirate/sabnzbd/), nzb360, CouchPotato, [Mylar](/recipes/autopirate/mylar/), [Lazy Librarian](/recipes/autopirate/lazylibrarian/), Sick Beard, [Jackett/Cardigann](/recipes/autopirate/jackett/), Watcher, etc.
|
||||
- Search and download history and extensive stats. E.g. indexer response times, download shares, NZB age, etc.
|
||||
- Authentication and multi-user support
|
||||
- Automatic update of NZB download status by querying configured downloaders
|
||||
- RSS support with configurable cache times
|
||||
- Torrent support (_Although I prefer [Jackett](/recipes/autopirate/jackett/) for this_):
|
||||
- For GUI searches, allowing you to download torrents to a blackhole folder
|
||||
- A separate Torznab compatible endpoint for API requests, allowing you to merge multiple trackers
|
||||
- Extensive configurability
|
||||
- Migration of database and settings from v1
|
||||
|
||||
## Inclusion into AutoPirate
|
||||
|
||||
To include NZBHydra2 in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
```
|
||||
nzbhydra2:
|
||||
image: linuxserver/hydra2:latest
|
||||
env_file : /var/data/config/autopirate/nzbhydra2.env
|
||||
volumes:
|
||||
- /var/data/autopirate/nzbhydra2:/config
|
||||
networks:
|
||||
- internal
|
||||
|
||||
nzbhydra2_proxy:
|
||||
image: a5huynh/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/nzbhydra2.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:nzbhydra2.example.com
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://nzbhydra2:5076
|
||||
-redirect-url=https://nzbhydra2.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
- [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
- [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
- [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
- [Sonarr](/recipes/autopirate/sonarr/)
|
||||
- [Radarr](/recipes/autopirate/radarr/)
|
||||
- [Mylar](/recipes/autopirate/mylar/)
|
||||
- [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
- [Headphones](/recipes/autopirate/headphones/)
|
||||
- [Lidarr](/recipes/autopirate/lidarr/)
|
||||
- [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
- NZBHydra2 (this page)
|
||||
- [Ombi](/recipes/autopirate/ombi/)
|
||||
- [Jackett](/recipes/autopirate/jackett/)
|
||||
- [Heimdall](/recipes/autopirate/heimdall/)
|
||||
- [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
[^2]: Note that NZBHydra2 _can_ co-exist with NZBHydra (1), but if you want your tools (Sonarr, Radarr, etc) to use NZBHydra2, you'll need to change both the target hostname (_to "hydra2"_) and the target port (_to 5076_).
|
||||
|
||||
--8<-- "recipe-footer.md"
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
# Ombi
|
||||
|
||||
[Ombi](https://github.com/tidusjar/Ombi) is a useful addition to the [autopirate](/recipes/autopirate/) stack. Features include:
|
||||
[Ombi](https://github.com/tidusjar/Ombi) is a useful addition to the [autopirate][autopirate]stack. Features include:
|
||||
|
||||
* Lets users request Movies and TV Shows (_whether it being the entire series, an entire season, or even single episodes._)
|
||||
* Easily manage your requests
|
||||
@@ -19,7 +19,7 @@ Automatically updates the status of requests when they are available on Plex/Emb
|
||||
|
||||
To include Ombi in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
````
|
||||
```yaml
|
||||
ombi:
|
||||
image: linuxserver/ombi:latest
|
||||
env_file : /var/data/config/autopirate/ombi.env
|
||||
@@ -36,43 +36,24 @@ ombi_proxy:
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:ombi.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://ombi:3579
|
||||
-redirect-url=https://ombi.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
````
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:ombi.example.com
|
||||
- traefik.port=3579
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.ombi.rule=Host(`ombi.example.com`)"
|
||||
- "traefik.http.routers.ombi.entrypoints=https"
|
||||
- "traefik.http.services.ombi.loadbalancer.server.port=3579"
|
||||
- "traefik.http.routers.ombi.middlewares=forward-auth"
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
* [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* [Mylar](/recipes/autopirate/mylar/)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* [Headphones](/recipes/autopirate/headphones/)
|
||||
* [Lidarr](/recipes/autopirate/lidarr/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* Ombi (this page)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
|
||||
--8<-- "recipe-footer.md"
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
|
||||
## Inclusion into AutoPirate
|
||||
|
||||
To include Radarr in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
To include Radarr in your [AutoPirate][autopirate] stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
````
|
||||
```yaml
|
||||
radarr:
|
||||
image: linuxserver/radarr:latest
|
||||
env_file : /var/data/config/autopirate/radarr.env
|
||||
@@ -35,52 +35,26 @@ radarr:
|
||||
- /var/data/media:/media
|
||||
networks:
|
||||
- internal
|
||||
|
||||
radarr_proxy:
|
||||
image: a5huynh/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/radarr.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:radarr.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://radarr:7878
|
||||
-redirect-url=https://radarr.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
````
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:radarr.example.com
|
||||
- traefik.port=7878
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.radarr.rule=Host(`radarr.example.com`)"
|
||||
- "traefik.http.routers.radarr.entrypoints=https"
|
||||
- "traefik.http.services.radarr.loadbalancer.server.port=7878"
|
||||
- "traefik.http.routers.radarr.middlewares=forward-auth"
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
* [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* Radarr (this page)
|
||||
* [Mylar](/recipes/autopirate/mylar/)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* [Headphones](/recipes/autopirate/headphones/)
|
||||
* [Lidarr](/recipes/autopirate/lidarr/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
## Choose incoming port
|
||||
|
||||
When using a torrent client from behind NAT (_which swarm, by nature, is_), you typically need to set a static port for inbound torrent communications. In the example below, I've set the port to 36258. You'll need to configure /var/data/autopirate/rtorrent/rtorrent/rtorrent.rc with the equivalent port.
|
||||
When using a torrent client from behind NAT (_which swarm, by nature, is_), you typically need to set a static port for inbound torrent communications. In the example below, I've set the port to 36258. You'll need to configure `/var/data/autopirate/rtorrent/rtorrent/rtorrent.rc` with the equivalent port.
|
||||
|
||||
## Inclusion into AutoPirate
|
||||
|
||||
To include ruTorrent in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
To include ruTorrent in your [AutoPirate][autopirate] stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
```
|
||||
```yaml
|
||||
rtorrent:
|
||||
image: linuxserver/rutorrent
|
||||
env_file : /var/data/config/autopirate/rtorrent.env
|
||||
@@ -26,52 +26,26 @@ rtorrent:
|
||||
- /var/data/autopirate/rtorrent:/config
|
||||
networks:
|
||||
- internal
|
||||
|
||||
rtorrent_proxy:
|
||||
image: skippy/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/rtorrent.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:rtorrent.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://rtorrent:80
|
||||
-redirect-url=https://rtorrent.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:rtorrent.example.com
|
||||
- "traefik.http.services.linx.loadbalancer.server.port=80"
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.rtorrent.rule=Host(`rtorrent.example.com`)"
|
||||
- "traefik.http.routers.rtorrent.entrypoints=https"
|
||||
- "traefik.http.services.rtorrent.loadbalancer.server.port=80"
|
||||
- "traefik.http.routers.rtorrent.middlewares=forward-auth"
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
* [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
* RTorrent (this page)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* [Mylar](/recipes/autopirate/mylar/)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* [Headphones](/recipes/autopirate/headphones/)
|
||||
* [Lidarr](/recipes/autopirate/lidarr/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
@@ -16,38 +16,34 @@ To include SABnzbd in your [AutoPirate](/recipes/autopirate/) stack
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
````
|
||||
```yaml
|
||||
sabnzbd:
|
||||
image: linuxserver/sabnzbd:latest
|
||||
env_file : /var/data/config/autopirate/sabnzbd.env
|
||||
volumes:
|
||||
- /var/data/autopirate/sabnzbd:/config
|
||||
- /var/data/media:/media
|
||||
networks:
|
||||
- internal
|
||||
|
||||
sabnzbd_proxy:
|
||||
image: a5huynh/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/sabnzbd.env
|
||||
networks:
|
||||
- /var/data/autopirate/sabnzbd:/config
|
||||
- /var/data/media:/media
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:sabnzbd.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://sabnzbd:8080
|
||||
-redirect-url=https://sabnzbd.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
````
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:sabnzbd.example.com
|
||||
- traefik.port=8080
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.sabnzbd.rule=Host(`sabnzbd.example.com`)"
|
||||
- "traefik.http.routers.sabnzbd.entrypoints=https"
|
||||
- "traefik.http.services.sabnzbd.loadbalancer.server.port=8080"
|
||||
- "traefik.http.routers.sabnzbd.middlewares=forward-auth"
|
||||
```
|
||||
|
||||
!!! warning "Important Note re hostname validation"
|
||||
|
||||
@@ -57,26 +53,5 @@ sabnzbd_proxy:
|
||||
|
||||
For example, mine simply reads ```host_whitelist = sabnzbd.funkypenguin.co.nz, sabnzbd```
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* SABnzbd (this page)
|
||||
* [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* [Sonarr](/recipes/autopirate/sonarr/)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* [Mylar](/recipes/autopirate/mylar/)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* [Headphones](/recipes/autopirate/headphones/)
|
||||
* [Lidarr](/recipes/autopirate/lidarr/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
## Inclusion into AutoPirate
|
||||
|
||||
To include Sonarr in your [AutoPirate](/recipes/autopirate/) stack, include the following in your autopirate.yml stack definition file:
|
||||
To include Sonarr in your [AutoPirate][autopirate] stack, include the following in your autopirate.yml stack definition file:
|
||||
|
||||
````
|
||||
```yaml
|
||||
sonarr:
|
||||
image: linuxserver/sonarr:latest
|
||||
env_file : /var/data/config/autopirate/sonarr.env
|
||||
@@ -21,52 +21,26 @@ sonarr:
|
||||
- /var/data/media:/media
|
||||
networks:
|
||||
- internal
|
||||
|
||||
sonarr_proxy:
|
||||
image: a5huynh/oauth2_proxy
|
||||
env_file : /var/data/config/autopirate/sonarr.env
|
||||
networks:
|
||||
- internal
|
||||
- traefik_public
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.frontend.rule=Host:sonarr.example.com
|
||||
# traefik
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=traefik_public
|
||||
- traefik.port=4180
|
||||
volumes:
|
||||
- /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt
|
||||
command: |
|
||||
-cookie-secure=false
|
||||
-upstream=http://sonarr:8989
|
||||
-redirect-url=https://sonarr.example.com
|
||||
-http-address=http://0.0.0.0:4180
|
||||
-email-domain=example.com
|
||||
-provider=github
|
||||
-authenticated-emails-file=/authenticated-emails.txt
|
||||
````
|
||||
|
||||
# traefikv1
|
||||
- traefik.frontend.rule=Host:sonarr.example.com
|
||||
- traefik.port=8989
|
||||
- traefik.frontend.auth.forward.address=http://traefik-forward-auth:4181
|
||||
- traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User
|
||||
- traefik.frontend.auth.forward.trustForwardHeader=true
|
||||
|
||||
# traefikv2
|
||||
- "traefik.http.routers.sonarr.rule=Host(`sonarr.example.com`)"
|
||||
- "traefik.http.routers.sonarr.entrypoints=https"
|
||||
- "traefik.http.services.sonarr.loadbalancer.server.port=8989"
|
||||
- "traefik.http.routers.sonarr.middlewares=forward-auth"
|
||||
```
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
## Assemble more tools..
|
||||
|
||||
Continue through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipes/autopirate/end/)** section:
|
||||
|
||||
* [SABnzbd](/recipes/autopirate/sabnzbd.md)
|
||||
* [NZBGet](/recipes/autopirate/nzbget.md)
|
||||
* [RTorrent](/recipes/autopirate/rtorrent/)
|
||||
* Sonarr (this page)
|
||||
* [Radarr](/recipes/autopirate/radarr/)
|
||||
* [Mylar](/recipes/autopirate/mylar/)
|
||||
* [Lazy Librarian](/recipes/autopirate/lazylibrarian/)
|
||||
* [Headphones](/recipes/autopirate/headphones/)
|
||||
* [Lidarr](/recipes/autopirate/lidarr/)
|
||||
* [NZBHydra](/recipes/autopirate/nzbhydra/)
|
||||
* [NZBHydra2](/recipes/autopirate/nzbhydra2/)
|
||||
* [Ombi](/recipes/autopirate/ombi/)
|
||||
* [Jackett](/recipes/autopirate/jackett/)
|
||||
* [Heimdall](/recipes/autopirate/heimdall/)
|
||||
* [End](/recipes/autopirate/end/) (launch the stack)
|
||||
|
||||
[^1]: In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition.
|
||||
|
||||
--8<-- "recipe-autopirate-toc.md"
|
||||
--8<-- "recipe-footer.md"
|
||||
@@ -44,7 +44,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3"
|
||||
services:
|
||||
bitwarden:
|
||||
|
||||
@@ -50,7 +50,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -57,7 +57,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -67,7 +67,7 @@ termination=true
|
||||
|
||||
Create ```/var/data/config/collabora/docker-compose.yml``` as follows:
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.0"
|
||||
|
||||
services:
|
||||
|
||||
@@ -27,7 +27,7 @@ CyberChef doesn't require any persistent storage, or fancy configuration, so sim
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.2" # https://docs.docker.com/compose/compose-file/compose-versioning/#version-3
|
||||
|
||||
services:
|
||||
|
||||
@@ -59,7 +59,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3"
|
||||
services:
|
||||
duplicati:
|
||||
|
||||
@@ -35,7 +35,7 @@ So what does this mean for our stack? It means we can leverage Duplicity to back
|
||||
|
||||
We'll need a folder to store a docker-compose .yml file, and an associated .env file. If you're following my filesystem layout, create `/var/data/config/duplicity` (_for the config_), and `/var/data/duplicity` (_for the metadata_) as follows:
|
||||
|
||||
```
|
||||
```bash
|
||||
mkdir /var/data/config/duplicity
|
||||
mkdir /var/data/duplicity
|
||||
cd /var/data/config/duplicity
|
||||
@@ -90,7 +90,7 @@ Depending on what tier of storage you chose from your provider (_i.e., Google Co
|
||||
|
||||
Run a variation of the following to confirm a file you expect to be backed up, **is** backed up. (_I used traefik.yml from the [traefik recipie](/ha-docker-swarm/traefik/), since this is likely to exist for every reader_).
|
||||
|
||||
```
|
||||
```yaml
|
||||
docker run --env-file duplicity.env -it --rm \
|
||||
-v /var/data:/var/data:ro \
|
||||
-v /var/data/duplicity/tmp:/tmp \
|
||||
|
||||
@@ -58,13 +58,13 @@ Create ```/var/data/config/elkarbackup/elkarbackup-db-backup.env```, and populat
|
||||
|
||||
No, me either :shrug:
|
||||
|
||||
````
|
||||
```
|
||||
# For database backup (keep 7 days daily backups)
|
||||
MYSQL_PWD=<same as SYMFONY__DATABASE__PASSWORD above>
|
||||
MYSQL_USER=root
|
||||
BACKUP_NUM_KEEP=7
|
||||
BACKUP_FREQUENCY=1d
|
||||
````
|
||||
```
|
||||
|
||||
### Setup Docker Swarm
|
||||
|
||||
@@ -72,7 +72,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
|
||||
@@ -33,7 +33,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.0"
|
||||
|
||||
services:
|
||||
|
||||
@@ -24,7 +24,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -33,7 +33,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -56,7 +56,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
````
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
@@ -105,7 +105,7 @@ networks:
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.16.2.0/24
|
||||
````
|
||||
```
|
||||
|
||||
--8<-- "reference-networks.md"
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -43,7 +43,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
|
||||
@@ -67,7 +67,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -26,7 +26,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
web:
|
||||
|
||||
@@ -43,7 +43,7 @@ IPFS_API=/ip4/172.17.0.1/tcp/5001
|
||||
|
||||
Yes, I know. It's not as snazzy as docker swarm. Maybe we'll get there. But this implementation uses docker-compose, so create the following (_identical_) docker-compose.yml on each node:
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
|
||||
@@ -39,7 +39,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.0"
|
||||
|
||||
services:
|
||||
|
||||
@@ -48,7 +48,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -58,7 +58,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -27,7 +27,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.2"
|
||||
|
||||
services:
|
||||
|
||||
@@ -44,7 +44,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.2" # https://docs.docker.com/compose/compose-file/compose-versioning/#version-3
|
||||
|
||||
services:
|
||||
|
||||
@@ -95,7 +95,7 @@ Create a docker swarm config file in docker-compose syntax (_v3.2 - because we n
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3.2'
|
||||
|
||||
services:
|
||||
|
||||
@@ -46,7 +46,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -66,7 +66,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -43,8 +43,8 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
version: '3.1'
|
||||
```yaml
|
||||
version: '3.2'
|
||||
|
||||
services:
|
||||
app:
|
||||
|
||||
@@ -49,7 +49,7 @@ kubectl create -f /var/data/mqtt/namespace.yaml
|
||||
|
||||
Persistent volume claims are a streamlined way to create a persistent volume and assign it to a container in a pod. Create a claim for the certbot data:
|
||||
|
||||
```
|
||||
```yaml
|
||||
cat <<EOF > /var/data/mqtt/persistent-volumeclaim.yml
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
|
||||
@@ -70,7 +70,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -63,7 +63,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.0"
|
||||
|
||||
services:
|
||||
|
||||
@@ -327,7 +327,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -41,7 +41,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.0"
|
||||
|
||||
services:
|
||||
|
||||
@@ -89,7 +89,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -105,7 +105,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -35,7 +35,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.0"
|
||||
|
||||
services:
|
||||
|
||||
@@ -29,7 +29,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3.2'
|
||||
|
||||
services:
|
||||
|
||||
@@ -23,7 +23,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -45,7 +45,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
|
||||
@@ -101,7 +101,7 @@ Create a docker swarm config file in docker-compose syntax (v3) in `/var/data/re
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.2"
|
||||
|
||||
services:
|
||||
|
||||
@@ -96,7 +96,7 @@ Create a docker swarm config file in docker-compose syntax (v3), based on the or
|
||||
{% raw %}
|
||||
???+ note "This example is 274 lines long. Click here to collapse it for better readability"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.3"
|
||||
|
||||
networks:
|
||||
|
||||
@@ -44,7 +44,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3.2" # https://docs.docker.com/compose/compose-file/compose-versioning/#version-3
|
||||
|
||||
services:
|
||||
|
||||
@@ -58,7 +58,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -74,7 +74,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
@@ -39,7 +39,7 @@ Create a docker swarm config file in docker-compose syntax (v3), something like
|
||||
|
||||
--8<-- "premix-cta.md"
|
||||
|
||||
```
|
||||
```yaml
|
||||
version: "3"
|
||||
services:
|
||||
wetty:
|
||||
|
||||
Reference in New Issue
Block a user