diff --git a/.env.example b/.env.example index 3374992..6a9b386 100644 --- a/.env.example +++ b/.env.example @@ -19,7 +19,7 @@ ADGUARD_HOSTNAME= ADGUARD_USERNAME= ADGUARD_PASSWORD= QBITTORRENT_USERNAME=admin -QBITTORRENT_PASSWORD= +QBITTORRENT_PASSWORD=adminadmin DNS_CHALLENGE=true DNS_CHALLENGE_PROVIDER=cloudflare LETS_ENCRYPT_CA_SERVER="https://acme-v02.api.letsencrypt.org/directory" diff --git a/.gitignore b/.gitignore index a596d82..777a54d 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,6 @@ docker-compose.override.yml /pia /pia-shared /letsencrypt -/jellyfin /jellyseerr /adguardhome/certs /adguardhome/conf diff --git a/README.md b/README.md index cd5c700..be12ac7 100644 --- a/README.md +++ b/README.md @@ -89,8 +89,6 @@ see [Optional Services](#optional-services) for more information. For the first time, run `./update-config.sh` to update the applications base URLs and set the API keys in `.env`. -Get your qBittorrent password from `docker compose logs qbittorrent` and change it in the UI and in `.env.` - If you want to show Jellyfin information in the homepage, create it in Jellyfin settings and fill `JELLYFIN_API_KEY`. ## Environment Variables @@ -114,7 +112,7 @@ If you want to show Jellyfin information in the homepage, create it in Jellyfin | `ADGUARD_USERNAME` | Optional - AdGuard Home username to show details in the homepage, if enabled | | | `ADGUARD_PASSWORD` | Optional - AdGuard Home password to show details in the homepage, if enabled | | | `QBITTORRENT_USERNAME` | qBittorrent username to access the web UI | `admin` | -| `QBITTORRENT_PASSWORD` | qBittorrent password to access the web UI | None, please set your password | +| `QBITTORRENT_PASSWORD` | qBittorrent password to access the web UI | `adminadmin` | | `DNS_CHALLENGE` | Enable/Disable DNS01 challenge, set to `false` to disable. | `true` | | `DNS_CHALLENGE_PROVIDER` | Provider for DNS01 challenge, [see list here](https://doc.traefik.io/traefik/https/acme/#providers). | `cloudflare` | | `LETS_ENCRYPT_CA_SERVER` | Let's Encrypt CA Server used to generate certificates, set to production by default.
Set to `https://acme-staging-v02.api.letsencrypt.org/directory` to test your changes with the staging server. | `https://acme-v02.api.letsencrypt.org/directory` | @@ -199,7 +197,8 @@ Their API keys can be found in Settings > Security > API Key. ## qBittorrent -Since qBittorrent v4.6.2, a temporary password is generated on startup. Get it with `docker compose logs qbittorrent`: +Running `update-config.sh` will set qBittorrent's password to `adminadmin`. If you wish to update the password manually, +since qBittorrent v4.6.2, a temporary password is generated on startup. Get it with `docker compose logs qbittorrent`: ``` The WebUI administrator username is: admin The WebUI administrator password was not set. A temporary password is provided for this session: @@ -223,7 +222,7 @@ To use the VueTorrent WebUI just go to `qBittorrent`, `Options`, `Web UI`, `Use ## Jellyfin To enable [hardware transcoding](https://jellyfin.org/docs/general/administration/hardware-acceleration/), -depending on your system, you may need to update the following block: +depending on your system, you may need to add the following block: ``` devices: diff --git a/update-config.sh b/update-config.sh index 652341f..a575f80 100755 --- a/update-config.sh +++ b/update-config.sh @@ -7,18 +7,17 @@ function update_arr_config { until [ -f "${CONFIG_ROOT:-.}"/"$container"/config.xml ]; do sleep 1; done sed -i.bak "s/<\/UrlBase>/\/$1<\/UrlBase>/" "${CONFIG_ROOT:-.}"/"$container"/config.xml && rm "${CONFIG_ROOT:-.}"/"$container"/config.xml.bak sed -i.bak 's/^'"${container^^}"'_API_KEY=.*/'"${1^^}"'_API_KEY='"$(sed -n 's/.*\(.*\)<\/ApiKey>.*/\1/p' "${CONFIG_ROOT:-.}"/"$container"/config.xml)"'/' .env && rm .env.bak - echo "Update of ${container^} configuration complete." - echo "Restarting ${container^}..." + echo "Update of ${container^} configuration complete, restarting..." docker compose restart "$container" } -function update_jellyfin_config { +function update_qbittorrent_config { echo "Updating ${container^} configuration..." - until [ -f "${CONFIG_ROOT:-.}"/"$container"/network.xml ]; do sleep 1; done - sed -i.bak "s//\/$container<\/BaseUrl>/" "${CONFIG_ROOT:-.}"/"$container"/network.xml && rm "${CONFIG_ROOT:-.}"/"$container"/network.xml.bak - echo "Update of ${container^} configuration complete." - echo "Restarting ${container^}..." - docker compose restart "$container" + docker compose stop "$container" + until [ -f "${CONFIG_ROOT:-.}"/"$container"/qBittorrent/qBittorrent.conf ]; do sleep 1; done + sed -i.bak '/WebUI\\ServerDomains=*/a WebUI\\Password_PBKDF2="@ByteArray(ARQ77eY1NUZaQsuDHbIMCA==:0WMRkYTUWVT9wVvdDtHAjU9b3b7uB8NR1Gur2hmQCvCDpm39Q+PsJRJPaCU51dEiz+dTzh8qbPsL8WkFljQYFQ==)"' "${CONFIG_ROOT:-.}"/"$container"/qBittorrent/qBittorrent.conf && rm "${CONFIG_ROOT:-.}"/"$container"/qBittorrent/qBittorrent.conf.bak + echo "Update of ${container^} configuration complete, restarting..." + docker compose start "$container" } function update_bazarr_config { @@ -34,17 +33,16 @@ function update_bazarr_config { RADARR_API_KEY=$(sed -n 's/.*\(.*\)<\/ApiKey>.*/\1/p' "${CONFIG_ROOT:-.}"/radarr/config.xml) sed -i.bak "/radarr:/,/^sonarr:/ { s/apikey: .*/apikey: $RADARR_API_KEY/; s/base_url: .*/base_url: \/radarr/; s/ip: .*/ip: radarr/ }" "${CONFIG_ROOT:-.}"/"$container"/config/config/config.yaml && rm "${CONFIG_ROOT:-.}"/"$container"/config/config/config.yaml.bak sed -i.bak 's/^'"${container^^}"'_API_KEY=.*/'"${container^^}"'_API_KEY='"$(sed -n 's/.*apikey: \(.*\)*/\1/p' "${CONFIG_ROOT:-.}"/"$container"/config/config/config.yaml | head -n 1)"'/' .env && rm .env.bak - echo "Update of ${container^} configuration complete." - echo "Restarting ${container^}..." + echo "Update of ${container^} configuration complete, restarting..." docker compose restart "$container" } for container in $(docker ps --format '{{.Names}}'); do if [[ "$container" =~ ^(radarr|sonarr|lidarr|prowlarr)$ ]]; then update_arr_config "$container" - elif [[ "$container" =~ ^(jellyfin)$ ]]; then - update_jellyfin_config "$container" elif [[ "$container" =~ ^(bazarr)$ ]]; then update_bazarr_config "$container" + elif [[ "$container" =~ ^(qbittorrent)$ ]]; then + update_qbittorrent_config "$container" fi done