Compare commits

...

14 Commits

Author SHA1 Message Date
Ricardo
d3279b9d55 Merge pull request #9 from Rick45/portainer_replacement
Portainer replacement
2026-01-13 13:39:05 +00:00
Ricardo
afd4cee43c Add Arcane service configuration and update README
- Introduced environment variables for Arcane in .env.example
- Updated README with Arcane setup instructions and corrected typos
- Added images for Arcane interface and login
2026-01-13 13:34:11 +00:00
Ricardo
4a8e71b43d Add FlareSolverr setup instructions and service
Added documentation for setting up FlareSolverr, including Docker container configuration and integration with Prowlarr, to the README. Updated docker-compose.yml to include the FlareSolverr service for bypassing Cloudflare protection on indexers.
2025-11-26 19:18:02 +00:00
Ricardo
87d84abb31 Update vpn.conf 2025-09-27 15:57:33 +01:00
Ricardo
089c9e2b7c added arcane service and .env variables for
encryption and jwt secrets
2025-09-22 23:17:47 +01:00
Ricardo
9c3dde0cb7 Update closeIssue.yaml 2025-09-05 22:56:09 +01:00
Ricardo
9d097b91f7 Update README to reflect new vpn.conf location 2025-08-31 17:43:53 +01:00
Ricardo
545ba5530e Update README.md 2025-08-31 17:42:44 +01:00
Ricardo
345179ea49 Merge branch 'main' of https://github.com/Rick45/quick-arr-Stack 2025-07-25 23:21:39 +01:00
Ricardo
ba0442c372 Updated linuxserver images to the correct path 2025-07-25 23:21:32 +01:00
Ricardo
2d2206e208 Update README.md 2025-06-29 22:46:50 +01:00
Ricardo
8337244152 Update README.md
small typo
2024-12-31 15:46:30 +00:00
Ricardo
2cbd06e8c5 Update README.md 2024-09-06 18:24:27 +01:00
Ricardo
e7cd25cdf2 Update README.md 2024-02-28 13:38:55 +00:00
8 changed files with 192 additions and 56 deletions

View File

@@ -12,4 +12,14 @@ HDDSTORAGE=/home/{youruser}/Storage/
#Your public ip, auto for auto detect
SERVERURL=auto
#number of devices to generate configuration to connect to the wireguard vpn
PEERS=7
PEERS=7
# Arcane
#aplication URL with the defined port
APP_URL="http://localhost:9010"
#Type of environement, this is our "live" environemnt so lets use production
ENVIRONMENT=production
#Random Encription Key
ENCRYPTION_KEY={your_encryption_key} #Run command: "openssl rand -base64 32" to generate a random key like dgx9U8oSegcUMb0mp3N/mMpYHB4ZYF+2m+ym6LYcCNg=
#Random JWT Secret
JWT_SECRET={your_jwt_secret} #Run command: "openssl rand -base64 32" in the to generate a random key like dgx9U8oSegcUMb0mp3N/mMpYHB4ZYF+2m+ym6LYcCNg=

View File

@@ -20,3 +20,4 @@ jobs:
days-before-pr-stale: -1
days-before-pr-close: -1
repo-token: ${{ secrets.GITHUB_TOKEN }}
exempt-issue-labels: "enhancement"

View File

@@ -1,7 +1,8 @@
client
explicit-exit-notify
verb 1
proto udp
remote Pt2-ovpn.pointtoserver.com 53
remote 172.111.131.245 15021
dev tun
auth-user-pass /vpn/vpn.auth # to be reachable inside the container
persist-key
@@ -109,8 +110,12 @@ c737ad822f27e19057731f41e1e254cc
dd94498b4d7133d3729dd214a16b27fb
-----END OpenVPN Static key V1-----
</tls-auth>
--mute-replay-warnings
#mtu-test
#link-mtu 1525
#mssfix 1485
key-direction 1
remote-cert-tls server
cipher AES-256-CBC
cipher AES-256-GCM
script-security 2
comp-lzo

