You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

49 lines
2.4 KiB

#!/usr/bin/env bash
set -euo pipefail
# As of v4.6.1, qBittorrent no longer supports a default password and instead prints a temporary password to the logs, which is not ideal for users.
# Users are meant to start qBittorrent, copy the temporary password from the container logs, log in with the temporary password, and then set a new password from the UI.
# This script will set the default password to the legacy 'adminadmin' password if the password is not already set. If a user has already set a password, this script will not overwrite it.
# The app description in the Umbrel app store encourages users to change the default password.
APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")"
QBITTORRENT_CONF_FILE="${APP_DATA_DIR}/data/config/config/qBittorrent.conf"
# Wait up to 30 seconds for the qBittorrent.conf file to exist
echo "Waiting up to 30 seconds for qBittorrent.conf file to exist..."
for attempt in $(seq 1 300); do
if [[ -f "${QBITTORRENT_CONF_FILE}" ]]; then
echo "qBittorrent.conf file exists"
break
fi
sleep 0.1
done
if [[ ! -f "${QBITTORRENT_CONF_FILE}" ]]; then
echo "qBittorrent.conf was never created. Something is likely wrong with the qBittorrent app."
exit
fi
# If a line with `WebUI\Password_PBKDF2` does not exist yet in the qBittorrent.conf, then a custom password hasn't been set yet and we write out `adminadmin` as the default password.
# This line is expected to be under the [Preferences] section.
if ! grep --quiet '^WebUI\\Password_PBKDF2' "${QBITTORRENT_CONF_FILE}"; then
echo "WebUI\\Password_PBKDF2 does not exist in qBittorrent.conf. Adding default password."
# wait 5 seconds to be extra sure the file is fully written by the qBittorrent service
echo "Waiting 5 seconds for qBittorrent.conf file to be fully written..."
sleep 5
# stop the qBittorrent service
echo "Stopping qBittorrent..."
"${UMBREL_ROOT}/scripts/app" compose "${APP_ID}" stop server
echo "Writing default password adminadmin to qBittorrent.conf"
sed -i '/^\[Preferences\]/a WebUI\\Password_PBKDF2="@ByteArray(gTzqQHUv3A1X43tLaAhaJQ==:ZBCIBA4honNZ7H66xdEoHpqBC/Vvwj17ZCjQKARSK78ScJWDMdWSfxezHG536UekAL/zpRn571MXCfhtdqiArA==)"' "${QBITTORRENT_CONF_FILE}"
# start the qBittorrent service
echo "Starting qBittorrent..."
"${UMBREL_ROOT}/scripts/app" compose "${APP_ID}" start server
else
echo "'WebUI\\Password_PBKDF2' already exists in qBittorrent.conf. No changes made."
fi