Add jupiter transmission container
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -9,7 +9,9 @@ WIREGUARD_ADDRESS="${WIREGUARD_ADDRESS:-10.2.0.2/32}"
|
||||
WIREGUARD_DNS="${WIREGUARD_DNS:-10.2.0.1}"
|
||||
|
||||
WIREGUARD_PEER_IP="${WIREGUARD_ENDPOINT%%:*}"
|
||||
DEFAULT_IFACE=$(ip route show default | awk '/default/ {print $5; exit}')
|
||||
|
||||
DEFAULT_GATEWAY="$(ip route show default | awk '/default/ {print $3; exit}')"
|
||||
DEFAULT_INTERFACE="$(ip route show default | awk '/default/ {print $5; exit}')"
|
||||
|
||||
ip link add dev wg0 type wireguard
|
||||
|
||||
@@ -19,21 +21,23 @@ wg set wg0 peer "$WIREGUARD_PUBLIC_KEY" allowed-ips "$WIREGUARD_ALLOWED_IPS" end
|
||||
|
||||
ip link set up dev wg0
|
||||
|
||||
ip route add "$WIREGUARD_PEER_IP/32" dev "$DEFAULT_IFACE"
|
||||
ip route add "$WIREGUARD_PEER_IP/32" via "$DEFAULT_GATEWAY" dev "$DEFAULT_INTERFACE"
|
||||
ip route add 0.0.0.0/0 dev wg0
|
||||
|
||||
echo "nameserver $WIREGUARD_DNS" > /etc/resolv.conf
|
||||
|
||||
PIPE=$(mktemp -u)
|
||||
mkfifo "$PIPE"
|
||||
|
||||
BIND_IP="${WIREGUARD_ADDRESS%%/*}"
|
||||
|
||||
transmission-daemon -d \
|
||||
rm -f "$TRANSMISSION_HOME/settings.json"
|
||||
|
||||
default_settings="$(\
|
||||
transmission-daemon -d \
|
||||
--no-portmap \
|
||||
--bind-address-ipv4 "$BIND_IP" \
|
||||
--bind-address-ipv6 "::1" \
|
||||
"$@" 2> /etc/transmission/settings.json
|
||||
"$@" 2>&1)"
|
||||
|
||||
echo "$default_settings" > "$TRANSMISSION_HOME/settings.json"
|
||||
|
||||
tmpfile="$(mktemp)"
|
||||
jq '. + {
|
||||
@@ -43,21 +47,23 @@ jq '. + {
|
||||
"download-dir": "/var/lib/transmission",
|
||||
"incomplete-dir": "/var/lib/transmission/incomplete",
|
||||
"rename-partial-files": true
|
||||
}' /etc/transmission/settings.json > "$tmpfile"
|
||||
mv "$tmpfile" /etc/transmission/settings.json
|
||||
}' "$TRANSMISSION_HOME/settings.json" > "$tmpfile"
|
||||
mv "$tmpfile" "$TRANSMISSION_HOME/settings.json"
|
||||
|
||||
if [ -f /etc/transmission/settings.override.json ]; then
|
||||
if [ -f "$TRANSMISSION_HOME/settings.override".json ]; then
|
||||
tmpfile="$(mktemp)"
|
||||
jq -s \
|
||||
'.[0] * .[1]' \
|
||||
/etc/transmission/settings.json \
|
||||
/etc/transmission/settings.override.json \
|
||||
"$TRANSMISSION_HOME/settings.json" \
|
||||
"$TRANSMISSION_HOME/settings.override.json" \
|
||||
> "$tmpfile"
|
||||
mv "$tmpfile" /etc/transmission/settings.json
|
||||
mv "$tmpfile" "$TRANSMISSION_HOME/settings.json"
|
||||
fi
|
||||
|
||||
PIPE=$(mktemp -u)
|
||||
mkfifo "$PIPE"
|
||||
|
||||
transmission-daemon -f \
|
||||
--config-dir /etc/transmission \
|
||||
--no-portmap \
|
||||
--bind-address-ipv4 "$BIND_IP" \
|
||||
--bind-address-ipv6 "::1" \
|
||||
@@ -72,7 +78,7 @@ tee "$CAT_PIPE" "$GREP_PIPE" < "$PIPE" > /dev/null &
|
||||
cat "$CAT_PIPE" &
|
||||
grep -q -m 1 "Serving RPC and Web requests on 0.0.0.0:9091" < "$GREP_PIPE"
|
||||
|
||||
rpc_path="$(jq -r '.["rpc-url"]' /etc/transmission/settings.json)"
|
||||
rpc_path="$(jq -r '.["rpc-url"]' "$TRANSMISSION_HOME/settings.json")"
|
||||
rpc_url="http://127.0.0.1:9091${rpc_path}rpc/"
|
||||
|
||||
(
|
||||
@@ -109,7 +115,7 @@ cleanup() {
|
||||
kill -INT "$PID" "$NATPMP_PID" || true
|
||||
|
||||
ip route del 0.0.0.0/0 dev wg0
|
||||
ip route del "$WIREGUARD_PEER_IP/32" dev "$DEFAULT_IFACE"
|
||||
ip route del "$WIREGUARD_PEER_IP/32" via "$DEFAULT_GATEWAY" dev "$DEFAULT_INTERFACE"
|
||||
|
||||
ip link set down dev wg0
|
||||
ip link delete dev wg0
|
||||
|
Reference in New Issue
Block a user