diff --git a/scripts/Common/Software/docker/services/jellyfin/docker-compose.base.yml b/scripts/Common/Software/docker/services/jellyfin/docker-compose.base.yml
index d92eced1..68e8ab89 100644
--- a/scripts/Common/Software/docker/services/jellyfin/docker-compose.base.yml
+++ b/scripts/Common/Software/docker/services/jellyfin/docker-compose.base.yml
@@ -102,22 +102,26 @@ services:
       - ./data/downloads:/downloads
       - rtorrent:/data/rtorrent
   rtorrent:
+    extends:
+      service: privoxy
+    environment:
+      PVPN_CMD_ARGS: --p2p --random
+    volumes:
+      - ./data/proton/rtorrent:/data/proton
+  rtorrent_backend:
     build:
-      dockerfile: ./proton.Dockerfile
-      target: rtorrent
+      dockerfile: ./rtorrent.Dockerfile
       context: .
     restart: unless-stopped
-    profiles:
-      - rtorrent
-    hostname: rtorrent
+    depends_on:
+      rtorrent:
+        condition: service_healthy
+    network_mode: service:rtorrent
     environment:
       PUID: 1337
       PGID: 1337
       PHOME: /config
-      PVPN_CMD_ARGS: --p2p --random
       MAX_UPTIME: 43200
-    sysctls:
-      net.ipv4.conf.all.rp_filter: 2
     command: -o ratio.enable=
              -o ratio.min.set=200
              -o ratio.max.set=10000
@@ -127,11 +131,6 @@ services:
       - /etc/localtime:/etc/localtime:ro
       - rtorrent:/data/rtorrent
       - ./data/downloads:/downloads
-      - ./data/proton/rtorrent:/data/proton
-    devices:
-      - /dev/net/tun
-    cap_add:
-      - NET_ADMIN
   jdownloader:
     image: jlesage/jdownloader-2
     restart: unless-stopped
diff --git a/scripts/Common/Software/docker/services/jellyfin/proton.Dockerfile b/scripts/Common/Software/docker/services/jellyfin/proton.Dockerfile
index 6184ccef..6e409fd1 100644
--- a/scripts/Common/Software/docker/services/jellyfin/proton.Dockerfile
+++ b/scripts/Common/Software/docker/services/jellyfin/proton.Dockerfile
@@ -42,23 +42,3 @@ ENV PVPN_USERNAME= \
 RUN mkdir -p /data/proton
 ENTRYPOINT [ "proton-entrypoint" ]
 CMD [ "supervisord" ]
