1
0
mirror of https://github.com/funkypenguin/geek-cookbook/ synced 2025-12-12 17:26:19 +00:00

Add Prowlarr. Grrowwwlllll!

This commit is contained in:
David Young
2021-10-27 19:19:22 +13:00
committed by GitHub
parent ffa4314919
commit 7388b7b504
20 changed files with 125 additions and 18 deletions

View File

@@ -0,0 +1,27 @@
name: Check for broken links
on:
repository_dispatch:
workflow_dispatch:
# schedule:
# - cron: "00 18 * * *"
jobs:
linkChecker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Link Checker
uses: lycheeverse/lychee-action@v1.0.9
with:
args: --verbose --no-progress **/*.md **/*.html
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
- name: Create Issue From File
uses: peter-evans/create-issue-from-file@v3
with:
title: Link Checker Report
content-filepath: ./lychee/out.md
labels: report, automated issue

View File

@@ -21,4 +21,11 @@ jobs:
run: python3 -m pip install -r requirements.txt
- name: Test mkdocs builds
run: python3 -m mkdocs build
run: python3 -m mkdocs build
# - name: Check for broken links
# uses: lycheeverse/lychee-action@v1.0.9
# with:
# args: --verbose --no-progress site/**/*.html
# env:
# GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

View File

@@ -7,7 +7,7 @@
[twitchurl]: https://www.twitch.tv/funkypenguinz
[twitterurl]: https://twitter.com/funkypenguin
[dockerurl]: https://geek-cookbook.funkypenguin.co.nz/ha-docker-swarm/design
[k8surl]: https://geek-cookbook.funkypenguin.co.nz/kubernetes/start
[k8surl]: https://geek-cookbook.funkypenguin.co.nz/kubernetes/
<!-- markdownlint-disable MD033 MD041 -->
<div align="center">

View File

@@ -31,6 +31,7 @@
[plex]: /recipes/plex/
[portainer]: /recipes/portainer/
[radarr]: /recipes/autopirate/radarr/
[prowlarr]: /recipes/autopirate/prowlarr/
[readarr]: /recipes/autopirate/readarr/
[rss-bridge]: /recipes/rss-bridge/
[rtorrent]: /recipes/autopirate/rtorrent/

View File

@@ -11,8 +11,9 @@ Continue through the list of tools below, adding whichever tools your want to us
* [NZBGet](/recipes/autopirate/nzbget/)
* [NZBHydra](/recipes/autopirate/nzbhydra/)
* [Ombi](/recipes/autopirate/ombi/)
* [Prowlarr](/recipes/autopirate/prowlarr/)
* [Radarr](/recipes/autopirate/radarr/)
* [Readarr](/recipes/autopirate/readarr/)
* [Readarr](/recipes/autopirate/readarr/)
* [RTorrent](/recipes/autopirate/rtorrent/)
* [SABnzbd](/recipes/autopirate/sabnzbd/)
* [Sonarr](/recipes/autopirate/sonarr/)

View File

@@ -8,6 +8,7 @@ hide:
Recipe | Description | Date
-------------------------|------------------------------------------------------------------------------------------------------------------|--------------
[Prowlarr][prowlarr] | An indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with the [AutoPirate][autopirate] friends | _27 Oct 2021_
[Archivebox][archivebox] | Website Archiving service to save websites to view offline | _19 Oct 2021_
[Readarr][readarr] | [Autopirate][autopirate] component to grab and manage eBooks (*think "Sonarr/Radarr for books*") | _18 Oct 2021_
[Paperless-NG][paperless-ng] | Organize, index, search, and view all your documents | _14 Oct 2021_

View File