178
README.md
View File

@@ -3,7 +3,7 @@
TV shows and movies download, sorted, with the desired quality and subtitles, behind a VPN (optional), ready to watch, in a beautiful media player.
All automated.
On top of the original configurations added information related to the PureVPN configurations and added a wireguard docker to access the content of the media center outside the home network without the need to open the Plex port.
This guide builds on the original configurations with additional information for PureVPN setup and includes a Wireguard Docker container to access the media center remotely without exposing the Plex port.
_Disclaimer: I'm not encouraging/supporting piracy, this is for information only._
@@ -17,10 +17,10 @@ _Disclaimer: I'm not encouraging/supporting piracy, this is for information only
- [Software stack](#software-stack)
- [Installation guide](#installation-guide)
- [Install docker and docker-compose](#install-docker-and-docker-compose)
- [Helpfull Docker Commands](#helpfull-docker-commands)
- [Helpful Docker Commands](#helpful-docker-commands)
- [Clone the repository](#clone-the-repository)
- [Setup environment variables](#setup-environment-variables)
- [Folder Setup](#folder-structure)
- [Folder Structure](#folder-structure)
- [Setup a VPN Container](#setup-a-vpn-container)
- [VPN Option](#vpn-option)
- [purevpn.com custom setup](#purevpncom-custom-setup)
@@ -37,6 +37,9 @@ _Disclaimer: I'm not encouraging/supporting piracy, this is for information only
- [Setup Radarr](#setup-radarr)
- [Docker container](#radarr-docker-container)
- [Configuration](#radarr-configuration)
- [Setup FlareSolverr](#setup-flaresolverr)
- [Docker container](#flaresolverr-docker-container)
- [Configuration in Prowlarr](#flaresolverr-configuration-in-prowlarr)
- [Setup Prowlarr](#setup-prowlarr)
- [Docker container](#prowlarr-docker-container)
- [Configuration](#prowlarr-configuration)
@@ -51,11 +54,12 @@ _Disclaimer: I'm not encouraging/supporting piracy, this is for information only
- [Setup Overseerr](#overseerr-setup)
- [Docker container](#overseerr-docker-container)
- [Configuration and usage](#overseerr-configuration)
- [Setup Portainer](#portainer-setup)
- [Docker container](#portainer-docker-container)
- [Configuration and usage](#portainer-configuration)
- [Setup Arcane](#arcane-setup)
- [Docker container](#arcane-docker-container)
- [Configuration and usage](#arcane-configuration)
- [Mobile Management](#mobile-management)
## Overview
This is a quick guide on how to build a server with a [Servarr stack](https://wiki.servarr.com/)
@@ -69,6 +73,7 @@ This is composed of multiple tools working together to have an automated way to
- [OpenVPN Client](https://github.com/dperson/openvpn-client) (optional but highly recommended): the container is used by Deluge to encapsulate the incoming/outgoing traffic.
- [Deluge](http://deluge-torrent.org/) handles torrent download.
- [Prowlarr](https://prowlarr.com/): is an indexer manager/proxy built on the popular *arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports the management of both Torrent Trackers and Usenet Indexers.
- [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr): is a proxy server to bypass Cloudflare and other challenges for indexers that are protected by them.
- [Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.
**Download orchestration**:
@@ -83,11 +88,11 @@ This is composed of multiple tools working together to have an automated way to
**Optional**:
- [Overseerr](https://overseerr.dev/): is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr, Radarr, and Plex!
- [Overseerr](https://overseerr.dev/): is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr, Radarr, and Plex!
- [Wireguard](https://github.com/linuxserver/docker-wireguard): is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. This will allow us to connect to our home network from anywhere and use the Plex app outside of our house without using Plex servers for routing.
- [Wireguard](https://github.com/linuxserver/docker-wireguard): is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. This will allow us to connect to our home network from anywhere and use the Plex app outside of our house without using Plex servers for routing.
- [Portainer](https://github.com/portainer/portainer): This is a lightweight service that allows us to monitor all of our containers, we can see the status, logs and manage them directly there.
- [Arcane](https://github.com/getarcaneapp/arcane): A beautiful, intuitive interface for managing your Docker containers, images, networks, and volumes. No terminal required - monitor all containers, view status, logs and manage them directly.
## Hardware configuration
@@ -113,7 +118,7 @@ Make sure it works fine:
Also, install docker-compose (see the [official instructions](https://docs.docker.com/compose/install/#install-compose)).
### Helpfull Docker Commands
### Helpful Docker Commands
```sh
#Check the Status of all docker containers:
@@ -163,6 +168,16 @@ HDDSTORAGE=/home/{youruser}/Storage/ #update the {youruser} with your user path
SERVERURL=auto
#number of devices to generate configuration to connect to the wireguard vpn
PEERS=7
# Arcane
#Application URL with the defined port
APP_URL="http://localhost:9010"
#Type of environment, this is our "live" environment so lets use production
ENVIRONMENT=production
#Random Encryption Key
ENCRYPTION_KEY={your_encryption_key} #Run command: "openssl rand -base64 32" to generate a random key like dgx9U8oSegcUMb0mp3N/mMpYHB4ZYF+2m+ym6LYcCNg=
#Random JWT Secret
JWT_SECRET={your_jwt_secret} #Run command: "openssl rand -base64 32" to generate a random key like dgx9U8oSegcUMb0mp3N/mMpYHB4ZYF+2m+ym6LYcCNg=
```
Things to notice:
@@ -206,7 +221,7 @@ After this Create 2 folders in the `Storage\Completed` folder, `Movies` and `TV`
#### VPN Option
If you do not own a VPN you can bypass this step.
- Is required to comment the highlighted lines in the `docker-compose.yml`
- It is required to comment the highlighted lines in the `docker-compose.yml`
example:
```sh
#ports:
@@ -232,7 +247,7 @@ _Note_: this section only applies for [PureVPN](purevpn.com) accounts.
1. Delete all content in `${ROOT}/config/vpn` and replace it with the ones available in the repo folder `Config Files\config\vpn(PureVPN)`
1. Download the openVPN file from [PureVPN website](https://support.purevpn.com/openvpn-files).
1. Open the file in the udp folder related to the country/connection that you want to use.
1. Copy the remote value in the file and replace it on the vpn.conf file that is
1. Copy the remote value in the file and replace it on the vpn.conf file that now is in `${ROOT}/config/vpn`
#### VPN Docker container
@@ -265,7 +280,7 @@ Then run the container with `docker-compose up -d --remove-orphans`.
To follow container logs, run `docker-compose logs -f vpn`.
every time that you do changes in the VPN config file run `docker-compose restart vpn` this will force the container to restart and load the new settings
Every time you make changes in the VPN config file run `docker-compose restart vpn` to force the container to restart and load the new settings
***
@@ -300,9 +315,9 @@ deluge:
#### Deluge Configuration
_Note_: If the bellow page does not open and you are using the VPN normally it means that something is wrong with the VPN itself!
_Note_: If the below page does not open and you are using the VPN normally it means that something is wrong with the VPN itself!
run `docker-compose restart deluge` everytime that you stop or start te VPN container as deluge dependes on it.
Run `docker-compose restart deluge` every time you stop or start the VPN container as Deluge depends on it.
You should be able to log in on the web UI (`localhost:8112`, replace `localhost` with your machine ip if needed).
@@ -444,8 +459,8 @@ Sonarr should be ready out of the box, there are multiple settings and configura
![Sonarr Root Folders](img/SonarRootFolders.png)
`Download Clients` tab is where we'll configure links with our tdownload client Deluge.
There are existing presets for these 2 that we'll fill with the proper configuration.
`Download Clients` tab is where we'll configure links with our download client Deluge.
There are existing presets for these that we'll fill with the proper configuration.
Deluge configuration:
@@ -522,6 +537,50 @@ In `Connect` tab, we'll configure Sonarr to send notifications to Plex when a ne
![Sonarr Plex configuration](img/RadarrPlexConnect.png)
***
### Setup FlareSolverr
[FlareSolverr](https://github.com/FlareSolverr/FlareSolverr) is a proxy server to bypass Cloudflare protection. Many torrent indexers are behind Cloudflare, and Prowlarr needs FlareSolverr to be able to search on them.
#### FlareSolverr Docker container
```yaml
flaresolverr:
# DockerHub mirror flaresolverr/flaresolverr:latest
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- 'LOG_LEVEL=info'
- 'LOG_HTML=false'
- 'CAPTCHA_SOLVER=none'
- 'TZ=${TZ}'
ports:
- '8191:8191'
restart: unless-stopped
```
Then run the container with `docker-compose up -d --remove-orphans`.
To follow container logs, run `docker-compose logs -f flaresolverr`.
#### FlareSolverr Configuration in Prowlarr
Once FlareSolverr is running, you need to configure Prowlarr to use it.
1. In the Prowlarr web UI, go to `Settings` -> `Indexers`.
2. Under the `Indexer Proxies` section, click the `+` to add a new proxy.
3. Fill in the details for FlareSolverr:
- **Name**: `FlareSolverr`
- **Tags**: `FlareSolverr`
- **Host**: `http://YOUR.IP.ADDRESS:8191`
- **Request Timeout**: `60`
4. Click `Test` to verify the connection.
5. Click `Save`.
Now, when you add an indexer in Prowlarr that requires FlareSolverr, you can select it by selecting the tag FlareSolverr in the tags section.
***
### Setup Prowlarr
@@ -560,7 +619,7 @@ To follow container logs, run `docker-compose logs -f prowlarr`.
Prowlarr web UI is available on port 9696(`localhost:9696`, replace `localhost` by your machine ip if needed).
On login, it will request to set up a login method, anyone works, as an example i have used the forms option
On login, it will request to set up a login method. Any option works; as an example, I have used the forms option
![Prowlarr login setup](img/prowlarrLogin.png)
@@ -588,7 +647,6 @@ Now on Sonar and Radarr in the Settings - Indexers Tab it will show the indexer
***
### Setup Bazarr
[Bazarr](https://www.bazarr.media/) hooks directly into Radarr and Sonarr and makes the process more effective and painless. If you don't care about subtitles go ahead and skip this step.
@@ -597,7 +655,6 @@ Now on Sonar and Radarr in the Settings - Indexers Tab it will show the indexer
The docker file should look like this:
```yaml
bazarr:
container_name: bazarr
@@ -644,14 +701,14 @@ At last, we are going to set this profile as default for Movies and TV shows at
Hit Save on the top of the page and move to the next step.
Now go to the `Providers` tab. Here you can add all the providers that you choose from the provided list, for not I will use [Open Subtitles](https://www.opensubtitles.org/). If you don't have an account head on over to the [Registration page](https://www.opensubtitles.org/en/newuser) and make a new account.
Now go to the `Providers` tab. Here you can add all the providers that you choose from the provided list. For now I will use [Open Subtitles](https://www.opensubtitles.org/). If you don't have an account head on over to the [Registration page](https://www.opensubtitles.org/en/newuser) and make a new account.
![Bazarr Open Subtitles](img/bazarrProviderSetup.png)
Hit Save on the top of the page and move to the next step.
Now we are going to enable the Sonarr and Radarr integrations. Go to the Sonarr tab and hit the enabled toggle.
Here we need to change the address to the `IP` otherwise Bazarr will not detect, change the IP address of your machine, in my example is the `192.168.0.144`, and set the Sonarr API key as we have done during the [Prowlarr configuration](#prowlarr-configuration) then hit test.
Here we need to change the address to the `IP` otherwise Bazarr will not detect it. Change the IP address to your machine's IP (in my example it's `192.168.0.144`), and set the Sonarr API key as we have done during the [Prowlarr configuration](#prowlarr-configuration), then hit test.
![Bazarr Sonarr Configuration](img/bazarrSonarrConfiguration.png)
@@ -668,7 +725,7 @@ After this, all the required configurations are done and everything should work.
#### Testing
Go to Radarr to the `Movies` tab and click on `Add New`, search for a Movie, I'm going to use `The Last Man on Earth (1964)` as is a Public Domain Movie.
Go to Radarr to the `Movies` tab and click on `Add New`, search for a Movie. I'm going to use `The Last Man on Earth (1964)` as it is a Public Domain Movie.
This will automatically fill in all the required information. You can adapt these parameters as you see fit. Make sure that you define a `Monitor` type so the movie is automatically downloaded
![Adding The Last Man on Earth (1964) ](img/testingRadarr.png)
@@ -704,7 +761,7 @@ We'll use Wireguard Docker image from linuxserver [Docker image from linuxserver
This container will allow you to connect to all your services outside your home network exposing only one port
_Note_: It's required to open port 51820 in your router to be abbe to connect with the VPN to your home network.
_Note_: It's required to open port 51820 in your router to be able to connect with the VPN to your home network.
The following website has some example of how to port forward for most of routers: [portforward.com](https://portforward.com/router.htm)
@@ -763,7 +820,7 @@ We'll use Overseerr [official Docker image](https://hub.docker.com/r/sctx/overse
Overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem.
Overseerr helps you find media you want to watch. With inline recommendations and suggestions.
It will allow you to request Movies and TV Shows without the need to go to Radarr or Sonarr, this is really helpful when there are other users in the system that we do want to give access to Sonarr or Radarr for them to request movies.
It will allow you to request Movies and TV Shows without the need to go to Radarr or Sonarr, this is really helpful when there are other users in the system that we do not want to give access to Sonarr or Radarr for them to request movies or tv shows.
### Overseerr Docker Container
@@ -818,45 +875,74 @@ after that fill the remaining settings with your desired configuration.
![Overseerr radar sample configuration](img/Overseerr_radarr_setup.png)
#### Portainer Setup
#### Arcane Setup
We are going to use the official [Portainer Community Edition](https://github.com/portainer/portainer) image, this is a lightweight service that allows us to monitor all of our containers, we can see the status, logs and manage them directly there.
It will require registration on the Portainer website to get a free license.
We are going to use the official [Arcane](https://github.com/getarcaneapp/arcane) image, a beautiful, intuitive interface for managing your Docker containers, images, networks, and volumes. No terminal required, that allows us to monitor all of our containers, we can see the status, logs and manage them directly there.
#### Arcane Docker Container
#### Portainer Docker Container
```yaml
arcane:
image: ghcr.io/ofkm/arcane:latest
container_name: arcane
ports:
- '9010:3552'
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- arcane-data:/app/data
- '${ROOT}/MediaCenter/config/arcane/projects:/app/data/projects'
environment:
- APP_URL=${APP_URL}
- PUID=${PUID}
- PUID=${PUID}
- ENCRYPTION_KEY=${ENCRYPTION_KEY}
- JWT_SECRET=${JWT_SECRET}
- ENVIRONMENT=${ENVIRONMENT}
restart: unless-stopped
```sh
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9444:9443 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ee:latest
volumes:
arcane-data:
```
Then run the container with `docker-compose up -d --remove-orphans`.
### Portainer Configuration
To follow container logs, run `docker-compose logs -f arcane`.
### Arcane Configuration
The Web UI for Portainer will be available on port 9000. Load it up and you will be greeted with the admin creation page.
Add an username and password and hit `Create User`
The Web UI for Arcane will be available on port 9010. Load it up and you will be greeted with the login page.
![Portainer Admin Creation](img/PortainerConfiguration.png)
The default login values are:
On the next page click on `Don't have a license?` and request a free one and insert it here and click on submit.
Username: `arcane`
![Portainer Admin Creation](img/PortainerRegister.png)
Password: `arcane-admin`
Here just click on `Get Started` and you will be redirected to the `Environments` page.
Select your environment click on `Stack` and then on the `quick-arr-stack`.
On this page, you can see all your containers for this stack and multiple options to manage them.
![Arcane Login](img/arcanelogin.png)
![Portainer Admin Creation](img/PortainerConainers.png)
After Login the system will prompt you to change the PW.
![Arcane PW Change](img/arcanechangePW.png)
Then you have all the information of you system here.
![Arcane main page](img/arcane_mainPage.png)
## Mobile Management
[Lunsea](https://www.lunasea.app/), Open source manager
[nzb360](http://nzb360.com), is more powerful than lunasea with a free and paid version.
[nzb360](http://nzb360.com), is more powerful than lunasea with a free and paid version.
_Note_: This only work inside your home network.
_Note_: These only work inside your home network or connected with the wireguard vpn when outised.
## Thanks
[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/rick45)
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=Rick45/quick-arr-Stack&type=Date)](https://www.star-history.com/#Rick45/quick-arr-Stack&Date)

View File

@@ -22,7 +22,7 @@ services:
deluge:
container_name: deluge
image: 'linuxserver/deluge:latest'
image: 'lscr.io/linuxserver/deluge:latest'
restart: unless-stopped
environment:
- 'PUID=${PUID}'
@@ -52,7 +52,7 @@ services:
sonarr:
container_name: sonarr
image: 'linuxserver/sonarr:latest'
image: 'lscr.io/linuxserver/sonarr:latest'
restart: unless-stopped
network_mode: host
environment:
@@ -65,7 +65,7 @@ services:
- '${HDDSTORAGE}:/MediaCenterBox'
radarr:
container_name: radarr
image: 'linuxserver/radarr:latest'
image: 'lscr.io/linuxserver/radarr:latest'
restart: unless-stopped
network_mode: host
environment:
@@ -79,7 +79,7 @@ services:
bazarr:
container_name: bazarr
image: 'linuxserver/bazarr:latest'
image: 'lscr.io/linuxserver/bazarr:latest'
restart: unless-stopped
#network_mode: host
environment:
@@ -103,7 +103,20 @@ services:
volumes:
- '${ROOT}/MediaCenter/config/plex/db:/config'
- '${ROOT}/MediaCenter/config/plex/transcode:/transcode'
- '${HDDSTORAGE}/Completed:/MediaCenterBox'
- '${HDDSTORAGE}/Completed:/MediaCenterBox'
flaresolverr:
# DockerHub mirror flaresolverr/flaresolverr:latest
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- 'LOG_LEVEL=info'
- 'LOG_HTML=false'
- 'CAPTCHA_SOLVER=none'
- 'TZ=${TZ}'
ports:
- '8191:8191'
restart: unless-stopped
### Optional Containers
@@ -143,4 +156,25 @@ services:
- '5055:5055'
volumes:
- '${ROOT}/MediaCenter/config/overseerr/config:/app/config'
restart: unless-stopped
restart: unless-stopped
arcane:
image: ghcr.io/ofkm/arcane:latest
container_name: arcane
ports:
- '9010:3552'
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- arcane-data:/app/data
- '${ROOT}/MediaCenter/config/arcane/projects:/app/data/projects'
environment:
- APP_URL=${APP_URL}
- PUID=${PUID}
- PUID=${PUID}
- ENCRYPTION_KEY=${ENCRYPTION_KEY}
- JWT_SECRET=${JWT_SECRET}
- ENVIRONMENT=${ENVIRONMENT}
restart: unless-stopped
volumes:
arcane-data:

BIN
img/arcane_mainPage.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

BIN
img/arcanechangePW.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
img/arcanelogin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB