Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions ct/lidify.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/DevScripts/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Tim Moore (angusmaul)
# License: MIT | https://github.com/community-scripts/DevScripts/raw/main/LICENSE
# Source: https://github.com/TheWicklowWolf/Lidify

APP="Lidify"
var_tags="${var_tags:-arr;music}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
var_unprivileged="${var_unprivileged:-1}"

header_info "$APP"
variables
color
catch_errors

function update_script() {
header_info
check_container_storage
check_container_resources

if [[ ! -d /opt/lidify ]]; then
msg_error "No Lidify Installation Found!"
exit
fi

if check_for_gh_release "lidify" "TheWicklowWolf/Lidify"; then
msg_info "Stopping Lidify"
systemctl stop lidify
msg_ok "Stopped Lidify"

PYTHON_VERSION="3.12" setup_uv
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="config" fetch_and_deploy_gh_release "lidify" "TheWicklowWolf/Lidify" "tarball"

msg_info "Updating Lidify"
$STD uv venv --python 3.12 /opt/lidify/.venv
$STD uv pip install --python /opt/lidify/.venv/bin/python -r /opt/lidify/requirements.txt
cat <<EOF >/opt/lidify/.env
RELEASE_VERSION=$(cat ~/.lidify)
EOF
msg_ok "Updated Lidify"

msg_info "Starting Lidify"
systemctl start lidify
msg_ok "Started Lidify"
msg_ok "Updated successfully!"
fi
exit
}

start
build_container
description

msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
echo -e "${GATEWAY}${BGN}http://${IP}:5000${CL}"
52 changes: 52 additions & 0 deletions install/lidify-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/usr/bin/env bash

# Copyright (c) 2021-2026 community-scripts ORG
# Author: Tim Moore (angusmaul)
# License: MIT | https://github.com/community-scripts/DevScripts/raw/main/LICENSE
# Source: https://github.com/TheWicklowWolf/Lidify

source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os

PYTHON_VERSION="3.12" setup_uv
fetch_and_deploy_gh_release "lidify" "TheWicklowWolf/Lidify" "tarball"

msg_info "Setting up Lidify"
$STD uv venv --python 3.12 /opt/lidify/.venv
$STD uv pip install --python /opt/lidify/.venv/bin/python -r /opt/lidify/requirements.txt
install -d -m 700 /opt/lidify/config
cat <<EOF >/opt/lidify/.env
RELEASE_VERSION=$(cat ~/.lidify)
EOF
msg_ok "Set up Lidify"

msg_info "Creating Lidify Service"
cat <<EOF >/etc/systemd/system/lidify.service
[Unit]
Description=Lidify
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/lidify
EnvironmentFile=/opt/lidify/.env
ExecStart=/opt/lidify/.venv/bin/gunicorn src.Lidify:app -c gunicorn_config.py
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now lidify
msg_ok "Created Lidify Service"

motd_ssh
customize
cleanup_lxc
48 changes: 48 additions & 0 deletions json/lidify.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"name": "Lidify",
"slug": "lidify",
"categories": [
14
],
"date_created": "2026-10-14",
"type": "ct",
Comment thread
asylumexp marked this conversation as resolved.
"updateable": true,
"privileged": false,
"interface_port": 5000,
"documentation": "https://github.com/TheWicklowWolf/Lidify#readme",
"website": "https://github.com/TheWicklowWolf/Lidify",
"repository": "https://github.com/TheWicklowWolf/Lidify",
"architectures": [
"amd64"
],
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/lidify.webp",
"description": "Lidify is a music discovery tool for Lidarr. It reads your existing Lidarr artists and uses Last.fm, Spotify or MusicBrainz to suggest similar artists, which can then be added straight back into Lidarr from the web UI.",
"install_methods": [
{
"type": "default",
"script": "ct/lidify.sh",
"config_path": "/opt/lidify/config/settings_config.json",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 8,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Configure the Lidarr address and API key, and a Last.fm or Spotify API key, under Settings in the web UI on first run.",
"type": "info"
},
{
"text": "Lidify lets environment variables override config/settings_config.json. A Lidify setting added to /opt/lidify/.env wins over the web UI, and changes made there will appear to revert.",
"type": "warning"
}
]
}
Loading