2026-02-27 23:07:13 +01:00
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR = " $( cd " $( dirname " ${ BASH_SOURCE [0] } " ) " && pwd ) "
PROJECT_ROOT = " $( cd " ${ SCRIPT_DIR } /.. " && pwd ) "
TEMPLATE_DIR = " ${ TEMPLATE_DIR :- /boot/config/plugins/dockerMan/templates-user } "
TEMPLATE_NAME = " ${ TEMPLATE_NAME :- my -lidarr-spotify-frontend.xml } "
TEMPLATE_PATH = " ${ TEMPLATE_DIR } / ${ TEMPLATE_NAME } "
CONTAINER_NAME = " ${ CONTAINER_NAME :- lidarr -spotify-frontend } "
IMAGE_REPO = " ${ IMAGE_REPO :- local /lidarr-spotify-frontend } "
IMAGE_TAG = " ${ IMAGE_TAG :- latest } "
IMAGE = " ${ IMAGE_REPO } : ${ IMAGE_TAG } "
HOST_PORT = " ${ HOST_PORT :- 3000 } "
2026-02-27 23:46:44 +01:00
APPDATA_PATH = " ${ APPDATA_PATH :- /mnt/user/appdata/lidarr-spotify-frontend } "
MUSIC_PATH = " ${ MUSIC_PATH :- /mnt/user/music } "
TZ_VALUE = " ${ TZ_VALUE :- Europe /Berlin } "
2026-02-27 23:07:13 +01:00
SPOTIFY_CLIENT_ID = " ${ SPOTIFY_CLIENT_ID :- } "
SPOTIFY_CLIENT_SECRET = " ${ SPOTIFY_CLIENT_SECRET :- } "
LIDARR_URL = " ${ LIDARR_URL :- http : //lidarr : 8686 } "
LIDARR_API_KEY = " ${ LIDARR_API_KEY :- } "
LIDARR_ROOT_FOLDER = " ${ LIDARR_ROOT_FOLDER :- /music } "
LIDARR_QUALITY_PROFILE_ID = " ${ LIDARR_QUALITY_PROFILE_ID :- 1 } "
LIDARR_METADATA_PROFILE_ID = " ${ LIDARR_METADATA_PROFILE_ID :- 1 } "
if ! command -v docker >/dev/null 2>& 1; then
echo "Fehler: docker wurde nicht gefunden."
exit 1
fi
echo " ==> Build image ${ IMAGE } "
docker build -t " ${ IMAGE } " " ${ PROJECT_ROOT } "
mkdir -p " ${ TEMPLATE_DIR } "
if [ [ -f " ${ TEMPLATE_PATH } " ] ] ; then
echo " ==> Aktualisiere vorhandenes Template: ${ TEMPLATE_PATH } "
else
echo " ==> Erstelle neues Template: ${ TEMPLATE_PATH } "
fi
cat > " ${ TEMPLATE_PATH } " <<EOF
<?xml version = "1.0" ?>
<Container version = "2" >
<Name>${ CONTAINER_NAME } </Name>
<Repository>${ IMAGE } </Repository>
<Registry>https://hub.docker.com/</Registry>
<Network>bridge</Network>
<MyIP/>
<Shell>sh</Shell>
<Privileged>false</Privileged>
<Support/>
<Project>https://github.com/</Project>
<Overview>Frontend fuer Spotify Album-Suche und Uebergabe an Lidarr.</Overview>
<Category>Downloader:</Category>
<WebUI>http://[ IP] :[ PORT:3000] /</WebUI>
<TemplateURL/>
<Icon>https://raw.githubusercontent.com/homarr-labs/dashboard-icons/main/svg/lidarr.svg</Icon>
<ExtraParams/>
<PostArgs/>
<CPUset/>
<DateInstalled>$( date +%s) </DateInstalled>
<DonateText/>
<DonateLink/>
<Description>Spotify Albumsuche, Track-Auswahl und Uebergabe an Lidarr.</Description>
2026-02-27 23:46:44 +01:00
<Config Name = "WebUI Port" Target = "3000" Default = "3000" Mode = "tcp" Description = "Port fuer das Frontend" Type = "Port" Display = "always" Required = "true" Mask = "false" >${ HOST_PORT } </Config>
<Config Name = "AppData Path" Target = "/config" Default = "/mnt/user/appdata/lidarr-spotify-frontend" Mode = "rw" Description = "Container Path: /config" Type = "Path" Display = "always" Required = "true" Mask = "false" >${ APPDATA_PATH } </Config>
<Config Name = "Music Path (optional)" Target = "/music" Default = "/mnt/user/music" Mode = "rw" Description = "Container Path: /music (optional)" Type = "Path" Display = "advanced" Required = "false" Mask = "false" >${ MUSIC_PATH } </Config>
<Config Name = "Timezone" Target = "TZ" Default = "Europe/Berlin" Mode = "" Description = "Container Timezone" Type = "Variable" Display = "advanced" Required = "false" Mask = "false" >${ TZ_VALUE } </Config>
<Config Name = "Spotify Client ID" Target = "SPOTIFY_CLIENT_ID" Default = "" Mode = "" Description = "Spotify API Client ID" Type = "Variable" Display = "always" Required = "true" Mask = "false" >${ SPOTIFY_CLIENT_ID } </Config>
<Config Name = "Spotify Client Secret" Target = "SPOTIFY_CLIENT_SECRET" Default = "" Mode = "" Description = "Spotify API Client Secret" Type = "Variable" Display = "always" Required = "true" Mask = "true" >${ SPOTIFY_CLIENT_SECRET } </Config>
<Config Name = "Lidarr URL" Target = "LIDARR_URL" Default = "http://lidarr:8686" Mode = "" Description = "URL deines Lidarr Servers" Type = "Variable" Display = "always" Required = "true" Mask = "false" >${ LIDARR_URL } </Config>
<Config Name = "Lidarr API Key" Target = "LIDARR_API_KEY" Default = "" Mode = "" Description = "Lidarr API Key" Type = "Variable" Display = "always" Required = "true" Mask = "true" >${ LIDARR_API_KEY } </Config>
<Config Name = "Lidarr Root Folder" Target = "LIDARR_ROOT_FOLDER" Default = "/music" Mode = "" Description = "Muss in Lidarr existieren" Type = "Variable" Display = "always" Required = "true" Mask = "false" >${ LIDARR_ROOT_FOLDER } </Config>
<Config Name = "Lidarr Quality Profile ID" Target = "LIDARR_QUALITY_PROFILE_ID" Default = "1" Mode = "" Description = "Quality Profile ID aus Lidarr" Type = "Variable" Display = "advanced" Required = "true" Mask = "false" >${ LIDARR_QUALITY_PROFILE_ID } </Config>
<Config Name = "Lidarr Metadata Profile ID" Target = "LIDARR_METADATA_PROFILE_ID" Default = "1" Mode = "" Description = "Metadata Profile ID aus Lidarr" Type = "Variable" Display = "advanced" Required = "true" Mask = "false" >${ LIDARR_METADATA_PROFILE_ID } </Config>
2026-02-27 23:07:13 +01:00
</Container>
EOF
echo "==> Fertig"
echo " Image: ${ IMAGE } "
echo " Template: ${ TEMPLATE_PATH } "
echo " Import in Unraid ueber: Docker -> Add Container -> Template -> ${ TEMPLATE_NAME } "