You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A expirement to install a Complete Arr*-Stack with user choices. Most likely will never see the main repo. Code needs Cleanup, as it is a hack job for now.
The arr-stack script is ready for testing: bash -c "$(curl -fsSL https://github.com/community-scripts/ProxmoxVED/raw/main/tools/arr-stack.sh)"
This script will prompt you to select the applications you want to install and configure the network settings.
Note: This is not in the official repo yet—it's just a dev version! After merging into ProxmoxVE, it will need to be recreated.
i got the feeling this is a sonarr / radarr / lidarr isue not a issue for this script but i still wanne share it
it fixed itself?
so while writing this about 30 min after the script completed i tried to manually add qbittorrent again just to be sure
and now it works
i changed absolutely nothing the sonarr page was still up i just pressed test again
i think it might be user error somehow are there any more logs you want from these lxc before i trow them in the trash?
i will test the script again soon (don't have time for it rn)
some specs of my server (might be useful idk)
proxmox ve 9.2.3
2x Intel(R) Xeon(R) CPU E5-2690 v3
Linux 7.0.0-3-pve
testing repo enabled
is configuring the arr stack to work with each other also in the scope of this script or is the goal to just install the apps?
some things i would like:
are there any plans on adding more arr apps i would personally like to also have byparr
i use my opnsense router to route the arr stack trough a vpn but might be nice to have a more easy way to do that
and maby during the setup a question for a location on the host device that than gets added as a mountpoint to all lxc's (if you really want to do everything in the script maybe also set the root folders to that dir)
APPS=$(whiptail --checklist "Select Apps" 25 70 15
"sonarr" "" ON
"radarr" "" ON
"prowlarr" "" ON
"bazarr" "" OFF
"lidarr" "" OFF
"readarr" "" OFF
"mylar3" "" OFF
"kapowarr" "" OFF
"autobrr" "" OFF
"wizarr" "" OFF
"whisparr" "" OFF
"jackett" "" OFF
3>&1 1>&2 2>&3)
===== PORTS =====
get_port() {
while true; do
P=$(shuf -i 10000-20000 -n1)
ss -tuln | grep -q ":$P " || { echo $P; return; }
done
}
Starts just right, have to point out the gateway adres and subnet, choose QBITTORRENT or nzbget, and choose the ARR's i want, but stops without error on libc-bin trigger processing.
Log:
`
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
@martinsm91 , did you download the version in the PVED repo, or the new version I started working on?
Please jump over to the other repo so we can properly track things. :)
I also wanted to join testing this. I ran the installer script and notice the following:
When you deselect qbittorrent in the install setup, the script exits (does not reach the step where you enter IP addresses. If you leave qbittorrent selected (default) it runs fine.
Successfully installed/created 6 LXCs, prowlarr, sonarr, radarr, lidarr, qbittorrent and seerr, but missing the initial password for qbittorrent at the end of the script when using automatic method.
Yes, I have opened the arr-stack-summary.txt, but the password is not there. I have now re-installed using the manual method, but can redo the test with the automatic method again.
@shelldor , please take a look at the newer version here.
I have updated it significantly from this version. They might not keep this in the community-scripts repo because it goes beyond the standard scope, but will revisit it after the current migration projects.
Activity
github-actions commentedon May 21, 2026
The arr-stack script is ready for testing:
bash -c "$(curl -fsSL https://github.com/community-scripts/ProxmoxVED/raw/main/tools/arr-stack.sh)"This script will prompt you to select the applications you want to install and configure the network settings.
Note: This is not in the official repo yet—it's just a dev version! After merging into ProxmoxVE, it will need to be recreated.
levi2m commentedon May 21, 2026
hey team
im up for testing this, what would you guys need from me to allow me to test it?
tried using the above
bash scriptand it was giving me 404 errormichelroegl-brunner commentedon May 21, 2026
Sorry, there was a issue in the link. try again pls
sitcomgr commentedon May 22, 2026
i get an 404 error as well .
uviteru commentedon May 22, 2026
Interested in testing, but I'm also getting the 404 error.
JariL10 commentedon May 23, 2026
I just tried too, gives me an 404 error.
levi2m commentedon May 24, 2026
just tested the script, @michelroegl-brunner
amazing job, brother!
we can tweak a little to be falling under the same standards as per non dev env for community-scripts
but so far, so good
all 5 containers were built flawlessly, with all type of commands (tested 5 times with different configs each time, all of them passed)
cheers!
undeadb0b commentedon May 28, 2026
the link on the https://community-scripts.org/scripts/arr-stack page gave me a 404 error
the link here worked for me
looks like a super cool script with a lot of potential
being able set the id's is a massive + for me (i set the ip to the same as the lxc id)
i had a few errors it could not properly add qbittorent to lidarr / sonarr / radarr
logs:
manualy trying to add qbittorent to sonarr / lidarr / radarr also does not work
but i can just connect to qbittorent via my pc
from server:
i got the feeling this is a sonarr / radarr / lidarr isue not a issue for this script but i still wanne share it
it fixed itself?
so while writing this about 30 min after the script completed i tried to manually add qbittorrent again just to be sure
and now it works
i changed absolutely nothing the sonarr page was still up i just pressed test again
i think it might be user error somehow are there any more logs you want from these lxc before i trow them in the trash?
i will test the script again soon (don't have time for it rn)
some specs of my server (might be useful idk)
proxmox ve 9.2.3
2x Intel(R) Xeon(R) CPU E5-2690 v3
Linux 7.0.0-3-pve
testing repo enabled
is configuring the arr stack to work with each other also in the scope of this script or is the goal to just install the apps?
some things i would like:
are there any plans on adding more arr apps i would personally like to also have byparr
i use my opnsense router to route the arr stack trough a vpn but might be nice to have a more easy way to do that
and maby during the setup a question for a location on the host device that than gets added as a mountpoint to all lxc's (if you really want to do everything in the script maybe also set the root folders to that dir)
keep up the great work
JVKeller commentedon Jun 5, 2026
I'll run a test on it...
The website has the wrong link, but I knew where to find it...
JVKeller commentedon Jun 5, 2026
Old password, it generate a random one now. Might be why it failed for you @undeadb0b
I have not tested yet. I'll play with it as soon as I can.
oldmanproductions commentedon Jun 6, 2026
#!/usr/bin/env bash
set -Eeuo pipefail
export DEBIAN_FRONTEND=noninteractive
YW='\033[33m'; GN='\033[1;92m'; RD='\033[01;31m'; CL='\033[m'
msg(){ echo -e "${YW}[INFO]${CL} $1"; }
ok(){ echo -e "${GN}[OK]${CL} $1"; }
warn(){ echo -e "${RD}[WARN]${CL} $1"; }
trap 'warn "Failed at line $LINENO"' ERR
[[ $EUID -ne 0 ]] && { echo "Run as root"; exit 1; }
apt-get update -y >/dev/null
apt-get install -y whiptail curl jq >/dev/null
===== INPUT =====
CTID=$(whiptail --inputbox "Container ID" 8 60 800 3>&1 1>&2 2>&3)
PIA_USER=$(whiptail --inputbox "PIA Username (NOT email)" 8 60 "" 3>&1 1>&2 2>&3)
PIA_PASS=$(whiptail --passwordbox "PIA Password" 8 60 3>&1 1>&2 2>&3)
DOWNLOADER=$(whiptail --menu "Downloader" 12 50 3
"qbittorrent" "qBittorrent"
"deluge" "Deluge"
"both" "Both" 3>&1 1>&2 2>&3)
MEDIA_SERVER=$(whiptail --menu "Media Server" 12 50 3
"none" "None"
"jellyfin" "Jellyfin"
"plex" "Plex" 3>&1 1>&2 2>&3)
APPS=$(whiptail --checklist "Select Apps" 25 70 15
"sonarr" "" ON
"radarr" "" ON
"prowlarr" "" ON
"bazarr" "" OFF
"lidarr" "" OFF
"readarr" "" OFF
"mylar3" "" OFF
"kapowarr" "" OFF
"autobrr" "" OFF
"wizarr" "" OFF
"whisparr" "" OFF
"jackett" "" OFF
3>&1 1>&2 2>&3)
===== PORTS =====
get_port() {
while true; do
P=$(shuf -i 10000-20000 -n1)
ss -tuln | grep -q ":$P " || { echo $P; return; }
done
}
PORT_QBIT=$(get_port)
PORT_DELUGE=$(get_port)
PORT_MEDIA=$(get_port)
declare -A PORTS=()
for app in sonarr radarr prowlarr bazarr lidarr readarr mylar3 kapowarr autobrr wizarr whisparr jackett; do
PORTS[$app]=$(get_port)
done
===== TEMPLATE =====
STORAGE=$(pvesm status | awk 'NR>1{print $1}' | head -n1)
TEMPLATE=$(pveam available | grep debian-12-standard | tail -n1 | awk '{print $2}')
pveam download $STORAGE $TEMPLATE >/dev/null 2>&1 || true
===== CREATE CT =====
msg "Creating container..."
pct create $CTID $STORAGE:vztmpl/$TEMPLATE
-hostname media-stack
-cores 2 -memory 2048
-net0 name=eth0,bridge=vmbr0,ip=dhcp
-rootfs $STORAGE:20
-features nesting=1,keyctl=1
===== ENABLE TUN =====
CONF="/etc/pve/lxc/${CTID}.conf"
grep -q "dev/net/tun" "$CONF" || {
echo "lxc.cgroup2.devices.allow: c 10:200 rwm" >> "$CONF"
echo "lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file" >> "$CONF"
}
ok "TUN enabled"
pct start $CTID
sleep 5
pct exec $CTID -- mkdir -p /data/{downloads,media/movies,media/tv,config}
pct exec $CTID -- mkdir -p /opt/media-stack
===== DOCKER =====
pct exec $CTID -- bash -c "
apt-get update -y &&
apt-get install -y docker.io curl jq &&
systemctl start docker &&
mkdir -p /usr/libexec/docker/cli-plugins &&
curl -sSL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64
-o /usr/libexec/docker/cli-plugins/docker-compose &&
chmod +x /usr/libexec/docker/cli-plugins/docker-compose
"
===== DOCKER COMPOSE =====
cat <<EOF | pct exec $CTID -- tee /opt/media-stack/docker-compose.yml >/dev/null
services:
gluetun:
image: qmcgaw/gluetun
container_name: gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
environment:
- VPN_SERVICE_PROVIDER=private internet access
- VPN_TYPE=openvpn
- OPENVPN_USER=$PIA_USER
- OPENVPN_PASSWORD=$PIA_PASS
- FIREWALL=on
- DOT=on
healthcheck:
test: ["CMD", "ping", "-c", "1", "1.1.1.1"]
interval: 10s
timeout: 5s
retries: 5
restart: always
ports:
- $PORT_QBIT:8080
- $PORT_DELUGE:8112
qbittorrent:
image: lscr.io/linuxserver/qbittorrent
network_mode: service:gluetun
depends_on:
gluetun:
condition: service_healthy
volumes:
- /data/downloads:/downloads
- /data/config/qbit:/config
restart: unless-stopped
deluge:
image: lscr.io/linuxserver/deluge
network_mode: service:gluetun
depends_on:
gluetun:
condition: service_healthy
volumes:
- /data/downloads:/downloads
- /data/config/deluge:/config
restart: unless-stopped
sonarr:
image: lscr.io/linuxserver/sonarr
ports: [$PORTS[sonarr]:8989]
volumes:
- /data/config/sonarr:/config
restart: unless-stopped
radarr:
image: lscr.io/linuxserver/radarr
ports: [$PORTS[radarr]:7878]
volumes:
- /data/config/radarr:/config
restart: unless-stopped
prowlarr:
image: lscr.io/linuxserver/prowlarr
ports: [$PORTS[prowlarr]:9696]
volumes:
- /data/config/prowlarr:/config
restart: unless-stopped
jackett:
image: lscr.io/linuxserver/jackett
ports: [$PORTS[jackett]:9117]
volumes:
- /data/config/jackett:/config
restart: unless-stopped
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
EOF
pct exec $CTID -- bash -c "cd /opt/media-stack && docker compose up -d"
===== WAIT FOR VPN =====
msg "Waiting for VPN..."
pct exec $CTID -- bash -c '
for i in {1..60}; do
docker exec gluetun wget -qO- ifconfig.io && exit 0
sleep 2
done
exit 1
'
ok "VPN READY"
===== AUTO PROWLARR =====
msg "Configuring Prowlarr..."
pct exec $CTID -- bash -c '
sleep 15
PROWLARR_KEY=$(curl -s http://localhost:9696/api/v1/system/status | jq -r .apiKey)
SONARR_KEY=$(curl -s http://localhost:8989/api/v3/system/status | jq -r .apiKey)
RADARR_KEY=$(curl -s http://localhost:7878/api/v3/system/status | jq -r .apiKey)
curl -s -X POST http://localhost:9696/api/v1/applications
-H "X-Api-Key: $PROWLARR_KEY"
-H "Content-Type: application/json"
-d "{"name":"Sonarr","implementation":"Sonarr","configContract":"SonarrSettings","fields":[{"name":"baseUrl","value":"http://sonarr:8989"},{"name":"apiKey","value":"$SONARR_KEY"}]}"
curl -s -X POST http://localhost:9696/api/v1/applications
-H "X-Api-Key: $PROWLARR_KEY"
-H "Content-Type: application/json"
-d "{"name":"Radarr","implementation":"Radarr","configContract":"RadarrSettings","fields":[{"name":"baseUrl","value":"http://radarr:7878"},{"name":"apiKey","value":"$RADARR_KEY"}]}"
curl -s -X POST http://localhost:9696/api/v1/indexer
-H "X-Api-Key: $PROWLARR_KEY"
-H "Content-Type: application/json"
-d "{"name":"1337x","implementation":"Cardigann"}"
echo "Prowlarr ready"
'
IP=$(pct exec $CTID -- hostname -I | awk '{print $1}')
echo ""
ok "INSTALL COMPLETE"
echo "=========================="
echo "qBittorrent → http://$IP:$PORT_QBIT"
echo "Sonarr → http://$IP:${PORTS[sonarr]}"
echo "Radarr → http://$IP:${PORTS[radarr]}"
echo "Prowlarr → http://$IP:${PORTS[prowlarr]}"
a script i was messing about with
9 remaining items
JVKeller commentedon Jul 28, 2026
@martinsm91 Thanks... That bug was fixed in the version I'm working on now if you want to try that one out.
ultimo1337 commentedon Aug 3, 2026
Starts just right, have to point out the gateway adres and subnet, choose QBITTORRENT or nzbget, and choose the ARR's i want, but stops without error on libc-bin trigger processing.
Log:
`
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Hit:1 http://security.debian.org/debian-security trixie-security InRelease
Hit:2 http://deb.debian.org/debian trixie InRelease
Hit:3 http://deb.debian.org/debian trixie-updates InRelease
Hit:4 http://download.proxmox.com/debian/pve trixie InRelease
Reading package lists...
Building dependency tree...
Reading state information...
All packages are up to date.
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Reading package lists...
Building dependency tree...
Reading state information...
Installing:
jq
Installing dependencies:
libjq1 libonig5
Summary:
Upgrading: 0, Installing: 3, Removing: 0, Not Upgrading: 0
Download size: 431 kB
Space needed: 1,265 kB / 201 GB available
Get:1 http://deb.debian.org/debian trixie/main amd64 libonig5 amd64 6.9.9-1+b1 [189 kB]
Get:2 http://deb.debian.org/debian trixie/main amd64 libjq1 amd64 1.7.1-6+deb13u2 [164 kB]
Get:3 http://deb.debian.org/debian trixie/main amd64 jq amd64 1.7.1-6+deb13u2 [77.8 kB]
Fetched 431 kB in 0s (11.9 MB/s)
Selecting previously unselected package libonig5:amd64.
(Reading database ... ^M(Reading database ... 5%^M(Reading database ... 10%^M(Reading databa>
Preparing to unpack .../libonig5_6.9.9-1+b1_amd64.deb ...
Unpacking libonig5:amd64 (6.9.9-1+b1) ...
Selecting previously unselected package libjq1:amd64.
Preparing to unpack .../libjq1_1.7.1-6+deb13u2_amd64.deb ...
Unpacking libjq1:amd64 (1.7.1-6+deb13u2) ...
Selecting previously unselected package jq.
Preparing to unpack .../jq_1.7.1-6+deb13u2_amd64.deb ...
Unpacking jq (1.7.1-6+deb13u2) ...
Setting up libonig5:amd64 (6.9.9-1+b1) ...
Setting up libjq1:amd64 (1.7.1-6+deb13u2) ...
Setting up jq (1.7.1-6+deb13u2) ...
Processing triggers for man-db (2.13.1-1) ...
Processing triggers for libc-bin (2.41-12+deb13u3) ...`
JVKeller commentedon Aug 3, 2026
@ultimo1337 that should be resolved. The fix was in the feature branch I'm working on to add a storage layer.
ultimo1337 commentedon Aug 4, 2026
Thanks for the reply, but the script still doesn't work.
Pick the Linux Bridge for all containers:
ipv4 gateway for container subnet: (It should be able to point out subnet in this step, like 10.0.0.1/24)
network mask:
Pick *arr apps, prowlar is always installed:
Optional download clients picking:
Qbittorrent admin passwd:
Then it shuts down, no error message, no logging path, nothing
JVKeller commentedon Aug 7, 2026
@ultimo1337 I think you may have had a cached version. That output doesn't match up.
I made a few more updates and ran a test. It should produce a usable stack now...
martinsm91 commentedon Aug 7, 2026
Done!
Really smooth.
Tks!!
JVKeller commentedon Aug 11, 2026
@martinsm91 Thanks!
Now that you've dug around in it for a few days setting it up, was there anything that didn't seem to work?
One thing I wasn't sure on was trying to add a tracker in prowlarr.
If all else was good I'll do a PR.
martinsm91 commentedon Aug 12, 2026
dr-morris commentedon Aug 13, 2026
I also wanted to join testing this. I ran the installer script and notice the following:
When you deselect qbittorrent in the install setup, the script exits (does not reach the step where you enter IP addresses. If you leave qbittorrent selected (default) it runs fine.
JVKeller commentedon Aug 13, 2026
Thanks doc. Fixed.
sseiya76 commentedon Oct 2, 2026
Successfully installed/created 6 LXCs, prowlarr, sonarr, radarr, lidarr, qbittorrent and seerr, but missing the initial password for qbittorrent at the end of the script when using automatic method.
JVKeller commentedon Oct 2, 2026
@sseiya76 Which version did you run?
Look for the arr-stack-summary.txt in the folder you ran the script from, the password might be stored in there.
sseiya76 commentedon Oct 3, 2026
@JVKeller I just run the command from https://community-scripts.org/scripts/arr-stack, not sure which version does it refer to?
Yes, I have opened the arr-stack-summary.txt, but the password is not there. I have now re-installed using the manual method, but can redo the test with the automatic method again.
shelldor commentedon Oct 8, 2026
I got the same result..
JVKeller commentedon Oct 8, 2026
@shelldor , please take a look at the newer version here.
I have updated it significantly from this version. They might not keep this in the community-scripts repo because it goes beyond the standard scope, but will revisit it after the current migration projects.