-
-FROM vpn AS rtorrent
-
-RUN apt-get update \
-    && apt-get upgrade -y \
-    && apt-get install -y \
-        natpmpc \
-        supervisor \
-    && rm -rf /var/lib/apt/lists/*
-
-RUN mkdir -p /data/rtorrent
-COPY --chmod=777 --from=jesec/rtorrent / /
-COPY --chmod=755 ./rtorrent-entrypoint.sh /usr/local/bin/rtorrent-entrypoint
-COPY --chmod=755 ./rtorrent-wrapper.sh /usr/local/bin/rtorrent-wrapper
-COPY ./rtorrent.conf /etc/supervisor/conf.d/supervisord.conf
-ENTRYPOINT [ "proton-entrypoint", "rtorrent-entrypoint" ]
-
-ENV NATPMP_TIMEOUT=60 \
-    NATPMP_INTERVAL= \
-    MAX_UPTIME=
diff --git a/scripts/Common/Software/docker/services/jellyfin/rtorrent-entrypoint.sh b/scripts/Common/Software/docker/services/jellyfin/rtorrent-entrypoint.sh
deleted file mode 100644
index ddff5053..00000000
--- a/scripts/Common/Software/docker/services/jellyfin/rtorrent-entrypoint.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env bash
-fallback="$(expr ${NATPMP_TIMEOUT} \* 3 / 4)"
-export NATPMP_INTERVAL="${NATPMP_INTERVAL:-$fallback}"
-
-groupadd --gid $PGID $USERNAME >/dev/null
-useradd --create-home --home-dir $PHOME $USERNAME --uid $PUID -g $USERNAME 2>/dev/null
-chown $USERNAME:$USERNAME $PHOME
-chown $USERNAME:$USERNAME "/etc/rtorrent"
-mkdir -p /config/.local/share
-chown $USERNAME:$USERNAME /data
-chown -R $USERNAME:$USERNAME /data/rtorrent
-rm -rf /config/.local/share/rtorrent
-ln -s /data/rtorrent /config/.local/share/
-chown -R $USERNAME:$USERNAME /config
-echo "Opening a port using NAT-PMP for $NATPMP_TIMEOUT seconds…"
-output="$(natpmpc -g 10.2.0.1 -a 0 0 tcp "$NATPMP_TIMEOUT")"
-natpmpc -g 10.2.0.1 -a 0 0 udp "$NATPMP_TIMEOUT"
-port="$(echo "$output" | grep -m 1 " public port [[:digit:]]\+ " | sed "s/.* public port \([[:digit:]]\+\).*/\\1/")"
-echo "Port $port has been opened for P2P data transfer!"
-echo "The NAT-PMP port forwarding will be updated every $NATPMP_INTERVAL seconds"
-export PEERPORT="$port"
-
-set -m
-
-{
-    while true
-    do
-        echo "Refreshing NAT-PMP port forwarding…"
-        natpmpc -g 10.2.0.1 -a 0 0 udp "$NATPMP_TIMEOUT"
-        natpmpc -g 10.2.0.1 -a 0 0 tcp "$NATPMP_TIMEOUT"
-        echo "NAT-PMP port forwarding has been refreshed!"
-        sleep "$NATPMP_INTERVAL"
-    done
-} &
-
-cmd="rtorrent -o network.port_range.set=$PEERPORT-$PEERPORT,system.daemon.set=true $@"
-
-if [ ${MAX_UPTIME:-0} -gt 0 ]
-then
-    sudo -iu $USERNAME $cmd &
-    pid=$!
-    sleep "$MAX_UPTIME"
-    pkill -9 $pid
-else
-    sudo -u $USERNAME $cmd
-fi
diff --git a/scripts/Common/Software/docker/services/jellyfin/rtorrent.Dockerfile b/scripts/Common/Software/docker/services/jellyfin/rtorrent.Dockerfile
new file mode 100644
index 00000000..a73be95c
--- /dev/null
+++ b/scripts/Common/Software/docker/services/jellyfin/rtorrent.Dockerfile
@@ -0,0 +1,19 @@
+FROM debian
+RUN apt-get update \
+    && apt-get upgrade -y \
+    && apt-get install -y \
+            natpmpc \
+            supervisor \
+    && rm -rf /var/lib/apt/lists/*
+
+RUN mkdir -p /data/rtorrent
+COPY --chmod=755 --from=jesec/rtorrent / /
+COPY --chmod=755 ./rtorrent/update-natpmp.sh /usr/local/bin/update-natpmp
+COPY --chmod=755 ./rtorrent/rtorrent-entrypoint.sh /usr/local/bin/rtorrent-entrypoint
+COPY ./rtorrent/supervisord.conf /etc/supervisor/supervisord.conf
+ENTRYPOINT [ "rtorrent-entrypoint" ]
+
+ENV USERNAME=proton \
+    NATPMP_TIMEOUT=60 \
+    NATPMP_INTERVAL= \
+    MAX_UPTIME=
diff --git a/scripts/Common/Software/docker/services/jellyfin/rtorrent/rtorrent-entrypoint.sh b/scripts/Common/Software/docker/services/jellyfin/rtorrent/rtorrent-entrypoint.sh
new file mode 100644
index 00000000..19ee5da6
--- /dev/null
+++ b/scripts/Common/Software/docker/services/jellyfin/rtorrent/rtorrent-entrypoint.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+fallback="$(expr ${NATPMP_TIMEOUT} \* 3 / 4)"
+NATPMP_INTERVAL="${NATPMP_INTERVAL:-$fallback}"
+groupadd --gid $PGID $USERNAME >/dev/null
+useradd --create-home --home-dir $PHOME $USERNAME --uid $PUID -g $USERNAME 2>/dev/null
+chown -R $USERNAME:$USERNAME "/etc/rtorrent"
+mkdir -p $PHOME/.local/share
+chown $USERNAME:$USERNAME /data
+chown -R $USERNAME:$USERNAME /data/rtorrent
+rm -rf $PHOME/.local/share/rtorrent
+ln -s /data/rtorrent $PHOME/.local/share/
+chown $USERNAME:$USERNAME $PHOME
+
+echo "Opening a port using NAT-PMP for $NATPMP_TIMEOUT seconds…"
+output="$(natpmpc -g 10.2.0.1 -a 0 0 tcp "$NATPMP_TIMEOUT")"
+natpmpc -g 10.2.0.1 -a 0 0 udp "$NATPMP_TIMEOUT"
+port="$(echo "$output" | grep -m 1 " public port [[:digit:]]\+ " | sed "s/.* public port \([[:digit:]]\+\).*/\\1/")"
+echo "Port $port has been opened for P2P data transfer!"
+echo "The NAT-PMP port forwarding will be updated every $NATPMP_INTERVAL seconds"
+
+RTORRENT_PORT="$port" \
+RTORRENT_ARGS="$@" \
+NATPMP_INTERVAL="$NATPMP_INTERVAL" \
+supervisord
diff --git a/scripts/Common/Software/docker/services/jellyfin/rtorrent/supervisord.conf b/scripts/Common/Software/docker/services/jellyfin/rtorrent/supervisord.conf
new file mode 100644
index 00000000..51ccc3d9
--- /dev/null
+++ b/scripts/Common/Software/docker/services/jellyfin/rtorrent/supervisord.conf
@@ -0,0 +1,24 @@
+[supervisord]
+nodaemon=true
+logfile=/dev/null
+logfile_maxbytes=0
+
+[include]
+files=/etc/supervisor/conf.d/*
+
+[program:update-natpmp]
+command=update-natpmp
+user=root
+stdout_logfile=/dev/fd/1
+stdout_logfile_maxbytes=0
+stderr_logfile=/dev/fd/2
+stderr_logfile_maxbytes=0
+
+[program:rtorrent]
+user=%(ENV_USERNAME)s
+environment=HOME="%(ENV_PHOME)s",USER="%(ENV_USERNAME)s"
+command=rtorrent -o network.port_range.set="%(ENV_RTORRENT_PORT)s"-"%(ENV_RTORRENT_PORT)s",system.daemon.set=true %(ENV_RTORRENT_ARGS)s
+stdout_logfile=/dev/fd/1
+stdout_logfile_maxbytes=0
+stderr_logfile=/dev/fd/2
+stderr_logfile_maxbytes=0
diff --git a/scripts/Common/Software/docker/services/jellyfin/rtorrent/update-natpmp.sh b/scripts/Common/Software/docker/services/jellyfin/rtorrent/update-natpmp.sh
new file mode 100644
index 00000000..f6144b2d
--- /dev/null
+++ b/scripts/Common/Software/docker/services/jellyfin/rtorrent/update-natpmp.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+while true
+do
+    echo "Refreshing NAT-PMP port forwarding…"
+    natpmpc -g 10.2.0.1 -a 0 0 udp "$NATPMP_TIMEOUT"
+    natpmpc -g 10.2.0.1 -a 0 0 tcp "$NATPMP_TIMEOUT"
+    echo "NAT-PMP port forwarding has been refreshed!"
+    sleep "$NATPMP_INTERVAL"
+done