@@ -165,7 +165,7 @@ After completing the above, you should have:
* [X] Resiliency in the event of the failure of a single (gluster) node
[^1]: Future enhancements to this recipe include:
1. Migration of shared storage from GlusterFS to Ceph ()[#2](https://gitlab.funkypenguin.co.nz/funkypenguin/geeks-cookbook/issues/2))
2. Correct the fact that volumes don't automount on boot ([#3](https://gitlab.funkypenguin.co.nz/funkypenguin/geeks-cookbook/issues/3))
1. Migration of shared storage from GlusterFS to Ceph
2. Correct the fact that volumes don't automount on boot
--8<-- "recipe-footer.md"

View File

@@ -19,7 +19,7 @@ This is the role of Traefik Forward Auth.
When employing Traefik Forward Auth as "[middleware](https://doc.traefik.io/traefik/middlewares/forwardauth/)", the forward-auth process sits in the middle of this transaction - traefik receives the incoming request, "checks in" with the auth server to determine whether or not further authentication is required. If the user is authenticated, the auth server returns a 200 response code, and Traefik is authorized to forward the request to the backend. If not, traefik passes the auth server response back to the user - this process will usually direct the user to an authentication provider (_GitHub, Google, etc_), so that they can perform a login.
Illustrated below:
![Traefik Forward Auth](../images/traefik-forward-auth.png)
![Traefik Forward Auth](../../images/traefik-forward-auth.png)
The advantage under this design is additional security. If I'm deploying a web app which I expect only an authenticated user to require access to (*unlike something intended to be accessed publically, like [Linx](/recipes/linx/)*), I'll pass the request through Traefik Forward Auth. The overhead is negligible, and the additional layer of security is well-worth it.

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1,67 @@
---
description: Prowlarr aggregates nzb/torrent searches. Like NZBHydra, but Arrr.
---
# Radarr
!!! 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.
[Prowlarr](https://github.com/Prowlarr/Prowlarr) is an indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps.
Prowlarr supports management of both Torrent Trackers and Usenet Indexers. It integrates seamlessly with [Lidarr][lidarr], [Mylar3][mylar], [Radarr][radarr], [Readarr][readarr], and [Sonarr][sonarr] offering complete management of your indexers with no per app Indexer setup required!
![Prowlarr Screenshot](../../images/prowlarr.png)
Fancy features include:
* Usenet support for 24 indexers natively, including Headphones VIP, and support for any Newznab compatible indexer via "Generic Newznab"
* Torrent support for over 500 trackers with more added all the time
* Torrent support for any Torznab compatible tracker via "Generic Torznab"
* Indexer Sync to Sonarr/Radarr/Readarr/Lidarr/Mylar3, so no manual configuration of the other applications are required
* Indexer history and statistics
* Manual searching of Trackers & Indexers at a category level
* Support for pushing releases directly to your download clients from Prowlarr
* Indexer health and status notifications
* Per Indexer proxy support (SOCKS4, SOCKS5, HTTP, Flaresolverr)
## Inclusion into AutoPirate
To include Prowlarr in your [AutoPirate][autopirate] stack, include the following in your autopirate.yml stack definition file:
```yaml
prowlarr:
image: linuxserver/prowlarr:nightly
env_file: /var/data/config/prowlarr/prowlarr.env
volumes:
- /var/data/media/:/media
- /var/data/prowlarr:/config
deploy:
replicas: 1
labels:
# traefik
- traefik.enable=true
- traefik.docker.network=traefik_public
# traefikv1
- traefik.frontend.rule=Host:prowlarr.example.com
- traefik.port=9696
- 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.prowlarr.rule=Host(`prowlarr.example.com`)"
- "traefik.http.routers.prowlarr.entrypoints=https"
- "traefik.http.services.prowlarr.loadbalancer.server.port=9696"
- "traefik.http.routers.prowlarr.middlewares=forward-auth"
networks:
- internal
- autopiratev2_public
```
--8<-- "premix-cta.md"
--8<-- "recipe-autopirate-toc.md"
--8<-- "recipe-footer.md"
[^1]: Because Prowlarr is so young (*just a little kitten! :cat:*), there is no `:latest` image tag yet, so we're using the `:nightly` tag instead. Don't come crying to me if baby-Prowlarr bites your ass!

View File

@@ -8,7 +8,7 @@ Intro
![Duplicity Screenshot](../images/duplicity.png)
[Duplicity](http://duplicity.nongnu.org/) backs directories by producing encrypted tar-format volumes and uploading them to a remote or local file server. Because duplicity uses librsync, the incremental archives are space efficient and only record the parts of files that have changed since the last backup. Because duplicity uses GnuPG to encrypt and/or sign these archives, they will be safe from spying and/or modification by the server.
[Duplicity](https://duplicity.gitlab.io/duplicity-web/) backs directories by producing encrypted tar-format volumes and uploading them to a remote or local file server. Because duplicity uses librsync, the incremental archives are space efficient and only record the parts of files that have changed since the last backup. Because duplicity uses GnuPG to encrypt and/or sign these archives, they will be safe from spying and/or modification by the server.
So what does this mean for our stack? It means we can leverage Duplicity to backup all our data-at-rest to a wide variety of cloud providers, including, but not limited to:
@@ -45,7 +45,7 @@ cd /var/data/config/duplicity
### (Optional) Create Google Cloud Storage bucket
I didn't already have an archival/backup provider, so I chose Google Cloud "cloud" storage for the low price-point - 0.7 cents per GB/month (_Plus you [start with \$300 credit](https://cloud.google.com/free/) even when signing up for the free tier_). You can use any destination supported by [Duplicity's URL scheme though](http://duplicity.nongnu.org/duplicity.1.html#sect7), just make sure you specify the necessary [environment variables](http://duplicity.nongnu.org/duplicity.1.html#sect6).
I didn't already have an archival/backup provider, so I chose Google Cloud "cloud" storage for the low price-point - 0.7 cents per GB/month (_Plus you [start with \$300 credit](https://cloud.google.com/free/) even when signing up for the free tier_). You can use any destination supported by [Duplicity's URL scheme though](https://duplicity.gitlab.io/duplicity-web/vers7/duplicity.1.html#sect7), just make sure you specify the necessary [environment variables](https://duplicity.gitlab.io/duplicity-web/vers7/duplicity.1.html#sect6).
1. [Sign up](https://cloud.google.com/storage/docs/getting-started-console), create an empty project, enable billing, and create a bucket. Give your bucket a unique name, example "**jack-and-jills-bucket**" (_it's unique across the entire Google Cloud_)
2. Under "Storage" section > "[Settings](https://console.cloud.google.com/project/_/storage/settings)" > "Interoperability" tab > click "Enable interoperable access" and then "Create a new key" button and note both Access Key and Secret.

View File

@@ -4,7 +4,7 @@ description: Funkwhale is a decentralized, federated music streaming platform
# Funkwhale
[Funkwhale](https://funkwhale.audio) is a decentralized, federated, and open music streaming / sharing platform. Think of it as "Mastodon for music". Here's a nifty online [demo](https://demo.funkwhale.audio/) :musical_note:
[Funkwhale](https://funkwhale.audio) is a decentralized, federated, and open music streaming / sharing platform. Think of it as "Mastodon for music".
![Funkwhale Screenshot](../images/funkwhale.jpg)
@@ -136,6 +136,5 @@ root@swarm:~#
[^2]: These instructions are an opinionated simplication of the official instructions found at <https://docs.funkwhale.audio/installation/docker.html>
[^3]: It should be noted that if you import your existing media, the files will be **copied** into Funkwhale's data folder. There doesn't seem to be a way to point Funkwhale at an existing collection and have it just play it from the filesystem. To this end, be prepared for double disk space usage if you plan to import your entire music collection!
[^5]: No consideration is given at this point to backing up the Funkwhale data. Post a comment below if you'd like to see a backup container added!
[^4]: If the funky whale is "playing your song", note that the funkwhale project is [looking for maintainers](https://blog.funkwhale.audio/~/Announcements/funkwhale-is-looking-for-new-maintainers/).
--8<-- "recipe-footer.md"

View File

@@ -1,6 +1,6 @@
# GitLab
GitLab is a self-hosted [alternative to GitHub](https://about.gitlab.com/comparison/). The most common use case is (a set of) developers with the desire for the rich feature-set of GitHub, but with unlimited private repositories.
GitLab is a self-hosted [alternative to GitHub](https://about.gitlab.com/pricing/self-managed/feature-comparison/). The most common use case is (a set of) developers with the desire for the rich feature-set of GitHub, but with unlimited private repositories.
Docker does maintain an [official "Omnibus" container](https://docs.gitlab.com/omnibus/docker/README.html), but for this recipe I prefer the "[dockerized gitlab](https://github.com/sameersbn/docker-gitlab)" project, since it allows distribution of the various Gitlab components across multiple swarm nodes.

View File

@@ -7,7 +7,7 @@ Miniflux is a lightweight RSS reader, developed by [Frédéric Guillot](https://
I've [reviewed Miniflux in detail on my blog](https://www.funkypenguin.co.nz/review/miniflux-lightweight-self-hosted-rss-reader/), but features (among many) that I appreciate:
* Compatible with the Fever API, read your feeds through existing mobile and desktop clients (_This is the killer feature for me. I hardly ever read RSS on my desktop, I typically read on my iPhone or iPad, using [Fiery Feeds](http://cocoacake.net/apps/fiery/) or my new squeeze, [Unread](https://www.goldenhillsoftware.com/unread/)_)
* Send your bookmarks to Pinboard, Wallabag, Shaarli or Instapaper (_I use this to automatically pin my bookmarks for collection on my [blog](https://www.funkypenguin.co.nz/blog/)_)
* Send your bookmarks to Pinboard, Wallabag, Shaarli or Instapaper (_I use this to automatically pin my bookmarks for collection on my [blog](https://www.funkypenguin.co.nz/)_)
* Feeds can be configured to download a "full" version of the content (_rather than an excerpt_)
* Use the Bookmarklet to subscribe to a website directly from any browsers
@@ -102,7 +102,7 @@ kubectl create secret -n mqtt generic miniflux-credentials \
```
!!! tip "Why use ```echo -n```?"
Because. See [my blog post here](https://www.funkypenguin.co.nz/beware-the-hidden-newlines-in-kubernetes-secrets/) for the pain of hunting invisible newlines, that's why!
Because. See [my blog post here](https://www.funkypenguin.co.nz/blog/beware-the-hidden-newlines-in-kubernetes-secrets/) for the pain of hunting invisible newlines, that's why!
## Serving

View File

@@ -11,7 +11,7 @@ Miniflux is a lightweight RSS reader, developed by [Frédéric Guillot](https://
I've [reviewed Miniflux in detail on my blog](https://www.funkypenguin.co.nz/review/miniflux-lightweight-self-hosted-rss-reader/), but features (among many) that I appreciate:
* Compatible with the Fever API, read your feeds through existing mobile and desktop clients (_This is the killer feature for me. I hardly ever read RSS on my desktop, I typically read on my iPhone or iPad, using [Fiery Feeds](http://cocoacake.net/apps/fiery/) or my new squeeze, [Unread](https://www.goldenhillsoftware.com/unread/)_)
* Send your bookmarks to Pinboard, Wallabag, Shaarli or Instapaper (_I use this to automatically pin my bookmarks for collection on my [blog](https://www.funkypenguin.co.nz/blog/)_)
* Send your bookmarks to Pinboard, Wallabag, Shaarli or Instapaper (_I use this to automatically pin my bookmarks for collection on my [blog](https://www.funkypenguin.co.nz)_)
* Feeds can be configured to download a "full" version of the content (_rather than an excerpt_)
* Use the Bookmarklet to subscribe to a website directly from any browsers

View File

@@ -9,7 +9,7 @@ large-scale private cloud infrastructure.
However, at its simplest, Minio allows you to expose a local filestructure via the [Amazon S3 API](https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html). You could, for example, use it to provide access to "buckets" (folders) of data on your filestore, secured by access/secret keys, just like AWS S3. You can further interact with your "buckets" with common tools, just as if they were hosted on S3.
Under a more advanced configuration, Minio runs in distributed mode, with [features](https://www.minio.io/features.html) including high-availability, mirroring, erasure-coding, and "bitrot detection".
Under a more advanced configuration, Minio runs in distributed mode, with [features](https://docs.min.io/minio/baremetal/concepts/feature-overview.html) including high-availability, mirroring, erasure-coding, and "bitrot detection".
![Minio Screenshot](../images/minio.png)

View File

@@ -4,7 +4,7 @@ description: Share docs. Backup files. Share stuff.
# NextCloud
[NextCloud](https://www.nextcloud.org/) (_a [fork of OwnCloud](https://owncloud.org/blog/owncloud-statement-concerning-the-formation-of-nextcloud-by-frank-karlitschek/), led by original developer Frank Karlitschek_) is a suite of client-server software for creating and using file hosting services. It is functionally similar to Dropbox, although Nextcloud is free and open-source, allowing anyone to install and operate it on a private server.
[NextCloud](https://www.nextcloud.org/) (_a [fork of OwnCloud](https://owncloud.com/owncloud-vs-nextcloud/), led by original developer Frank Karlitschek_) is a suite of client-server software for creating and using file hosting services. It is functionally similar to Dropbox, although Nextcloud is free and open-source, allowing anyone to install and operate it on a private server.
- <https://en.wikipedia.org/wiki/Nextcloud>

View File

@@ -10,7 +10,7 @@ Wekan is an open-source kanban board which allows a card-based task and to-do ma
Wekan allows to create Boards, on which Cards can be moved around between a number of Columns. Boards can have many members, allowing for easy collaboration, just add everyone that should be able to work with you on the board to it, and you are good to go! You can assign colored Labels to cards to facilitate grouping and filtering, additionally you can add members to a card, for example to assign a task to someone.
There's a [video](https://www.youtube.com/watch?v=N3iMLwCNOro) of the developer showing off the app, as well as a [functional demo](https://wekan.indie.host/b/t2YaGmyXgNkppcFBq/wekan-fork-roadmap).
There's a [video](https://www.youtube.com/watch?v=N3iMLwCNOro) of the developer showing off the app, as well as a [functional demo](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license).
!!! note
For added privacy, this design secures wekan behind a [traefik-forward-auth](/ha-docker-swarm/traefik-forward-auth/), so that in order to gain access to the wekan UI at all, authentication must have already occurred.

View File

@@ -27,7 +27,7 @@ plugins:
autolinks:
macros:
verbose: true
htmlproofer:
# htmlproofer:
# raise_error: True
# raise_error_excludes:
# 504: ['https://www.mkdocs.org/']
@@ -65,6 +65,7 @@ nav:
- Mylar: recipes/autopirate/mylar.md
- NZBGet: recipes/autopirate/nzbget.md
- NZBHydra: recipes/autopirate/nzbhydra.md
- Prowlarr: recipes/autopirate/prowlarr.md
- Ombi: recipes/autopirate/ombi.md
- Radarr: recipes/autopirate/radarr.md
- Readarr: recipes/autopirate/readarr.md

3
scripts/build-insiders.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
docker build --build-arg FROM_SOURCE=ghcr.io/geek-cookbook/mkdocs-material-insiders . -t funkypenguin/mkdocs-material
docker run --rm --name mkdocs-material -v ${PWD}:/docs funkypenguin/mkdocs-material build -f mkdocs-insiders.yml