mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	[feat]: migrate all update_scripts to new version helper (gh) (#7262)
* first migrations * finalize * add fix kometa inside function
This commit is contained in:
		
							
								
								
									
										14
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							@@ -28,12 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					  if check_for_gh_release "2fauth" "Bubka/2FAuth"; then
 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.2fauth 2>/dev/null)" ]] || [[ ! -f ~/.2fauth ]]; then
 | 
					 | 
				
			||||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
					 | 
				
			||||||
    $STD apt-get update
 | 
					    $STD apt-get update
 | 
				
			||||||
    $STD apt-get -y upgrade
 | 
					    $STD apt-get -y upgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -64,18 +59,13 @@ function update_script() {
 | 
				
			|||||||
    $STD systemctl restart nginx
 | 
					    $STD systemctl restart nginx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Cleaning Up"
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
    rm -rf "v${RELEASE}.zip"
 | 
					 | 
				
			||||||
    if dpkg -l | grep -q 'php8.2'; then
 | 
					    if dpkg -l | grep -q 'php8.2'; then
 | 
				
			||||||
      $STD apt-get remove --purge -y php8.2*
 | 
					      $STD apt-get remove --purge -y php8.2*
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    $STD apt-get -y autoremove
 | 
					    $STD apt-get -y autoremove
 | 
				
			||||||
    $STD apt-get -y autoclean
 | 
					    $STD apt-get -y autoclean
 | 
				
			||||||
    msg_ok "Cleanup Completed"
 | 
					    msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    echo "${RELEASE}" >/opt/2fauth_version.txt
 | 
					 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "adventurelog" "seanmorley15/adventurelog"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.adventurelog 2>/dev/null)" ]] || [[ ! -f ~/.adventurelog ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop adventurelog-backend
 | 
					    systemctl stop adventurelog-backend
 | 
				
			||||||
    systemctl stop adventurelog-frontend
 | 
					    systemctl stop adventurelog-frontend
 | 
				
			||||||
@@ -42,7 +40,7 @@ function update_script() {
 | 
				
			|||||||
    fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
 | 
					    fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
 | 
				
			||||||
    PYTHON_VERSION="3.12" setup_uv
 | 
					    PYTHON_VERSION="3.12" setup_uv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cp /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
					    cp /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
				
			||||||
    cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
 | 
					    cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
 | 
				
			||||||
    cd /opt/adventurelog/backend/server
 | 
					    cd /opt/adventurelog/backend/server
 | 
				
			||||||
@@ -70,10 +68,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning Up"
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
    rm -rf /opt/adventurelog-backup
 | 
					    rm -rf /opt/adventurelog-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								ct/argus.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ct/argus.sh
									
									
									
									
									
								
							@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "argus" "release-argus/Argus"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.Argus 2>/dev/null)" ]] || [[ ! -f ~/.Argus ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop argus
 | 
					    systemctl stop argus
 | 
				
			||||||
    msg_ok "Service stopped"
 | 
					    msg_ok "Service stopped"
 | 
				
			||||||
@@ -39,11 +37,9 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start argus
 | 
					    systemctl start argus
 | 
				
			||||||
    msg_ok "Service started"
 | 
					    msg_ok "Service started"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "${APP} is already up to date (${RELEASE})"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,8 +29,8 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/authelia/authelia/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(/usr/bin/authelia -v | awk '{print substr($3, 2, length($2)) }')" ]]; then
 | 
					  if check_for_gh_release "authelia" "authelia/authelia"; then
 | 
				
			||||||
    $STD apt-get update
 | 
					    $STD apt-get update
 | 
				
			||||||
    $STD apt-get -y upgrade
 | 
					    $STD apt-get -y upgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -40,14 +40,10 @@ function update_script() {
 | 
				
			|||||||
    $STD apt-get -y autoremove
 | 
					    $STD apt-get -y autoremove
 | 
				
			||||||
    $STD apt-get -y autoclean
 | 
					    $STD apt-get -y autoclean
 | 
				
			||||||
    msg_ok "Cleanup Completed"
 | 
					    msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "autobrr" "autobrr/autobrr"; then
 | 
				
			||||||
    if [[ "${RELEASE}" != "$(cat ~/.autobrr 2>/dev/null)" ]] || [[ ! -f ~/.autobrr ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP} LXC"
 | 
					    msg_info "Stopping ${APP} LXC"
 | 
				
			||||||
    systemctl stop autobrr
 | 
					    systemctl stop autobrr
 | 
				
			||||||
    msg_ok "Stopped ${APP} LXC"
 | 
					    msg_ok "Stopped ${APP} LXC"
 | 
				
			||||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP} LXC"
 | 
					    msg_info "Starting ${APP} LXC"
 | 
				
			||||||
    systemctl start autobrr
 | 
					    systemctl start autobrr
 | 
				
			||||||
    msg_ok "Started ${APP} LXC"
 | 
					    msg_ok "Started ${APP} LXC"
 | 
				
			||||||
      
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "babybuddy" "babybuddy/babybuddy"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.babybuddy 2>/dev/null)" ]] || [[ ! -f ~/.babybuddy ]]; then
 | 
					 | 
				
			||||||
    setup_uv
 | 
					    setup_uv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
@@ -44,13 +43,13 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy"
 | 
					    fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/babybuddy
 | 
					    cd /opt/babybuddy
 | 
				
			||||||
    mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
 | 
					    mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
 | 
				
			||||||
    source .venv/bin/activate
 | 
					    source .venv/bin/activate
 | 
				
			||||||
    $STD uv pip install -r requirements.txt
 | 
					    $STD uv pip install -r requirements.txt
 | 
				
			||||||
    $STD python manage.py migrate
 | 
					    $STD python manage.py migrate
 | 
				
			||||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Fixing permissions"
 | 
					    msg_info "Fixing permissions"
 | 
				
			||||||
    chown -R www-data:www-data /opt/data
 | 
					    chown -R www-data:www-data /opt/data
 | 
				
			||||||
@@ -62,14 +61,10 @@ function update_script() {
 | 
				
			|||||||
    systemctl start uwsgi
 | 
					    systemctl start uwsgi
 | 
				
			||||||
    systemctl start nginx
 | 
					    systemctl start nginx
 | 
				
			||||||
    msg_ok "Services Started"
 | 
					    msg_ok "Services Started"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/sabre-io/Baikal/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					  if check_for_gh_release "baikal" "sabre-io/Baikal"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.baikal 2>/dev/null)" ]] || [[ ! -f ~/.baikal ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -58,8 +57,6 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/baikal-backup
 | 
					    rm -rf /opt/baikal-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,11 +29,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE_MEILISEARCH=$(curl -fsSL https://api.github.com/repos/meilisearch/meilisearch/releases/latest | jq -r '.tag_name | sub("^v"; "")')
 | 
					  if check_for_gh_release "bar-assistant" "karlomikus/bar-assistant"; then
 | 
				
			||||||
  RELEASE_BARASSISTANT=$(curl -fsSL https://api.github.com/repos/karlomikus/bar-assistant/releases/latest | jq -r '.tag_name | sub("^v"; "")')
 | 
					 | 
				
			||||||
  RELEASE_SALTRIM=$(curl -fsSL https://api.github.com/repos/karlomikus/vue-salt-rim/releases/latest | jq -r '.tag_name | sub("^v"; "")')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if [[ "${RELEASE_BARASSISTANT}" != "$(cat ~/.bar-assistant 2>/dev/null)" ]] || [[ ! -f ~/.bar-assistant ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping nginx"
 | 
					    msg_info "Stopping nginx"
 | 
				
			||||||
    systemctl stop nginx
 | 
					    systemctl stop nginx
 | 
				
			||||||
    msg_ok "Stopped nginx"
 | 
					    msg_ok "Stopped nginx"
 | 
				
			||||||
@@ -45,7 +41,7 @@ function update_script() {
 | 
				
			|||||||
    fetch_and_deploy_gh_release "bar-assistant" "karlomikus/bar-assistant" "tarball" "latest" "/opt/bar-assistant"
 | 
					    fetch_and_deploy_gh_release "bar-assistant" "karlomikus/bar-assistant" "tarball" "latest" "/opt/bar-assistant"
 | 
				
			||||||
    setup_composer
 | 
					    setup_composer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE_BARASSISTANT}"
 | 
					    msg_info "Updating Bar-Assistant"
 | 
				
			||||||
    cp -r /opt/bar-assistant-backup/.env /opt/bar-assistant/.env
 | 
					    cp -r /opt/bar-assistant-backup/.env /opt/bar-assistant/.env
 | 
				
			||||||
    cp -r /opt/bar-assistant-backup/storage/bar-assistant /opt/bar-assistant/storage/bar-assistant
 | 
					    cp -r /opt/bar-assistant-backup/storage/bar-assistant /opt/bar-assistant/storage/bar-assistant
 | 
				
			||||||
    cd /opt/bar-assistant
 | 
					    cd /opt/bar-assistant
 | 
				
			||||||
@@ -58,7 +54,7 @@ function update_script() {
 | 
				
			|||||||
    $STD php artisan route:cache
 | 
					    $STD php artisan route:cache
 | 
				
			||||||
    $STD php artisan event:cache
 | 
					    $STD php artisan event:cache
 | 
				
			||||||
    chown -R www-data:www-data /opt/bar-assistant
 | 
					    chown -R www-data:www-data /opt/bar-assistant
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE_BARASSISTANT}"
 | 
					    msg_ok "Updated Bar-Assistant"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting nginx"
 | 
					    msg_info "Starting nginx"
 | 
				
			||||||
    systemctl start nginx
 | 
					    systemctl start nginx
 | 
				
			||||||
@@ -67,11 +63,9 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    rm -rf /opt/bar-assistant-backup
 | 
					    rm -rf /opt/bar-assistant-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE_BARASSISTANT}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ "${RELEASE_SALTRIM}" != "$(cat ~/.vue-salt-rim 2>/dev/null)" ]] || [[ ! -f ~/.vue-salt-rim ]]; then
 | 
					  if check_for_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim"; then
 | 
				
			||||||
    msg_info "Backing up Vue Salt Rim"
 | 
					    msg_info "Backing up Vue Salt Rim"
 | 
				
			||||||
    mv /opt/vue-salt-rim /opt/vue-salt-rim-backup
 | 
					    mv /opt/vue-salt-rim /opt/vue-salt-rim-backup
 | 
				
			||||||
    msg_ok "Backed up Vue Salt Rim"
 | 
					    msg_ok "Backed up Vue Salt Rim"
 | 
				
			||||||
@@ -82,12 +76,12 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim" "tarball" "latest" "/opt/vue-salt-rim"
 | 
					    fetch_and_deploy_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim" "tarball" "latest" "/opt/vue-salt-rim"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating Salt Rim to ${RELEASE_SALTRIM}"
 | 
					    msg_info "Updating Vue Salt Rim"
 | 
				
			||||||
    cp /opt/vue-salt-rim-backup/public/config.js /opt/vue-salt-rim/public/config.js
 | 
					    cp /opt/vue-salt-rim-backup/public/config.js /opt/vue-salt-rim/public/config.js
 | 
				
			||||||
    cd /opt/vue-salt-rim
 | 
					    cd /opt/vue-salt-rim
 | 
				
			||||||
    $STD npm install
 | 
					    $STD npm install
 | 
				
			||||||
    $STD npm run build
 | 
					    $STD npm run build
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE_SALTRIM}"
 | 
					    msg_ok "Updated Vue Salt Rim"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting nginx"
 | 
					    msg_info "Starting nginx"
 | 
				
			||||||
    systemctl start nginx
 | 
					    systemctl start nginx
 | 
				
			||||||
@@ -96,12 +90,9 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    rm -rf /opt/vue-salt-rim-backup
 | 
					    rm -rf /opt/vue-salt-rim-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. Salt Rim is already at ${RELEASE_SALTRIM}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ "${RELEASE_MEILISEARCH}" != "$(cat ~/.meilisearch 2>/dev/null)" ]] || [[ ! -f ~/.meilisearch ]]; then
 | 
					  if check_for_gh_release "meilisearch" "meilisearch/meilisearch"; then
 | 
				
			||||||
    msg_info "Stopping Meilisearch"
 | 
					    msg_info "Stopping Meilisearch"
 | 
				
			||||||
    systemctl stop meilisearch
 | 
					    systemctl stop meilisearch
 | 
				
			||||||
    msg_ok "Stopped Meilisearch"
 | 
					    msg_ok "Stopped Meilisearch"
 | 
				
			||||||
@@ -111,10 +102,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Meilisearch"
 | 
					    msg_info "Starting Meilisearch"
 | 
				
			||||||
    systemctl start meilisearch
 | 
					    systemctl start meilisearch
 | 
				
			||||||
    msg_ok "Started Meilisearch"
 | 
					    msg_ok "Started Meilisearch"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Updated Meilisearch"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. Meilisearch is already at ${RELEASE_MEILISEARCH}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,8 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Forceu/barcodebuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.barcodebuddy 2>/dev/null)" ]] || [[ ! -f ~/.barcodebuddy ]]; then
 | 
					  if check_for_gh_release "barcodebuddy" "Forceu/barcodebuddy"; then
 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    systemctl stop barcodebuddy
 | 
					    systemctl stop barcodebuddy
 | 
				
			||||||
@@ -55,8 +55,6 @@ function update_script() {
 | 
				
			|||||||
    rm -r /opt/barcodebuddy-backup
 | 
					    rm -r /opt/barcodebuddy-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								ct/bazarr.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/bazarr.sh
									
									
									
									
									
								
							@@ -27,14 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "bazarr" "morpheus65535/bazarr"; then
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/morpheus65535/bazarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.bazarr 2>/dev/null)" ]] || [[ ! -f ~/.bazarr ]]; then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PYTHON_VERSION="3.13" setup_uv
 | 
					    PYTHON_VERSION="3.13" setup_uv
 | 
				
			||||||
    fetch_and_deploy_gh_release "bazarr" "morpheus65535/bazarr" "prebuild" "latest" "/opt/bazarr" "bazarr.zip"
 | 
					    fetch_and_deploy_gh_release "bazarr" "morpheus65535/bazarr" "prebuild" "latest" "/opt/bazarr" "bazarr.zip"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -44,10 +37,7 @@ function update_script() {
 | 
				
			|||||||
    sed -i.bak 's/--only-binary=Pillow//g' /opt/bazarr/requirements.txt
 | 
					    sed -i.bak 's/--only-binary=Pillow//g' /opt/bazarr/requirements.txt
 | 
				
			||||||
    $STD uv pip install -r /opt/bazarr/requirements.txt --system
 | 
					    $STD uv pip install -r /opt/bazarr/requirements.txt --system
 | 
				
			||||||
    msg_ok "Setup Bazarr"
 | 
					    msg_ok "Setup Bazarr"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.bitmagnet 2>/dev/null)" ]] || [[ ! -f ~/.bitmagnet ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop bitmagnet-web
 | 
					    systemctl stop bitmagnet-web
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -63,22 +62,19 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/bitmagnet
 | 
					    rm -rf /opt/bitmagnet
 | 
				
			||||||
    fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"
 | 
					    fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/bitmagnet
 | 
					    cd /opt/bitmagnet
 | 
				
			||||||
    VREL=v$RELEASE
 | 
					    VREL=v$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
    $STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
 | 
					    $STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
 | 
				
			||||||
    chmod +x bitmagnet
 | 
					    chmod +x bitmagnet
 | 
				
			||||||
    [ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
 | 
					    [ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
 | 
				
			||||||
    [ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
 | 
					    [ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start bitmagnet-web
 | 
					    systemctl start bitmagnet-web
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "booklore" "booklore-app/BookLore"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/booklore-app/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.booklore 2>/dev/null)" ]] || [[ ! -f ~/.booklore ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop booklore
 | 
					    systemctl stop booklore
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -61,10 +59,7 @@ function update_script() {
 | 
				
			|||||||
    systemctl start booklore
 | 
					    systemctl start booklore
 | 
				
			||||||
    systemctl reload nginx
 | 
					    systemctl reload nginx
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/BookStackApp/BookStack/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "bookstack" "BookStackApp/BookStack"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.bookstack 2>/dev/null)" ]] || [[ ! -f ~/.bookstack ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Apache2"
 | 
					    msg_info "Stopping Apache2"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Services Stopped"
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
@@ -58,7 +57,6 @@ function update_script() {
 | 
				
			|||||||
    chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
 | 
					    chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
 | 
				
			||||||
    chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
 | 
					    chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
 | 
				
			||||||
    chmod -R 640 /opt/bookstack/.env
 | 
					    chmod -R 640 /opt/bookstack/.env
 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					 | 
				
			||||||
    msg_ok "Configured BookStack"
 | 
					    msg_ok "Configured BookStack"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Apache2"
 | 
					    msg_info "Starting Apache2"
 | 
				
			||||||
@@ -69,12 +67,9 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/bookstack-backup
 | 
					    rm -rf /opt/bookstack-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/jordan-dalby/ByteStash/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "bytestash" "jordan-dalby/ByteStash"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.bytestash 2>/dev/null)" ]] || [[ ! -f ~/.bytestash ]]; then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    read -rp "${TAB3}Did you make a backup via application WebUI? (y/n): " backuped
 | 
					    read -rp "${TAB3}Did you make a backup via application WebUI? (y/n): " backuped
 | 
				
			||||||
    if [[ "$backuped" =~ ^[Yy]$ ]]; then
 | 
					    if [[ "$backuped" =~ ^[Yy]$ ]]; then
 | 
				
			||||||
      msg_info "Stopping Services"
 | 
					      msg_info "Stopping Services"
 | 
				
			||||||
@@ -57,10 +55,7 @@ function update_script() {
 | 
				
			|||||||
      exit
 | 
					      exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,8 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "checkmk" "checkmk/checkmk"; then
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
 | 
					    RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
 | 
				
			||||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
    $STD omd stop monitoring
 | 
					    $STD omd stop monitoring
 | 
				
			||||||
    $STD omd cp monitoring monitoringbackup
 | 
					    $STD omd cp monitoring monitoringbackup
 | 
				
			||||||
@@ -39,11 +39,9 @@ curl -fsSL "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEA
 | 
				
			|||||||
    $STD omd -f rm monitoringbackup
 | 
					    $STD omd -f rm monitoringbackup
 | 
				
			||||||
    $STD omd cleanup
 | 
					    $STD omd cleanup
 | 
				
			||||||
    rm -rf /opt/checkmk.deb
 | 
					    rm -rf /opt/checkmk.deb
 | 
				
			||||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
  else
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "cleanuparr" "Cleanuparr/Cleanuparr"; then
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/Cleanuparr/Cleanuparr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
    if [[ "${RELEASE}" != "$(cat ~/.Cleanuparr 2>/dev/null)" ]] || [[ ! -f ~/.Cleanuparr ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop cleanuparr
 | 
					    systemctl stop cleanuparr
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -40,12 +38,9 @@ function update_script() {
 | 
				
			|||||||
    systemctl start cleanuparr
 | 
					    systemctl start cleanuparr
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "cloudreve" "cloudreve/cloudreve"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/cloudreve/cloudreve/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.cloudreve 2>/dev/null)" ]] || [[ ! -f ~/.cloudreve ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop cloudreve
 | 
					    systemctl stop cloudreve
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -40,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start cloudreve
 | 
					    systemctl start cloudreve
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Athou/commafeed/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
 | 
					  if check_for_gh_release "commafeed" "Athou/commafeed"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.commafeed 2>/dev/null)" ]] || [[ ! -f ~/.commafeed ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop commafeed
 | 
					    systemctl stop commafeed
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -59,8 +58,6 @@ function update_script() {
 | 
				
			|||||||
    systemctl start commafeed
 | 
					    systemctl start commafeed
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,13 +27,12 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/raydak-labs/configarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "configarr" "raydak-labs/configarr"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.configarr 2>/dev/null || cat /opt/configarr_version.txt 2>/dev/null)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop configarr-task.timer
 | 
					    systemctl stop configarr-task.timer
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    mkdir -p /opt/backup/
 | 
					    mkdir -p /opt/backup/
 | 
				
			||||||
    mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
 | 
					    mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
 | 
				
			||||||
    rm -rf /opt/configarr
 | 
					    rm -rf /opt/configarr
 | 
				
			||||||
@@ -42,16 +41,14 @@ function update_script() {
 | 
				
			|||||||
    cd /opt/configarr
 | 
					    cd /opt/configarr
 | 
				
			||||||
    $STD pnpm install
 | 
					    $STD pnpm install
 | 
				
			||||||
    $STD pnpm run build
 | 
					    $STD pnpm run build
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start configarr-task.timer
 | 
					    systemctl start configarr-task.timer
 | 
				
			||||||
    msg_ok "Started configarr"
 | 
					    msg_ok "Started configarr"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    rm -rf /opt/backup
 | 
					    rm -rf /opt/backup
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/C4illin/ConvertX/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					  if check_for_gh_release "ConvertX" "C4illin/ConvertX"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.convertx 2>/dev/null)" ]] || [[ ! -f ~/.convertx ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop convertx
 | 
					    systemctl stop convertx
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -41,25 +40,21 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
 | 
					    fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    if [[ -d /opt/data ]]; then
 | 
					    if [[ -d /opt/data ]]; then
 | 
				
			||||||
      mv /opt/data /opt/convertx/data
 | 
					      mv /opt/data /opt/convertx/data
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    cd /opt/convertx
 | 
					    cd /opt/convertx
 | 
				
			||||||
    $STD bun install
 | 
					    $STD bun install
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start convertx
 | 
					    systemctl start convertx
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,27 +33,16 @@ function update_script() {
 | 
				
			|||||||
      msg_error "No ${APP} Installation Found!"
 | 
					      msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
      exit
 | 
					      exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
 | 
					    NODE_VERSION="22" setup_nodejs
 | 
				
			||||||
      if ! command -v npm >/dev/null 2>&1; then
 | 
					
 | 
				
			||||||
        echo "Installing NPM..."
 | 
					 | 
				
			||||||
        $STD apt-get install -y npm
 | 
					 | 
				
			||||||
        echo "Installed NPM..."
 | 
					 | 
				
			||||||
      fi
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    msg_info "Updating ${APP}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    $STD /opt/cronicle/bin/control.sh upgrade
 | 
					    $STD /opt/cronicle/bin/control.sh upgrade
 | 
				
			||||||
    msg_ok "Updated ${APP}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if [ "$UPD" == "2" ]; then
 | 
					  if [ "$UPD" == "2" ]; then
 | 
				
			||||||
    if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
 | 
					    NODE_VERSION="22" setup_nodejs
 | 
				
			||||||
      if ! command -v npm >/dev/null 2>&1; then
 | 
					    if check_for_gh_release "cronicle" "jhuckaby/Cronicle"; then
 | 
				
			||||||
        echo "Installing NPM..."
 | 
					 | 
				
			||||||
        $STD apt-get install -y npm
 | 
					 | 
				
			||||||
        echo "Installed NPM..."
 | 
					 | 
				
			||||||
      fi
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    LATEST=$(curl -fsSL https://api.github.com/repos/jhuckaby/Cronicle/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
 | 
					 | 
				
			||||||
      IP=$(hostname -I | awk '{print $1}')
 | 
					      IP=$(hostname -I | awk '{print $1}')
 | 
				
			||||||
      msg_info "Installing Dependencies"
 | 
					      msg_info "Installing Dependencies"
 | 
				
			||||||
      $STD apt-get install -y \
 | 
					      $STD apt-get install -y \
 | 
				
			||||||
@@ -80,6 +69,7 @@ function update_script() {
 | 
				
			|||||||
      echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
 | 
					      echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
 | 
				
			||||||
      exit
 | 
					      exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/cryptpad/cryptpad/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					  if check_for_gh_release "cryptpad" "cryptpad/cryptpad"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.cryptpad 2>/dev/null)" ]] || [[ ! -f ~/.cryptpad ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop cryptpad
 | 
					    systemctl stop cryptpad
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -40,12 +39,12 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad"
 | 
					    fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/cryptpad
 | 
					    cd /opt/cryptpad
 | 
				
			||||||
    $STD npm ci
 | 
					    $STD npm ci
 | 
				
			||||||
    $STD npm run install:components
 | 
					    $STD npm run install:components
 | 
				
			||||||
    $STD npm run build
 | 
					    $STD npm run build
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restoring configuration"
 | 
					    msg_info "Restoring configuration"
 | 
				
			||||||
    mv /opt/config.js /opt/cryptpad/config/
 | 
					    mv /opt/config.js /opt/cryptpad/config/
 | 
				
			||||||
@@ -54,10 +53,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start cryptpad
 | 
					    systemctl start cryptpad
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								ct/dashy.sh
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ct/dashy.sh
									
									
									
									
									
								
							@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "dashy" "Lissy93/dashy"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.dashy 2>/dev/null)" ]] || [[ ! -f ~/.dashy ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop dashy
 | 
					    systemctl stop dashy
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -46,11 +44,11 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/dashy
 | 
					    rm -rf /opt/dashy
 | 
				
			||||||
    fetch_and_deploy_gh_release "dashy" "Lissy93/dashy"
 | 
					    fetch_and_deploy_gh_release "dashy" "Lissy93/dashy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/dashy
 | 
					    cd /opt/dashy
 | 
				
			||||||
    npm install
 | 
					    npm install
 | 
				
			||||||
    npm run build
 | 
					    npm run build
 | 
				
			||||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restoring conf.yml"
 | 
					    msg_info "Restoring conf.yml"
 | 
				
			||||||
    cd ~
 | 
					    cd ~
 | 
				
			||||||
@@ -64,10 +62,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Dashy"
 | 
					    msg_info "Starting Dashy"
 | 
				
			||||||
    systemctl start dashy
 | 
					    systemctl start dashy
 | 
				
			||||||
    msg_ok "Started Dashy"
 | 
					    msg_ok "Started Dashy"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,8 +30,8 @@ function update_script() {
 | 
				
			|||||||
    NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
 | 
					    NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  export NODE_OPTIONS="--max_old_space_size=4096"
 | 
					  export NODE_OPTIONS="--max_old_space_size=4096"
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/docmost/docmost/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.docmost 2>/dev/null)" ]] || [[ ! -f ~/.docmost ]]; then
 | 
					  if check_for_gh_release "docmost" "docmost/docmost"; then
 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop docmost
 | 
					    systemctl stop docmost
 | 
				
			||||||
    msg_ok "${APP} Stopped"
 | 
					    msg_ok "${APP} Stopped"
 | 
				
			||||||
@@ -44,7 +44,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "docmost" "docmost/docmost"
 | 
					    fetch_and_deploy_gh_release "docmost" "docmost/docmost"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/docmost
 | 
					    cd /opt/docmost
 | 
				
			||||||
    mv /opt/.env /opt/docmost/.env
 | 
					    mv /opt/.env /opt/docmost/.env
 | 
				
			||||||
    mv /opt/data /opt/docmost/data
 | 
					    mv /opt/data /opt/docmost/data
 | 
				
			||||||
@@ -55,10 +55,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start docmost
 | 
					    systemctl start docmost
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/duplicati/duplicati/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
 | 
					  if check_for_gh_release "duplicati" "duplicati/duplicati"; then
 | 
				
			||||||
    if [[ "${RELEASE}" != "$(cat ~/.duplicati)" ]] || [[ ! -f ~/.duplicati ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop duplicati
 | 
					    systemctl stop duplicati
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start duplicati
 | 
					    systemctl start duplicati
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
 | 
					  if check_for_gh_release "emby" "MediaBrowser/Emby.Releases"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.emby 2>/dev/null)" ]] || [[ ! -f ~/.emby ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop emby-server
 | 
					    systemctl stop emby-server
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start emby-server
 | 
					    systemctl start emby-server
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,10 +26,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\Kv\K[^"]+' | head -n1)
 | 
					  if check_for_gh_release "ersatztv" "ErsatzTV/ErsatzTV"; then
 | 
				
			||||||
  RELEASE_FFMPEG=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV-ffmpeg/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.ersatztv 2>/dev/null)" ]] || [[ ! -f ~/.ersatztv ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ErsatzTV"
 | 
					    msg_info "Stopping ErsatzTV"
 | 
				
			||||||
    systemctl stop ersatzTV
 | 
					    systemctl stop ersatzTV
 | 
				
			||||||
    msg_ok "Stopped ErsatzTV"
 | 
					    msg_ok "Stopped ErsatzTV"
 | 
				
			||||||
@@ -41,11 +38,9 @@ function update_script() {
 | 
				
			|||||||
    msg_ok "Started ErsatzTV"
 | 
					    msg_ok "Started ErsatzTV"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ "${RELEASE_FFMPEG}" != "$(cat ~/.ersatztv-ffmpeg 2>/dev/null)" ]] || [[ ! -f ~/.ersatztv-ffmpeg ]]; then
 | 
					  if check_for_gh_release "ersatztv-ffmpeg" "ErsatzTV/ErsatzTV-ffmpeg"; then
 | 
				
			||||||
    msg_info "Stopping ErsatzTV"
 | 
					    msg_info "Stopping ErsatzTV"
 | 
				
			||||||
    systemctl stop ersatzTV
 | 
					    systemctl stop ersatzTV
 | 
				
			||||||
    msg_ok "Stopped ErsatzTV"
 | 
					    msg_ok "Stopped ErsatzTV"
 | 
				
			||||||
@@ -62,10 +57,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ErsatzTV"
 | 
					    msg_info "Starting ErsatzTV"
 | 
				
			||||||
    systemctl start ersatzTV
 | 
					    systemctl start ersatzTV
 | 
				
			||||||
    msg_ok "Started ErsatzTV"
 | 
					    msg_ok "Started ErsatzTV"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ErsatzTV-ffmpeg is already at ${RELEASE_FFMPEG}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "excalidraw" "excalidraw/excalidraw"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.excalidraw 2>/dev/null)" ]] || [[ ! -f ~/.excalidraw ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop excalidraw
 | 
					    systemctl stop excalidraw
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -37,18 +36,15 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/excalidraw
 | 
					    rm -rf /opt/excalidraw
 | 
				
			||||||
    fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw"
 | 
					    fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/excalidraw
 | 
					    cd /opt/excalidraw
 | 
				
			||||||
    $STD yarn
 | 
					    $STD yarn
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start excalidraw
 | 
					    systemctl start excalidraw
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
 | 
					  if check_for_gh_release "firefly" "firefly-iii/firefly-iii"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.firefly 2>/dev/null)" ]] || [[ ! -f ~/.firefly ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Apache2"
 | 
					    msg_info "Stopping Apache2"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Stopped Apache2"
 | 
					    msg_ok "Stopped Apache2"
 | 
				
			||||||
@@ -42,7 +41,7 @@ function update_script() {
 | 
				
			|||||||
    fetch_and_deploy_gh_release "firefly" "firefly-iii/firefly-iii" "prebuild" "latest" "/opt/firefly" "FireflyIII-*.zip"
 | 
					    fetch_and_deploy_gh_release "firefly" "firefly-iii/firefly-iii" "prebuild" "latest" "/opt/firefly" "FireflyIII-*.zip"
 | 
				
			||||||
    setup_composer
 | 
					    setup_composer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    rm -rf /opt/firefly/storage
 | 
					    rm -rf /opt/firefly/storage
 | 
				
			||||||
    cp /opt/.env /opt/firefly/.env
 | 
					    cp /opt/.env /opt/firefly/.env
 | 
				
			||||||
    cp -r /opt/storage /opt/firefly/storage
 | 
					    cp -r /opt/storage /opt/firefly/storage
 | 
				
			||||||
@@ -58,15 +57,12 @@ function update_script() {
 | 
				
			|||||||
    $STD php artisan view:clear
 | 
					    $STD php artisan view:clear
 | 
				
			||||||
    $STD php artisan firefly-iii:upgrade-database
 | 
					    $STD php artisan firefly-iii:upgrade-database
 | 
				
			||||||
    $STD php artisan firefly-iii:laravel-passport-keys
 | 
					    $STD php artisan firefly-iii:laravel-passport-keys
 | 
				
			||||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Apache2"
 | 
					    msg_info "Starting Apache2"
 | 
				
			||||||
    systemctl start apache2
 | 
					    systemctl start apache2
 | 
				
			||||||
    msg_ok "Started Apache2"
 | 
					    msg_ok "Started Apache2"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/FlareSolverr/FlareSolverr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
 | 
					  if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.5"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.flaresolverr 2>/dev/null)" ]] || [[ ! -f ~/.flaresolverr ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop flaresolverr
 | 
					    systemctl stop flaresolverr
 | 
				
			||||||
    msg_ok "Stopped service"
 | 
					    msg_ok "Stopped service"
 | 
				
			||||||
@@ -40,8 +39,6 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start flaresolverr
 | 
					    systemctl start flaresolverr
 | 
				
			||||||
    msg_ok "Started service"
 | 
					    msg_ok "Started service"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/dotnetfactory/fluid-calendar/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.fluid-calendar 2>/dev/null)" ]] || [[ ! -f ~/.fluid-calendar ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop fluid-calendar
 | 
					    systemctl stop fluid-calendar
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -38,7 +37,7 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/fluid-calendar
 | 
					    rm -rf /opt/fluid-calendar
 | 
				
			||||||
    fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"
 | 
					    fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    mv /opt/fluid.env /opt/fluid-calendar/.env
 | 
					    mv /opt/fluid.env /opt/fluid-calendar/.env
 | 
				
			||||||
    cd /opt/fluid-calendar
 | 
					    cd /opt/fluid-calendar
 | 
				
			||||||
    export NEXT_TELEMETRY_DISABLED=1
 | 
					    export NEXT_TELEMETRY_DISABLED=1
 | 
				
			||||||
@@ -46,15 +45,12 @@ function update_script() {
 | 
				
			|||||||
    $STD npm run prisma:generate
 | 
					    $STD npm run prisma:generate
 | 
				
			||||||
    $STD npx prisma migrate deploy
 | 
					    $STD npx prisma migrate deploy
 | 
				
			||||||
    $STD npm run build:os
 | 
					    $STD npm run build:os
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start fluid-calendar
 | 
					    systemctl start fluid-calendar
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								ct/gatus.sh
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								ct/gatus.sh
									
									
									
									
									
								
							@@ -28,10 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "gatus" "TwiN/gatus"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.gatus 2>/dev/null)" ]] || [[ ! -f ~/.gatus ]]; then
 | 
					 | 
				
			||||||
    msg_info "Updating $APP"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop gatus
 | 
					    systemctl stop gatus
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -40,21 +37,18 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/gatus
 | 
					    rm -rf /opt/gatus
 | 
				
			||||||
    fetch_and_deploy_gh_release "gatus" "TwiN/gatus"
 | 
					    fetch_and_deploy_gh_release "gatus" "TwiN/gatus"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/gatus
 | 
					    cd /opt/gatus
 | 
				
			||||||
    $STD go mod tidy
 | 
					    $STD go mod tidy
 | 
				
			||||||
    CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
 | 
					    CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
 | 
				
			||||||
    setcap CAP_NET_RAW+ep gatus
 | 
					    setcap CAP_NET_RAW+ep gatus
 | 
				
			||||||
    mv /opt/config.yaml config
 | 
					    mv /opt/config.yaml config
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start gatus
 | 
					    systemctl start gatus
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,14 +32,12 @@ function update_script() {
 | 
				
			|||||||
  APP_VERSION=$(grep -o '"version": *"[^"]*"' /opt/gitea-mirror/package.json | cut -d'"' -f4)
 | 
					  APP_VERSION=$(grep -o '"version": *"[^"]*"' /opt/gitea-mirror/package.json | cut -d'"' -f4)
 | 
				
			||||||
  if [[ $APP_VERSION =~ ^2\. ]]; then
 | 
					  if [[ $APP_VERSION =~ ^2\. ]]; then
 | 
				
			||||||
    if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️  VERSION 2.x DETECTED" --yesno \
 | 
					    if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️  VERSION 2.x DETECTED" --yesno \
 | 
				
			||||||
      "WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno
 | 
					      "WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno; then
 | 
				
			||||||
    then
 | 
					 | 
				
			||||||
      exit 0
 | 
					      exit 0
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️  FINAL CONFIRMATION" --yesno \
 | 
					    if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️  FINAL CONFIRMATION" --yesno \
 | 
				
			||||||
        "FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno 
 | 
					      "FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno; then
 | 
				
			||||||
    then
 | 
					 | 
				
			||||||
      whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
 | 
					      whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
 | 
				
			||||||
      exit 0
 | 
					      exit 0
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
@@ -48,9 +46,7 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/gitea-mirror
 | 
					    rm -rf /opt/gitea-mirror
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/RayLabsHQ/gitea-mirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop gitea-mirror
 | 
					    systemctl stop gitea-mirror
 | 
				
			||||||
    msg_ok "Services Stopped"
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
@@ -70,25 +66,23 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/gitea-mirror
 | 
					    rm -rf /opt/gitea-mirror
 | 
				
			||||||
    fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"
 | 
					    fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating and rebuilding ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating and rebuilding ${APP}"
 | 
				
			||||||
    cd /opt/gitea-mirror
 | 
					    cd /opt/gitea-mirror
 | 
				
			||||||
    $STD bun run setup
 | 
					    $STD bun run setup
 | 
				
			||||||
    $STD bun run build
 | 
					    $STD bun run build
 | 
				
			||||||
    APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4)
 | 
					    APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4)
 | 
				
			||||||
    sudo sed -i.bak "s|^Environment=npm_package_version=.*|Environment=npm_package_version=${APP_VERSION}|" /etc/systemd/system/gitea-mirror.service
 | 
					    sudo sed -i.bak "s|^Environment=npm_package_version=.*|Environment=npm_package_version=${APP_VERSION}|" /etc/systemd/system/gitea-mirror.service
 | 
				
			||||||
    msg_ok "Updated and rebuilt ${APP} to v${RELEASE}"
 | 
					    msg_ok "Updated and rebuilt ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restoring Data"
 | 
					    msg_info "Restoring Data"
 | 
				
			||||||
    cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data
 | 
					    cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data
 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					 | 
				
			||||||
    msg_ok "Restored Data"
 | 
					    msg_ok "Restored Data"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl daemon-reload
 | 
					    systemctl daemon-reload
 | 
				
			||||||
    systemctl start gitea-mirror
 | 
					    systemctl start gitea-mirror
 | 
				
			||||||
    msg_ok "Service Started"
 | 
					    msg_ok "Service Started"
 | 
				
			||||||
  else
 | 
					    msg_ok "Update Successfully"
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://github.com/go-gitea/gitea/releases/latest | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
 | 
					  if check_for_gh_release "gitea" "go-gitea/gitea"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.gitea 2>/dev/null)" ]] || [[ ! -f ~/.gitea ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop gitea
 | 
					    systemctl stop gitea
 | 
				
			||||||
    msg_ok "Service stopped"
 | 
					    msg_ok "Service stopped"
 | 
				
			||||||
@@ -41,10 +40,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start gitea
 | 
					    systemctl start gitea
 | 
				
			||||||
    msg_ok "Started service"
 | 
					    msg_ok "Started service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/glanceapp/glance/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "glance" "glanceapp/glance"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.glance 2>/dev/null)" ]] || [[ ! -f ~/.glance ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop glance
 | 
					    systemctl stop glance
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -40,10 +39,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start glance
 | 
					    systemctl start glance
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/AlexxIT/go2rtc/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "go2rtc" "AlexxIT/go2rtc"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.go2rtc 2>/dev/null)" ]] || [[ ! -f ~/.go2rtc ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop go2rtc
 | 
					    systemctl stop go2rtc
 | 
				
			||||||
    msg_ok "Stopped service"
 | 
					    msg_ok "Stopped service"
 | 
				
			||||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start go2rtc
 | 
					    systemctl start go2rtc
 | 
				
			||||||
    msg_ok "Started service"
 | 
					    msg_ok "Started service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								ct/gokapi.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ct/gokapi.sh
									
									
									
									
									
								
							@@ -27,12 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
   if [[ -f /opt/${APP}_version.txt ]]; then
 | 
					  if check_for_gh_release "gokapi" "Forceu/Gokapi"; then
 | 
				
			||||||
      mv /opt/${APP}_version ~/.gokapi
 | 
					 | 
				
			||||||
   fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   RELEASE=$(curl -fsSL https://api.github.com/repos/Forceu/Gokapi/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
   if [[ "${RELEASE}" != "$(cat ~/.gokapi 2>/dev/null)" ]] || [[ ! -f ~/.gokapi ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop gokapi
 | 
					    systemctl stop gokapi
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -42,10 +37,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start gokapi
 | 
					    systemctl start gokapi
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  
 | 
					  if check_for_gh_release "gomft" "StarFleetCPTN/GoMFT"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL "https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest" | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.gomft)" ]] || [[ ! -f ~/.gomft ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop gomft
 | 
					    systemctl stop gomft
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -40,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start gomft
 | 
					    systemctl start gomft
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "gotify" "gotify/server"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/gotify/server/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.gotify 2>/dev/null)" ]] || [[ ! -f ~/.gotify ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop gotify
 | 
					    systemctl stop gotify
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -40,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start gotify
 | 
					    systemctl start gotify
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,19 +27,14 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  php_ver=$(php -v | head -n 1 | awk '{print $2}')
 | 
					  php_ver=$(php -v | head -n 1 | awk '{print $2}')
 | 
				
			||||||
  if [[ ! $php_ver == "8.3"* ]]; then
 | 
					  if [[ ! $php_ver == "8.3"* ]]; then
 | 
				
			||||||
    PHP_VERSION="8.3" PHP_MODULE="sqlite3,bz2" PHP_APACHE="yes" setup_php
 | 
					    PHP_VERSION="8.3" PHP_MODULE="sqlite3,bz2" PHP_APACHE="yes" setup_php
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  
 | 
					  if check_for_gh_release "grocy" "grocy/grocy"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/grocy/grocy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.grocy 2>/dev/null)" ]] || [[ ! -f ~/.grocy ]]; then
 | 
					 | 
				
			||||||
    msg_info "Updating ${APP}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    bash /var/www/html/update.sh
 | 
					    bash /var/www/html/update.sh
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,9 +29,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha" setup_nodejs
 | 
					  NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha" setup_nodejs
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/HabitRPG/habitica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "habitica" "HabitRPG/habitica"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.habitica 2>/dev/null)" ]] || [[ ! -f ~/.habitica ]]; then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop habitica-mongodb
 | 
					    systemctl stop habitica-mongodb
 | 
				
			||||||
    systemctl stop habitica
 | 
					    systemctl stop habitica
 | 
				
			||||||
@@ -48,13 +46,13 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
 | 
					    fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/habitica
 | 
					    cd /opt/habitica
 | 
				
			||||||
    $STD npm i
 | 
					    $STD npm i
 | 
				
			||||||
    $STD npm run postinstall
 | 
					    $STD npm run postinstall
 | 
				
			||||||
    $STD npm run client:build
 | 
					    $STD npm run client:build
 | 
				
			||||||
    $STD gulp build:prod
 | 
					    $STD gulp build:prod
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restoring configuration"
 | 
					    msg_info "Restoring configuration"
 | 
				
			||||||
    if [[ -f ~/config.json ]]; then
 | 
					    if [[ -f ~/config.json ]]; then
 | 
				
			||||||
@@ -69,10 +67,7 @@ function update_script() {
 | 
				
			|||||||
    systemctl start habitica
 | 
					    systemctl start habitica
 | 
				
			||||||
    systemctl start habitica-client
 | 
					    systemctl start habitica-client
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,8 +31,7 @@ function update_script() {
 | 
				
			|||||||
    mv /opt/"${APP}_version.txt" ~/.headscale
 | 
					    mv /opt/"${APP}_version.txt" ~/.headscale
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/juanfont/headscale/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "headscale" "juanfont/headscale"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.headscale 2>/dev/null)" ]] || [[ ! -f ~/.headscale ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop headscale
 | 
					    systemctl stop headscale
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -41,12 +40,9 @@ function update_script() {
 | 
				
			|||||||
    fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip"
 | 
					    fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    # Temporary fix until headscale project resolves service getting disabled on updates.
 | 
					 | 
				
			||||||
    systemctl enable -q --now headscale
 | 
					    systemctl enable -q --now headscale
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "healthchecks" "healthchecks/healthchecks"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/healthchecks/healthchecks/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.healthchecks 2>/dev/null)" ]] || [[ ! -f ~/.healthchecks ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop healthchecks
 | 
					    systemctl stop healthchecks
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -38,7 +36,7 @@ function update_script() {
 | 
				
			|||||||
    setup_uv
 | 
					    setup_uv
 | 
				
			||||||
    fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
 | 
					    fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/healthchecks
 | 
					    cd /opt/healthchecks
 | 
				
			||||||
    mkdir -p /opt/healthchecks/static-collected/
 | 
					    mkdir -p /opt/healthchecks/static-collected/
 | 
				
			||||||
    $STD uv pip install wheel gunicorn -r requirements.txt --system
 | 
					    $STD uv pip install wheel gunicorn -r requirements.txt --system
 | 
				
			||||||
@@ -46,16 +44,13 @@ function update_script() {
 | 
				
			|||||||
    $STD uv run -- python manage.py migrate --noinput
 | 
					    $STD uv run -- python manage.py migrate --noinput
 | 
				
			||||||
    $STD uv run -- python manage.py collectstatic --noinput
 | 
					    $STD uv run -- python manage.py collectstatic --noinput
 | 
				
			||||||
    $STD uv run -- python manage.py compress
 | 
					    $STD uv run -- python manage.py compress
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start healthchecks
 | 
					    systemctl start healthchecks
 | 
				
			||||||
    systemctl restart caddy
 | 
					    systemctl restart caddy
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -81,9 +81,8 @@ EOF
 | 
				
			|||||||
    msg_ok "Updated Services"
 | 
					    msg_ok "Updated Services"
 | 
				
			||||||
    systemctl daemon-reload
 | 
					    systemctl daemon-reload
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/homarr-labs/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if check_for_gh_release "homarr" "homarr-labs/homarr"; then
 | 
				
			||||||
    msg_info "Stopping Services (Patience)"
 | 
					    msg_info "Stopping Services (Patience)"
 | 
				
			||||||
    systemctl stop homarr
 | 
					    systemctl stop homarr
 | 
				
			||||||
    msg_ok "Services Stopped"
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
@@ -98,7 +97,6 @@ EOF
 | 
				
			|||||||
    $STD apt upgrade nodejs -y
 | 
					    $STD apt upgrade nodejs -y
 | 
				
			||||||
    msg_ok "Updated Nodejs"
 | 
					    msg_ok "Updated Nodejs"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $STD command -v jq || $STD apt-get update && $STD apt-get install -y jq
 | 
					 | 
				
			||||||
    NODE_VERSION=$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.engines.node | split(">=")[1] | split(".")[0]')
 | 
					    NODE_VERSION=$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.engines.node | split(">=")[1] | split(".")[0]')
 | 
				
			||||||
    NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
 | 
					    NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
 | 
				
			||||||
    setup_nodejs
 | 
					    setup_nodejs
 | 
				
			||||||
@@ -106,7 +104,7 @@ EOF
 | 
				
			|||||||
    rm -rf /opt/homarr
 | 
					    rm -rf /opt/homarr
 | 
				
			||||||
    fetch_and_deploy_gh_release "homarr" "homarr-labs/homarr"
 | 
					    fetch_and_deploy_gh_release "homarr" "homarr-labs/homarr"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating and rebuilding ${APP} to v${RELEASE} (Patience)"
 | 
					    msg_info "Updating and rebuilding ${APP} (Patience)"
 | 
				
			||||||
    rm /opt/run_homarr.sh
 | 
					    rm /opt/run_homarr.sh
 | 
				
			||||||
    cat <<'EOF' >/opt/run_homarr.sh
 | 
					    cat <<'EOF' >/opt/run_homarr.sh
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
@@ -153,7 +151,6 @@ EOF
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    mkdir /opt/homarr/build
 | 
					    mkdir /opt/homarr/build
 | 
				
			||||||
    cp ./node_modules/better-sqlite3/build/Release/better_sqlite3.node ./build/better_sqlite3.node
 | 
					    cp ./node_modules/better-sqlite3/build/Release/better_sqlite3.node ./build/better_sqlite3.node
 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					 | 
				
			||||||
    msg_ok "Updated ${APP}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Services"
 | 
					    msg_info "Starting Services"
 | 
				
			||||||
@@ -164,8 +161,6 @@ EOF
 | 
				
			|||||||
    if [[ "$choice" =~ ^[Yy]$ ]]; then
 | 
					    if [[ "$choice" =~ ^[Yy]$ ]]; then
 | 
				
			||||||
      reboot
 | 
					      reboot
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,8 +33,7 @@ function update_script() {
 | 
				
			|||||||
    systemctl daemon-reload
 | 
					    systemctl daemon-reload
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "sysadminsmedia" "homebox"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.homebox 2>/dev/null)" ]] || [[ ! -f ~/.homebox ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop homebox
 | 
					    systemctl stop homebox
 | 
				
			||||||
    msg_ok "${APP} Stopped"
 | 
					    msg_ok "${APP} Stopped"
 | 
				
			||||||
@@ -50,10 +49,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start homebox
 | 
					    systemctl start homebox
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/danielbrendel/hortusfox-web/releases/latest | jq -r .tag_name | sed 's/^v//')
 | 
					  if check_for_gh_release "danielbrendel" "hortusfox-web"; then
 | 
				
			||||||
  if [[ ! -f ~/.hortusfox ]] || [[ "${RELEASE}" != "$(cat ~/.hortusfox)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -58,8 +57,6 @@ function update_script() {
 | 
				
			|||||||
    rm -r /opt/hortusfox-backup
 | 
					    rm -r /opt/hortusfox-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,16 +30,14 @@ function update_script() {
 | 
				
			|||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setup_uv
 | 
					  setup_uv
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/plexguide/Huntarr.io/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
 | 
					
 | 
				
			||||||
  if [[ -f ~/.huntarr && "${RELEASE}" == "$(cat ~/.huntarr)" ]]; then
 | 
					  if check_for_gh_release "huntarr" "plexguide/Huntarr.io"; then
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					    msg_info "Stopping huntarr"
 | 
				
			||||||
    exit
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
  msg_info "Stopping huntarr service"
 | 
					 | 
				
			||||||
    systemctl stop huntarr
 | 
					    systemctl stop huntarr
 | 
				
			||||||
  msg_ok "Stopped huntarr service"
 | 
					    msg_ok "Stopped huntarr"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
 | 
					    fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Configuring $APP"
 | 
					    msg_info "Configuring $APP"
 | 
				
			||||||
    cd /opt/huntarr
 | 
					    cd /opt/huntarr
 | 
				
			||||||
    $STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
 | 
					    $STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
 | 
				
			||||||
@@ -48,8 +46,8 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start huntarr
 | 
					    systemctl start huntarr
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
  msg_ok "Updated $APP to v${RELEASE}"
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,12 +62,8 @@ function update_script() {
 | 
				
			|||||||
    msg_ok "Image-processing libraries up to date"
 | 
					    msg_ok "Image-processing libraries up to date"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE="1.139.4"
 | 
					  RELEASE="1.139.4"
 | 
				
			||||||
  #RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
 | 
				
			||||||
  if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
    exit
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
  msg_info "Stopping ${APP} services"
 | 
					 | 
				
			||||||
    systemctl stop immich-web
 | 
					    systemctl stop immich-web
 | 
				
			||||||
    systemctl stop immich-ml
 | 
					    systemctl stop immich-ml
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -203,6 +199,7 @@ EOF
 | 
				
			|||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    systemctl restart immich-ml immich-web
 | 
					    systemctl restart immich-ml immich-web
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function compile_libjxl() {
 | 
					function compile_libjxl() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "inspircd" "inspircd/inspircd"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/inspircd/inspircd/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.inspircd 2>/dev/null)" ]] || [[ ! -f ~/.inspircd ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop inspircd
 | 
					    systemctl stop inspircd
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -39,10 +37,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start inspircd
 | 
					    systemctl start inspircd
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,13 +34,18 @@ function update_script() {
 | 
				
			|||||||
DisableRootWarning=true
 | 
					DisableRootWarning=true
 | 
				
			||||||
EOF
 | 
					EOF
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "Jackett" "Jackett/Jackett"; then
 | 
				
			||||||
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
 | 
					    systemctl stop jackett
 | 
				
			||||||
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -s https://api.github.com/repos/Jackett/Jackett/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.jackett 2>/dev/null)" ]] || [[ ! -f ~/.jackett ]]; then
 | 
					 | 
				
			||||||
    rm -rf /opt/Jackett
 | 
					    rm -rf /opt/Jackett
 | 
				
			||||||
    fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
 | 
					    fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
 | 
				
			||||||
  else
 | 
					
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
 | 
					    systemctl start jackett
 | 
				
			||||||
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,10 +28,10 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -s https://api.github.com/repos/Casvt/Kapowarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat $HOME/.kapowarr)" ]] || [[ ! -f $HOME/.kapowarr ]]; then
 | 
					 | 
				
			||||||
  setup_uv
 | 
					  setup_uv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if check_for_gh_release "kapowarr" "Casvt/Kapowarr"; then
 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop kapowarr
 | 
					    systemctl stop kapowarr
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -41,17 +41,15 @@ function update_script() {
 | 
				
			|||||||
    msg_ok "Backup Created"
 | 
					    msg_ok "Backup Created"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr"
 | 
					    fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr"
 | 
				
			||||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    mv /opt/db /opt/kapowarr
 | 
					    mv /opt/db /opt/kapowarr
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start kapowarr
 | 
					    systemctl start kapowarr
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,11 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "karakeep" "karakeep-app/karakeep"; then
 | 
				
			||||||
  if [[ -f ~/.karakeep && "$RELEASE" == "$(cat ~/.karakeep)" ]]; then
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
    exit
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop karakeep-web karakeep-workers karakeep-browser
 | 
					    systemctl stop karakeep-web karakeep-workers karakeep-browser
 | 
				
			||||||
    msg_ok "Stopped Services"
 | 
					    msg_ok "Stopped Services"
 | 
				
			||||||
@@ -56,6 +52,7 @@ function update_script() {
 | 
				
			|||||||
      sed -i 's|^ExecStart=.*$|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/karakeep-workers.service
 | 
					      sed -i 's|^ExecStart=.*$|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/karakeep-workers.service
 | 
				
			||||||
      systemctl daemon-reload
 | 
					      systemctl daemon-reload
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
 | 
					    fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
 | 
				
			||||||
    if command -v corepack >/dev/null; then
 | 
					    if command -v corepack >/dev/null; then
 | 
				
			||||||
      $STD corepack disable
 | 
					      $STD corepack disable
 | 
				
			||||||
@@ -63,7 +60,7 @@ function update_script() {
 | 
				
			|||||||
    MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
 | 
					    MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
 | 
				
			||||||
    NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
 | 
					    NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    corepack enable
 | 
					    corepack enable
 | 
				
			||||||
    export PUPPETEER_SKIP_DOWNLOAD="true"
 | 
					    export PUPPETEER_SKIP_DOWNLOAD="true"
 | 
				
			||||||
    export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
 | 
					    export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
 | 
				
			||||||
@@ -83,8 +80,8 @@ function update_script() {
 | 
				
			|||||||
    cd /opt/karakeep/packages/db
 | 
					    cd /opt/karakeep/packages/db
 | 
				
			||||||
    $STD pnpm migrate
 | 
					    $STD pnpm migrate
 | 
				
			||||||
    $STD pnpm store prune
 | 
					    $STD pnpm store prune
 | 
				
			||||||
  sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${RELEASE}/" /etc/karakeep/karakeep.env
 | 
					    sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE}/" /etc/karakeep/karakeep.env
 | 
				
			||||||
  msg_ok "Updated ${APP} to v${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Services"
 | 
					    msg_info "Starting Services"
 | 
				
			||||||
    systemctl start karakeep-browser karakeep-workers karakeep-web
 | 
					    systemctl start karakeep-browser karakeep-workers karakeep-web
 | 
				
			||||||
@@ -95,6 +92,7 @@ function update_script() {
 | 
				
			|||||||
    $STD apt-get autoclean -y
 | 
					    $STD apt-get autoclean -y
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,12 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					  if check_for_gh_release "keycloak" "keycloak/keycloak"; then
 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/keycloak/keycloak/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.keycloak_app 2>/dev/null)" ]] || [[ ! -f ~/.keycloak_app ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Keycloak"
 | 
					    msg_info "Stopping Keycloak"
 | 
				
			||||||
    systemctl stop keycloak
 | 
					    systemctl stop keycloak
 | 
				
			||||||
    msg_ok "Stopped Keycloak"
 | 
					    msg_ok "Stopped Keycloak"
 | 
				
			||||||
@@ -64,13 +59,10 @@ function update_script() {
 | 
				
			|||||||
    rm -rf keycloak.old
 | 
					    rm -rf keycloak.old
 | 
				
			||||||
    msg_ok "Cleanup complete"
 | 
					    msg_ok "Cleanup complete"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/benjaminjonard/koillection/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					  if check_for_gh_release "koillection" "benjaminjonard/koillection"; then
 | 
				
			||||||
  if [[ ! -f ~/.koillection ]] || [[ "${RELEASE}" != "$(cat ~/.koillection)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -39,7 +38,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
 | 
					    fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/koillection
 | 
					    cd /opt/koillection
 | 
				
			||||||
    cp -r /opt/koillection-backup/.env.local /opt/koillection
 | 
					    cp -r /opt/koillection-backup/.env.local /opt/koillection
 | 
				
			||||||
    cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/
 | 
					    cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/
 | 
				
			||||||
@@ -51,7 +50,7 @@ function update_script() {
 | 
				
			|||||||
    $STD yarn install
 | 
					    $STD yarn install
 | 
				
			||||||
    $STD yarn build
 | 
					    $STD yarn build
 | 
				
			||||||
    chown -R www-data:www-data /opt/koillection/public/uploads
 | 
					    chown -R www-data:www-data /opt/koillection/public/uploads
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start apache2
 | 
					    systemctl start apache2
 | 
				
			||||||
@@ -60,10 +59,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    rm -r /opt/koillection-backup
 | 
					    rm -r /opt/koillection-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								ct/kometa.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ct/kometa.sh
									
									
									
									
									
								
							@@ -28,12 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					  if check_for_gh_release "kometa" "Kometa-Team/Kometa"; then
 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | jq -r '.tag_name | sub("^v";"")')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.kometa 2>/dev/null)" ]] || [[ ! -f ~/.kometa ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop kometa
 | 
					    systemctl stop kometa
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -43,7 +38,6 @@ function update_script() {
 | 
				
			|||||||
    msg_ok "Backup completed"
 | 
					    msg_ok "Backup completed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PYTHON_VERSION="3.12" setup_uv
 | 
					    PYTHON_VERSION="3.12" setup_uv
 | 
				
			||||||
    $STD uv python update-shell
 | 
					 | 
				
			||||||
    fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa"
 | 
					    fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating Kometa"
 | 
					    msg_info "Updating Kometa"
 | 
				
			||||||
@@ -56,8 +50,6 @@ function update_script() {
 | 
				
			|||||||
    systemctl start kometa
 | 
					    systemctl start kometa
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "komga" "gotson/komga"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					 | 
				
			||||||
  if [[ ! -f ~/.komga-org ]] || [[ "${RELEASE}" != "$(cat ~/.komga-org)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop komga
 | 
					    systemctl stop komga
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -41,10 +39,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start komga
 | 
					    systemctl start komga
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "kubo" "ipfs/kubo"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/ipfs/kubo/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.kubo)" ]] || [[ ! -f ~/.kubo ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop ipfs
 | 
					    systemctl stop ipfs
 | 
				
			||||||
    msg_ok "Stopped service"
 | 
					    msg_ok "Stopped service"
 | 
				
			||||||
@@ -39,10 +37,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start ipfs
 | 
					    systemctl start ipfs
 | 
				
			||||||
    msg_ok "Service started"
 | 
					    msg_ok "Service started"
 | 
				
			||||||
 | 
					    msg_ok "Updated successfully"
 | 
				
			||||||
    msg_ok "Updated successfuly"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/librespeed/speedtest-rust/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					  if check_for_gh_release "librespeed-rust" "librespeed/speedtest-rust"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.librespeed 2>/dev/null)" ]] || [[ ! -f ~/.librespeed ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop librespeed_rs
 | 
					    systemctl stop librespeed_rs
 | 
				
			||||||
    msg_ok "Services Stopped"
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
@@ -39,8 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start librespeed_rs
 | 
					    systemctl start librespeed_rs
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
  else
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,25 +28,21 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -s https://api.github.com/repos/LibreTranslate/LibreTranslate/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "libretranslate" "LibreTranslate/LibreTranslate"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat $HOME/.libretranslate)" ]] || [[ ! -f $HOME/.libretranslate ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop libretranslate
 | 
					    systemctl stop libretranslate
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/libretranslate
 | 
					    cd /opt/libretranslate
 | 
				
			||||||
    source .venv/bin/activate
 | 
					    source .venv/bin/activate
 | 
				
			||||||
    $STD pip install -U libretranslate
 | 
					    $STD pip install -U libretranslate
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start libretranslate
 | 
					    systemctl start libretranslate
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								ct/lidarr.sh
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ct/lidarr.sh
									
									
									
									
									
								
							@@ -28,14 +28,8 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					 | 
				
			||||||
    $STD apt-get update
 | 
					 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.lidarr)" ]] || [[ ! -f ~/.lidarr ]]; then
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if check_for_gh_release "lidarr" "Lidarr/Lidarr"; then
 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop lidarr
 | 
					    systemctl stop lidarr
 | 
				
			||||||
    msg_ok "Service stopped"
 | 
					    msg_ok "Service stopped"
 | 
				
			||||||
@@ -46,10 +40,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start lidarr
 | 
					    systemctl start lidarr
 | 
				
			||||||
    msg_ok "Service started"
 | 
					    msg_ok "Service started"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated successfully"
 | 
					    msg_ok "Updated successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,8 +26,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					  if check_for_gh_release "linkwarden" "linkwarden/linkwarden"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat /opt/linkwarden_version.txt)" ]] || [[ ! -f /opt/linkwarden_version.txt ]]; then
 | 
					 | 
				
			||||||
    NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
 | 
					    NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop linkwarden
 | 
					    systemctl stop linkwarden
 | 
				
			||||||
@@ -35,11 +34,15 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    RUST_CRATES="monolith" setup_rust
 | 
					    RUST_CRATES="monolith" setup_rust
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    msg_info "Backing up data"
 | 
				
			||||||
    mv /opt/linkwarden/.env /opt/.env
 | 
					    mv /opt/linkwarden/.env /opt/.env
 | 
				
			||||||
    [ -d /opt/linkwarden/data ] && mv /opt/linkwarden/data /opt/data.bak
 | 
					    [ -d /opt/linkwarden/data ] && mv /opt/linkwarden/data /opt/data.bak
 | 
				
			||||||
    rm -rf /opt/linkwarden
 | 
					    rm -rf /opt/linkwarden
 | 
				
			||||||
 | 
					    msg_ok "Backed up data"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
 | 
					    fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/linkwarden
 | 
					    cd /opt/linkwarden
 | 
				
			||||||
    $STD yarn
 | 
					    $STD yarn
 | 
				
			||||||
    $STD npx playwright install-deps
 | 
					    $STD npx playwright install-deps
 | 
				
			||||||
@@ -49,7 +52,7 @@ function update_script() {
 | 
				
			|||||||
    $STD yarn web:build
 | 
					    $STD yarn web:build
 | 
				
			||||||
    $STD yarn prisma:deploy
 | 
					    $STD yarn prisma:deploy
 | 
				
			||||||
    [ -d /opt/data.bak ] && mv /opt/data.bak /opt/linkwarden/data
 | 
					    [ -d /opt/data.bak ] && mv /opt/data.bak /opt/linkwarden/data
 | 
				
			||||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start linkwarden
 | 
					    systemctl start linkwarden
 | 
				
			||||||
@@ -61,8 +64,6 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/linkwarden/.next/cache
 | 
					    rm -rf /opt/linkwarden/.next/cache
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required.  ${APP} is already at ${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,12 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					  if check_for_gh_release "listmonk" "knadh/listmonk"; then
 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.listmonk)" ]] || [[ ! -f ~/.listmonk ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop listmonk
 | 
					    systemctl stop listmonk
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -56,10 +51,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    rm -rf /opt/listmonk-backup/
 | 
					    rm -rf /opt/listmonk-backup/
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,12 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					  if check_for_gh_release "lubelogger" "hargata/lubelog"; then
 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/hargata/lubelog/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ ! -f ~/.lubelogger ]] || [[ "${RELEASE}" != "$(cat ~/.lubelogger)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop lubelogger
 | 
					    systemctl stop lubelogger
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -67,10 +62,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    rm -rf /tmp/lubeloggerData
 | 
					    rm -rf /tmp/lubeloggerData
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										20
									
								
								ct/mafl.sh
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								ct/mafl.sh
									
									
									
									
									
								
							@@ -27,14 +27,12 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "mafl" "hywax/mafl"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/hywax/mafl/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.mafl 2>/dev/null)" ]] || [[ ! -f ~/.mafl ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Mafl service"
 | 
					    msg_info "Stopping Mafl service"
 | 
				
			||||||
    systemctl stop mafl
 | 
					    systemctl stop mafl
 | 
				
			||||||
    msg_ok "Service stopped"
 | 
					    msg_ok "Service stopped"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Performing backup"
 | 
					    msg_info "Backing up data"
 | 
				
			||||||
    mkdir -p /opt/mafl-backup/data
 | 
					    mkdir -p /opt/mafl-backup/data
 | 
				
			||||||
    mv /opt/mafl/data /opt/mafl-backup/data
 | 
					    mv /opt/mafl/data /opt/mafl-backup/data
 | 
				
			||||||
    rm -rf /opt/mafl
 | 
					    rm -rf /opt/mafl
 | 
				
			||||||
@@ -42,15 +40,17 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "mafl" "hywax/mafl"
 | 
					    fetch_and_deploy_gh_release "mafl" "hywax/mafl"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating Mafl to v${RELEASE}"
 | 
					    msg_info "Updating Mafl"
 | 
				
			||||||
    cd /opt/mafl
 | 
					    cd /opt/mafl
 | 
				
			||||||
    yarn install
 | 
					    $STD yarn install
 | 
				
			||||||
    yarn build
 | 
					    $STD yarn build
 | 
				
			||||||
    mv /opt/mafl-backup/data /opt/mafl/data
 | 
					    mv /opt/mafl-backup/data /opt/mafl/data
 | 
				
			||||||
 | 
					    msg_ok "Mafl updated"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start mafl
 | 
					    systemctl start mafl
 | 
				
			||||||
    msg_ok "Updated Mafl to v${RELEASE}"
 | 
					    msg_ok "Service started"
 | 
				
			||||||
  else
 | 
					    msg_ok "Update successfully"
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,12 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					  if check_for_gh_release "magicmirror" "MagicMirrorOrg/MagicMirror"; then
 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/MagicMirrorOrg/MagicMirror/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ ! -f ~/.magicmirror ]] || [[ "${RELEASE}" != "$(cat ~/.magicmirror)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop magicmirror
 | 
					    systemctl stop magicmirror
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -62,10 +57,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start magicmirror
 | 
					    systemctl start magicmirror
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,12 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					  if check_for_gh_release "mmdl" "intri-in/manage-my-damn-life-nextjs"; then
 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/intri-in/manage-my-damn-life-nextjs/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.mmdl)" ]] || [[ ! -f ~/.mmdl ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop mmdl
 | 
					    systemctl stop mmdl
 | 
				
			||||||
    msg_ok "Stopped service"
 | 
					    msg_ok "Stopped service"
 | 
				
			||||||
@@ -54,10 +49,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start mmdl
 | 
					    systemctl start mmdl
 | 
				
			||||||
    msg_ok "Started service"
 | 
					    msg_ok "Started service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								ct/mealie.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ct/mealie.sh
									
									
									
									
									
								
							@@ -28,10 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "mealie" "mealie-recipes/mealie"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/mealie-recipes/mealie/releases/latest | jq -r '.tag_name | sub("^v"; "")')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.mealie 2>/dev/null)" ]] || [[ ! -f ~/.mealie ]]; then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PYTHON_VERSION="3.12" setup_uv
 | 
					    PYTHON_VERSION="3.12" setup_uv
 | 
				
			||||||
    NODE_MODULE="yarn" NODE_VERSION="20" setup_nodejs
 | 
					    NODE_MODULE="yarn" NODE_VERSION="20" setup_nodejs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -79,10 +76,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start mealie
 | 
					    systemctl start mealie
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
    msg_ok "Update to $RELEASE Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,8 +30,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  setup_uv
 | 
					  setup_uv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/maxdorninger/MediaManager/releases/latest | jq '.tag_name' | sed 's/^v//')
 | 
					  if check_for_gh_release "mediamanager" "maxdorninger/MediaManager"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.mediamanager 2>/dev/null)" ]] || [[ ! -f ~/.mediamanager ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop mediamanager
 | 
					    systemctl stop mediamanager
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -61,10 +60,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start mediamanager
 | 
					    systemctl start mediamanager
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "Already up to date"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,12 +27,8 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/bluenviron/mediamtx/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					  if check_for_gh_release "mediamtx" "bluenviron/mediamtx"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.mediamtx)" ]] || [[ ! -f ~/.mediamtx ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop mediamtx
 | 
					    systemctl stop mediamtx
 | 
				
			||||||
    msg_ok "Service stopped"
 | 
					    msg_ok "Service stopped"
 | 
				
			||||||
@@ -42,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start mediamtx
 | 
					    systemctl start mediamtx
 | 
				
			||||||
    msg_ok "Service started"
 | 
					    msg_ok "Service started"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated successfully"
 | 
					    msg_ok "Updated successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,6 +30,7 @@ function update_script() {
 | 
				
			|||||||
    3>&1 1>&2 2>&3)
 | 
					    3>&1 1>&2 2>&3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [ "$UPD" == "1" ]; then
 | 
					  if [ "$UPD" == "1" ]; then
 | 
				
			||||||
 | 
					    if check_for_gh_release "meilisearch" "meilisearch/meilisearch"; then
 | 
				
			||||||
      msg_info "Stopping Meilisearch"
 | 
					      msg_info "Stopping Meilisearch"
 | 
				
			||||||
      systemctl stop meilisearch
 | 
					      systemctl stop meilisearch
 | 
				
			||||||
      msg_ok "Stopped Meilisearch"
 | 
					      msg_ok "Stopped Meilisearch"
 | 
				
			||||||
@@ -39,6 +40,8 @@ function update_script() {
 | 
				
			|||||||
      msg_info "Starting Meilisearch"
 | 
					      msg_info "Starting Meilisearch"
 | 
				
			||||||
      systemctl start meilisearch
 | 
					      systemctl start meilisearch
 | 
				
			||||||
      msg_ok "Started Meilisearch"
 | 
					      msg_ok "Started Meilisearch"
 | 
				
			||||||
 | 
					      msg_ok "Update Successfully"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -47,6 +50,7 @@ function update_script() {
 | 
				
			|||||||
      msg_error "No Meilisearch-UI Installation Found!"
 | 
					      msg_error "No Meilisearch-UI Installation Found!"
 | 
				
			||||||
      exit
 | 
					      exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					    if check_for_gh_release "meilisearch-ui" "riccox/meilisearch-ui"; then
 | 
				
			||||||
      msg_info "Stopping Meilisearch-UI"
 | 
					      msg_info "Stopping Meilisearch-UI"
 | 
				
			||||||
      systemctl stop meilisearch-ui
 | 
					      systemctl stop meilisearch-ui
 | 
				
			||||||
      msg_ok "Stopped Meilisearch-UI"
 | 
					      msg_ok "Stopped Meilisearch-UI"
 | 
				
			||||||
@@ -65,6 +69,8 @@ function update_script() {
 | 
				
			|||||||
      msg_info "Starting Meilisearch-UI"
 | 
					      msg_info "Starting Meilisearch-UI"
 | 
				
			||||||
      systemctl start meilisearch-ui
 | 
					      systemctl start meilisearch-ui
 | 
				
			||||||
      msg_ok "Started Meilisearch-UI"
 | 
					      msg_ok "Started Meilisearch-UI"
 | 
				
			||||||
 | 
					      msg_ok "Update Successfully"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  
 | 
					  if check_for_gh_release "memos" "usememos/memos"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/usememos/memos/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.memos 2>/dev/null)" ]] || [[ ! -f ~/.memos ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop memos
 | 
					    systemctl stop memos
 | 
				
			||||||
    msg_ok "Service stopped"
 | 
					    msg_ok "Service stopped"
 | 
				
			||||||
@@ -39,10 +37,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start memos
 | 
					    systemctl start memos
 | 
				
			||||||
    msg_ok "Service started"
 | 
					    msg_ok "Service started"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated successfully"
 | 
					    msg_ok "Updated successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "monica" "monicahq/monica"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/monicahq/monica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ ! -f ~/.monica ]] || [[ "${RELEASE}" != "$(cat ~/.monica)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -59,10 +57,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    rm -r /opt/monica-backup
 | 
					    rm -r /opt/monica-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,11 +27,10 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://github.com/gnmyt/myspeed/releases/latest | grep "title>Release" | cut -d " " -f 5)
 | 
					  if check_for_gh_release "myspeed" "gnmyt/myspeed"; then
 | 
				
			||||||
  if [[ ! -f ~/.myspeed ]] || [[ "${RELEASE}" != "$(cat ~/.myspeed)" ]]; then
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    msg_info "Stopping ${APP} Service"
 | 
					 | 
				
			||||||
    systemctl stop myspeed
 | 
					    systemctl stop myspeed
 | 
				
			||||||
    msg_ok "Stopped ${APP} Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Creating backup"
 | 
					    msg_info "Creating backup"
 | 
				
			||||||
    cd /opt
 | 
					    cd /opt
 | 
				
			||||||
@@ -41,22 +40,19 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "myspeed" "gnmyt/myspeed" "prebuild" "latest" "/opt/myspeed" "MySpeed-*.zip"
 | 
					    fetch_and_deploy_gh_release "myspeed" "gnmyt/myspeed" "prebuild" "latest" "/opt/myspeed" "MySpeed-*.zip"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/myspeed
 | 
					    cd /opt/myspeed
 | 
				
			||||||
    $STD npm install
 | 
					    $STD npm install
 | 
				
			||||||
    if [[ -d /opt/myspeed_bak/data ]]; then
 | 
					    if [[ -d /opt/myspeed_bak/data ]]; then
 | 
				
			||||||
      mkdir -p /opt/myspeed/data/
 | 
					      mkdir -p /opt/myspeed/data/
 | 
				
			||||||
      cp -r /opt/myspeed_bak/data/* /opt/myspeed/data/
 | 
					      cp -r /opt/myspeed_bak/data/* /opt/myspeed/data/
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP} Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start myspeed
 | 
					    systemctl start myspeed
 | 
				
			||||||
    msg_ok "Started ${APP} Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully!\n"
 | 
					    msg_ok "Updated Successfully!\n"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/navidrome/navidrome/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "navidrome" "navidrome/navidrome"; then
 | 
				
			||||||
    if [[ "${RELEASE}" != "$(cat ~/.navidrome 2>/dev/null)" ]] || [[ ! -f ~/.navidrome ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop navidrome
 | 
					    systemctl stop navidrome
 | 
				
			||||||
    msg_ok "Services Stopped"
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Services"
 | 
					    msg_info "Starting Services"
 | 
				
			||||||
    systemctl start navidrome
 | 
					    systemctl start navidrome
 | 
				
			||||||
    msg_ok "Started Services"
 | 
					    msg_ok "Started Services"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "nocodb" "nocodb/nocodb"; then
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/nocodb/nocodb/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					 | 
				
			||||||
    if [[ ! -f ~/.nocodb ]] || [[ "${RELEASE}" != "$(cat ~/.nocodb)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop nocodb
 | 
					    systemctl stop nocodb
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -39,10 +37,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start nocodb
 | 
					    systemctl start nocodb
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								ct/nodebb.sh
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								ct/nodebb.sh
									
									
									
									
									
								
							@@ -30,26 +30,21 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "nodebb" "NodeBB/NodeBB"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/NodeBB/NodeBB/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.nodebb)" ]] || [[ ! -f ~/.nodebb ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop nodebb
 | 
					    systemctl stop nodebb
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/nodebb
 | 
					    cd /opt/nodebb
 | 
				
			||||||
    $STD ./nodebb upgrade
 | 
					    $STD ./nodebb upgrade
 | 
				
			||||||
    echo "${RELEASE}" > ~/.nodebb
 | 
					    echo "${CHECK_UPDATE_RELEASE}" >~/.nodebb
 | 
				
			||||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start nodebb
 | 
					    systemctl start nodebb
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully\n"
 | 
					    msg_ok "Updated Successfully\n"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,22 +28,17 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "oauth2-proxy" "oauth2-proxy/oauth2-proxy"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/oauth2-proxy/oauth2-proxy/releases/latest | jq -r .tag_name | sed 's/^v//')
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
  if [[ ! -f ~/.oauth2-proxy ]] || [[ "${RELEASE}" != "$(cat ~/.oauth2-proxy)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP} services"
 | 
					 | 
				
			||||||
    systemctl stop oauth2-proxy
 | 
					    systemctl stop oauth2-proxy
 | 
				
			||||||
    msg_ok "Stopped ${APP} service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "oauth2-proxy" "oauth2-proxy/oauth2-proxy" "prebuild" "latest" "/opt/oauth2-proxy" "oauth2-proxy*linux-amd64.tar.gz"
 | 
					    fetch_and_deploy_gh_release "oauth2-proxy" "oauth2-proxy/oauth2-proxy" "prebuild" "latest" "/opt/oauth2-proxy" "oauth2-proxy*linux-amd64.tar.gz"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP} service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start oauth2-proxy
 | 
					    systemctl start oauth2-proxy
 | 
				
			||||||
    msg_ok "Started ${APP} service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated successfully!\n"
 | 
					    msg_ok "Updated successfully!\n"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "${APP} is already up to date (${RELEASE})"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								ct/ombi.sh
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								ct/ombi.sh
									
									
									
									
									
								
							@@ -27,12 +27,10 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "ombi" "Ombi-app/Ombi"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Ombi-app/Ombi/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.ombi)" ]] || [[ ! -f ~/.ombi ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP} service"
 | 
					 | 
				
			||||||
    systemctl stop ombi
 | 
					    systemctl stop ombi
 | 
				
			||||||
    msg_ok "Stopped ${APP} service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Creating backup"
 | 
					    msg_info "Creating backup"
 | 
				
			||||||
    [[ -f /opt/ombi/Ombi.db ]] && mv /opt/ombi/Ombi.db /opt
 | 
					    [[ -f /opt/ombi/Ombi.db ]] && mv /opt/ombi/Ombi.db /opt
 | 
				
			||||||
@@ -46,13 +44,10 @@ function update_script() {
 | 
				
			|||||||
    [[ -f /opt/OmbiExternal.db ]] && mv /opt/OmbiExternal.db /opt/ombi
 | 
					    [[ -f /opt/OmbiExternal.db ]] && mv /opt/OmbiExternal.db /opt/ombi
 | 
				
			||||||
    [[ -f /opt/OmbiSettings.db ]] && mv /opt/OmbiSettings.db /opt/ombi
 | 
					    [[ -f /opt/OmbiSettings.db ]] && mv /opt/OmbiSettings.db /opt/ombi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP} service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start ombi
 | 
					    systemctl start ombi
 | 
				
			||||||
    msg_ok "Started ${APP} service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required.  ${APP} ia already at ${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "opengist" "thomiceli/opengist"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ ! -f ~/.opengist ]] || [[ "${RELEASE}" != "$(cat ~/.opengist)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop opengist
 | 
					    systemctl stop opengist
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -40,17 +38,14 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "opengist" "thomiceli/opengist" "prebuild" "latest" "/opt/opengist" "opengist*linux-amd64.tar.gz"
 | 
					    fetch_and_deploy_gh_release "opengist" "thomiceli/opengist" "prebuild" "latest" "/opt/opengist" "opengist*linux-amd64.tar.gz"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Configuring ${APP}"
 | 
					    msg_info "Restoring Configuration"
 | 
				
			||||||
    mv /opt/opengist-backup/config.yml /opt/opengist/config.yml
 | 
					    mv /opt/opengist-backup/config.yml /opt/opengist/config.yml
 | 
				
			||||||
    msg_ok "Configured ${APP}"
 | 
					    msg_ok "Configuration Restored"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start opengist
 | 
					    systemctl start opengist
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								ct/ots.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/ots.sh
									
									
									
									
									
								
							@@ -27,23 +27,19 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "ots" "Luzifer/ots"; then
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/Luzifer/ots/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    if [[ "${RELEASE}" != "$(cat ~/.ots 2>/dev/null)" ]] || [[ ! -f ~/.ots ]]; then
 | 
					 | 
				
			||||||
        msg_info "Stopping ${APP} Service"
 | 
					 | 
				
			||||||
    systemctl stop ots
 | 
					    systemctl stop ots
 | 
				
			||||||
    systemctl stop nginx
 | 
					    systemctl stop nginx
 | 
				
			||||||
        msg_ok "Stopped ${APP} Service"
 | 
					    msg_ok "Stopped Services"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "ots" "Luzifer/ots" "prebuild" "latest" "/opt/ots" "ots_linux_amd64.tgz"
 | 
					    fetch_and_deploy_gh_release "ots" "Luzifer/ots" "prebuild" "latest" "/opt/ots" "ots_linux_amd64.tgz"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        msg_info "Stopping ${APP} Service"
 | 
					    msg_info "Starting Services"
 | 
				
			||||||
    systemctl start ots
 | 
					    systemctl start ots
 | 
				
			||||||
    systemctl start nginx
 | 
					    systemctl start nginx
 | 
				
			||||||
        msg_ok "Stopped ${APP} Service"
 | 
					    msg_ok "Started Services"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/outline/outline/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "outline" "outline/outline"; then
 | 
				
			||||||
  if [[ ! -f ~/.outline ]] || [[ "${RELEASE}" != "$(cat ~/.outline)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop outline
 | 
					    systemctl stop outline
 | 
				
			||||||
    msg_ok "Services Stopped"
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
@@ -40,7 +39,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "outline" "outline/outline" "tarball"
 | 
					    fetch_and_deploy_gh_release "outline" "outline/outline" "tarball"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/outline
 | 
					    cd /opt/outline
 | 
				
			||||||
    mv /opt/.env /opt/outline
 | 
					    mv /opt/.env /opt/outline
 | 
				
			||||||
    export NODE_ENV=development
 | 
					    export NODE_ENV=development
 | 
				
			||||||
@@ -53,10 +52,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Services"
 | 
					    msg_info "Starting Services"
 | 
				
			||||||
    systemctl start outline
 | 
					    systemctl start outline
 | 
				
			||||||
    msg_ok "Started Services"
 | 
					    msg_ok "Started Services"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,10 +27,8 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  
 | 
					  if check_for_gh_release "overseerr" "sct/overseerr"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/sct/overseerr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
  if [[ ! -f ~/.overseerr ]] || [[ "${RELEASE}" != "$(cat ~/.overseerr)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP} service"
 | 
					 | 
				
			||||||
    systemctl stop overseerr
 | 
					    systemctl stop overseerr
 | 
				
			||||||
    msg_ok "Service stopped"
 | 
					    msg_ok "Service stopped"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -48,13 +46,10 @@ function update_script() {
 | 
				
			|||||||
    mv /opt/config_backup /opt/overseerr/config
 | 
					    mv /opt/config_backup /opt/overseerr/config
 | 
				
			||||||
    msg_ok "Configured ${APP}"
 | 
					    msg_ok "Configured ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP} service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start overseerr
 | 
					    systemctl start overseerr
 | 
				
			||||||
    msg_ok "Started ${APP} service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated successfully!"
 | 
					    msg_ok "Updated successfully!"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,22 +27,17 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "owncast" "owncast/owncast"; then
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/owncast/owncast/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    if [[ ! -f ~/.owncast ]] || [[ "${RELEASE}" != "$(cat ~/.owncast)" ]]; then
 | 
					 | 
				
			||||||
      msg_info "Stopping ${APP}"
 | 
					 | 
				
			||||||
    systemctl stop owncast
 | 
					    systemctl stop owncast
 | 
				
			||||||
      msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "owncast" "owncast/owncast" "prebuild" "latest" "/opt/owncast" "owncast*linux-64bit.zip"
 | 
					    fetch_and_deploy_gh_release "owncast" "owncast/owncast" "prebuild" "latest" "/opt/owncast" "owncast*linux-64bit.zip"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      msg_info "Starting ${APP}"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start owncast
 | 
					    systemctl start owncast
 | 
				
			||||||
      msg_ok "Started ${APP}"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      msg_ok "No update required. ${APP} is already at ${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,12 +27,10 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "pairdrop" "schlagmichdoch/PairDrop"; then
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/schlagmichdoch/PairDrop/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    if [[ ! -f ~/.pairdrop ]] || [[ "${RELEASE}" != "$(cat ~/.pairdrop)" ]]; then
 | 
					 | 
				
			||||||
      msg_info "Stopping ${APP}"
 | 
					 | 
				
			||||||
    systemctl stop pairdrop
 | 
					    systemctl stop pairdrop
 | 
				
			||||||
      msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "pairdrop" "schlagmichdoch/PairDrop" "tarball"
 | 
					    fetch_and_deploy_gh_release "pairdrop" "schlagmichdoch/PairDrop" "tarball"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -41,13 +39,10 @@ function update_script() {
 | 
				
			|||||||
    $STD npm install
 | 
					    $STD npm install
 | 
				
			||||||
    msg_ok "Configured PairDrop"
 | 
					    msg_ok "Configured PairDrop"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      msg_info "Starting ${APP}"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start pairdrop
 | 
					    systemctl start pairdrop
 | 
				
			||||||
      msg_ok "Started ${APP}"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      msg_ok "No update required. ${APP} is already at ${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "palmr" "kyantech/Palmr"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/kyantech/palmr/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.palmr 2>/dev/null)" ]] || [[ ! -f ~/.palmr ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop palmr-frontend palmr-backend
 | 
					    systemctl stop palmr-frontend palmr-backend
 | 
				
			||||||
    msg_ok "Stopped Services"
 | 
					    msg_ok "Stopped Services"
 | 
				
			||||||
@@ -56,15 +54,12 @@ function update_script() {
 | 
				
			|||||||
    $STD pnpm install
 | 
					    $STD pnpm install
 | 
				
			||||||
    $STD pnpm build
 | 
					    $STD pnpm build
 | 
				
			||||||
    chown -R palmr:palmr /opt/palmr_data /opt/palmr
 | 
					    chown -R palmr:palmr /opt/palmr_data /opt/palmr
 | 
				
			||||||
    msg_ok "Updated $APP"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Services"
 | 
					    msg_info "Starting Services"
 | 
				
			||||||
    systemctl start palmr-backend palmr-frontend
 | 
					    systemctl start palmr-backend palmr-frontend
 | 
				
			||||||
    msg_ok "Started Services"
 | 
					    msg_ok "Started Services"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "Already up to date"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,11 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					  if check_for_gh_release "paperless-ngx" "paperless-ngx/paperless-ngx"; then
 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/paperless-ngx/paperless-ngx/releases/latest | jq -r .tag_name | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.paperless 2>/dev/null)" ]] || [[ ! -f ~/.paperless ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping all Paperless-ngx Services"
 | 
					    msg_info "Stopping all Paperless-ngx Services"
 | 
				
			||||||
    systemctl stop paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue
 | 
					    systemctl stop paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue
 | 
				
			||||||
    msg_ok "Stopped all Paperless-ngx Services"
 | 
					    msg_ok "Stopped all Paperless-ngx Services"
 | 
				
			||||||
@@ -50,13 +46,13 @@ function update_script() {
 | 
				
			|||||||
      fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc"
 | 
					      fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc"
 | 
				
			||||||
      setup_gs
 | 
					      setup_gs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      msg_info "Updating to ${RELEASE}"
 | 
					      msg_info "Updating Paperless-ngx"
 | 
				
			||||||
      cp -r /opt/paperless/backup/* /opt/paperless/
 | 
					      cp -r /opt/paperless/backup/* /opt/paperless/
 | 
				
			||||||
      cd /opt/paperless
 | 
					      cd /opt/paperless
 | 
				
			||||||
      $STD uv sync --all-extras
 | 
					      $STD uv sync --all-extras
 | 
				
			||||||
      cd /opt/paperless/src
 | 
					      cd /opt/paperless/src
 | 
				
			||||||
      $STD uv run -- python manage.py migrate
 | 
					      $STD uv run -- python manage.py migrate
 | 
				
			||||||
      msg_ok "Updated to ${RELEASE}"
 | 
					      msg_ok "Updated Paperless-ngx"
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      msg_warn "You are about to migrate your Paperless-ngx installation to uv!"
 | 
					      msg_warn "You are about to migrate your Paperless-ngx installation to uv!"
 | 
				
			||||||
      msg_custom "🔒" "It is strongly recommended to take a Proxmox snapshot first:"
 | 
					      msg_custom "🔒" "It is strongly recommended to take a Proxmox snapshot first:"
 | 
				
			||||||
@@ -117,7 +113,7 @@ function update_script() {
 | 
				
			|||||||
      $STD uv sync --all-extras
 | 
					      $STD uv sync --all-extras
 | 
				
			||||||
      cd /opt/paperless/src
 | 
					      cd /opt/paperless/src
 | 
				
			||||||
      $STD uv run -- python manage.py migrate
 | 
					      $STD uv run -- python manage.py migrate
 | 
				
			||||||
      msg_ok "Paperless-ngx migration and update to ${RELEASE} completed"
 | 
					      msg_ok "Paperless-ngx migration and update completed"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting all Paperless-ngx Services"
 | 
					    msg_info "Starting all Paperless-ngx Services"
 | 
				
			||||||
@@ -125,8 +121,6 @@ function update_script() {
 | 
				
			|||||||
    sleep 1
 | 
					    sleep 1
 | 
				
			||||||
    msg_ok "Started all Paperless-ngx Services"
 | 
					    msg_ok "Started all Paperless-ngx Services"
 | 
				
			||||||
    msg_ok "Updated Successfully!\n"
 | 
					    msg_ok "Updated Successfully!\n"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -139,4 +133,3 @@ msg_ok "Completed Successfully!\n"
 | 
				
			|||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,15 +36,12 @@ function update_script() {
 | 
				
			|||||||
    $STD systemctl reload nginx
 | 
					    $STD systemctl reload nginx
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "paymenter" "paymenter/paymenter"; then
 | 
				
			||||||
  if [[ ! -f ~/.paymenter ]] || [[ "${RELEASE}" != "$(cat ~/.paymenter)" ]]; then
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					 | 
				
			||||||
    cd /opt/paymenter
 | 
					    cd /opt/paymenter
 | 
				
			||||||
    $STD php artisan p:upgrade --no-interaction
 | 
					    $STD php artisan p:upgrade --no-interaction
 | 
				
			||||||
    echo "${RELEASE}" >~/.paymenter
 | 
					    echo "${CHECK_UPDATE_RELEASE}" >~/.paymenter
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								ct/peanut.sh
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								ct/peanut.sh
									
									
									
									
									
								
							@@ -27,33 +27,29 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
  NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Brandawg93/PeaNUT/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.peanut 2>/dev/null)" ]] || [[ ! -f ~/.peanut ]]; then
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if check_for_gh_release "peanut" "Brandawg93/PeaNUT"; then
 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop peanut
 | 
					    systemctl stop peanut
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "peanut" "Brandawg93/PeaNUT" "tarball" "latest" "/opt/peanut"
 | 
					    fetch_and_deploy_gh_release "peanut" "Brandawg93/PeaNUT" "tarball" "latest" "/opt/peanut"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/peanut
 | 
					    cd /opt/peanut
 | 
				
			||||||
    $STD pnpm i
 | 
					    $STD pnpm i
 | 
				
			||||||
    $STD pnpm run build:local
 | 
					    $STD pnpm run build:local
 | 
				
			||||||
    cp -r .next/static .next/standalone/.next/
 | 
					    cp -r .next/static .next/standalone/.next/
 | 
				
			||||||
    mkdir -p /opt/peanut/.next/standalone/config
 | 
					    mkdir -p /opt/peanut/.next/standalone/config
 | 
				
			||||||
    ln -sf /etc/peanut/settings.yml /opt/peanut/.next/standalone/config/settings.yml
 | 
					    ln -sf /etc/peanut/settings.yml /opt/peanut/.next/standalone/config/settings.yml
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start peanut
 | 
					    systemctl start peanut
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
  else
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "pf2etools" "Pf2eToolsOrg/Pf2eTools"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Pf2eToolsOrg/Pf2eTools/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.pf2etools 2>/dev/null)" ]] || [[ ! -f ~/.pf2etools ]]; then
 | 
					 | 
				
			||||||
    msg_info "Updating System"
 | 
					    msg_info "Updating System"
 | 
				
			||||||
    $STD apt-get update
 | 
					    $STD apt-get update
 | 
				
			||||||
    $STD apt-get -y upgrade
 | 
					    $STD apt-get -y upgrade
 | 
				
			||||||
@@ -46,10 +44,7 @@ function update_script() {
 | 
				
			|||||||
    chown -R www-data: "/opt/${APP}"
 | 
					    chown -R www-data: "/opt/${APP}"
 | 
				
			||||||
    chmod -R 755 "/opt/${APP}"
 | 
					    chmod -R 755 "/opt/${APP}"
 | 
				
			||||||
    msg_ok "Updated ${APP}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated successfully"
 | 
					    msg_ok "Updated successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "photoprism" "photoprism/photoprism"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/photoprism/photoprism/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.photoprism 2>/dev/null)" ]] || [[ ! -f ~/.photoprism ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping PhotoPrism"
 | 
					    msg_info "Stopping PhotoPrism"
 | 
				
			||||||
    systemctl stop photoprism
 | 
					    systemctl stop photoprism
 | 
				
			||||||
    msg_ok "Stopped PhotoPrism"
 | 
					    msg_ok "Stopped PhotoPrism"
 | 
				
			||||||
@@ -51,11 +49,10 @@ function update_script() {
 | 
				
			|||||||
    systemctl start photoprism
 | 
					    systemctl start photoprism
 | 
				
			||||||
    msg_ok "Started PhotoPrism"
 | 
					    msg_ok "Started PhotoPrism"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/phpipam/phpipam/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "phpipam" "phpipam/phpipam"; then
 | 
				
			||||||
  if [[ ! -f ~/.phpipam ]] || [[ "${RELEASE}" != "$(cat ~/.phpipam 2>/dev/null)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -45,10 +44,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    rm -r /opt/phpipam-backup
 | 
					    rm -r /opt/phpipam-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -s https://api.github.com/repos/plankanban/planka/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "planka" "plankanban/planka"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.planka 2>/dev/null)" ]] || [[ ! -f ~/.planka ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop planka
 | 
					    systemctl stop planka
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -45,8 +44,11 @@ function update_script() {
 | 
				
			|||||||
    msg_ok "Backed up data"
 | 
					    msg_ok "Backed up data"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "planka" "plankanban/planka" "prebuild" "latest" "/opt/planka" "planka-prebuild.zip"
 | 
					    fetch_and_deploy_gh_release "planka" "plankanban/planka" "prebuild" "latest" "/opt/planka" "planka-prebuild.zip"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Update Frontend"
 | 
				
			||||||
    cd /opt/planka
 | 
					    cd /opt/planka
 | 
				
			||||||
    $STD npm install
 | 
					    $STD npm install
 | 
				
			||||||
 | 
					    msg_ok "Updated Frontend"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restoring data"
 | 
					    msg_info "Restoring data"
 | 
				
			||||||
    mv /opt/planka-backup/.env /opt/planka/
 | 
					    mv /opt/planka-backup/.env /opt/planka/
 | 
				
			||||||
@@ -59,10 +61,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start planka
 | 
					    systemctl start planka
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "plant-it" "MDeLuise/plant-it"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/MDeLuise/plant-it/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.plant-it 2>/dev/null)" ]] || [[ ! -f ~/.plant-it ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop plant-it
 | 
					    systemctl stop plant-it
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -41,8 +39,6 @@ function update_script() {
 | 
				
			|||||||
    systemctl start plant-it
 | 
					    systemctl start plant-it
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,25 +27,20 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "pocketbase" "pocketbase/pocketbase"; then
 | 
				
			||||||
  RELEASE=$(curl -s https://api.github.com/repos/pocketbase/pocketbase/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.pocketbase 2>/dev/null)" ]] || [[ ! -f ~/.pocketbase ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop pocketbase
 | 
					    systemctl stop pocketbase
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    /opt/pocketbase/pocketbase update
 | 
					    /opt/pocketbase/pocketbase update
 | 
				
			||||||
    echo "${RELEASE}" > ~/.pocketbase
 | 
					    echo "${CHECK_UPDATE_RELEASE}" >~/.pocketbase
 | 
				
			||||||
    msg_ok "Updated ${APP}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start pocketbase
 | 
					    systemctl start pocketbase
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,11 +29,9 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  [[ -f /opt/${APP}_version.txt ]] && mv /opt/${APP}_version.txt ~/.pocket-id
 | 
					  if check_for_gh_release "pocket-id" "pocket-id/pocket-id"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/pocket-id/pocket-id/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.pocket-id)" ]] || [[ ! -f ~/.pocket-id ]]; then
 | 
					 | 
				
			||||||
    if [[ "$(cat ~/.pocket-id)" < "1.0.0" ]]; then
 | 
					    if [[ "$(cat ~/.pocket-id)" < "1.0.0" ]]; then
 | 
				
			||||||
      msg_info "Migrating ${APP} to v${RELEASE}"
 | 
					      msg_info "Migrating ${APP}"
 | 
				
			||||||
      systemctl -q disable --now pocketid-backend pocketid-frontend caddy
 | 
					      systemctl -q disable --now pocketid-backend pocketid-frontend caddy
 | 
				
			||||||
      mv /etc/caddy/Caddyfile ~/Caddyfile.bak
 | 
					      mv /etc/caddy/Caddyfile ~/Caddyfile.bak
 | 
				
			||||||
      $STD apt remove --purge caddy nodejs -y
 | 
					      $STD apt remove --purge caddy nodejs -y
 | 
				
			||||||
@@ -71,10 +69,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start pocketid
 | 
					    systemctl start pocketid
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "privatebin" "PrivateBin/PrivateBin"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/PrivateBin/PrivateBin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					 | 
				
			||||||
  if [[ ! -f ~/.privatebin ]] || [[ "${RELEASE}" != "$(cat ~/.privatebin)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Creating backup"
 | 
					    msg_info "Creating backup"
 | 
				
			||||||
    cp -f /opt/privatebin/cfg/conf.php /tmp/privatebin_conf.bak
 | 
					    cp -f /opt/privatebin/cfg/conf.php /tmp/privatebin_conf.bak
 | 
				
			||||||
    msg_ok "Backup created"
 | 
					    msg_ok "Backup created"
 | 
				
			||||||
@@ -44,10 +42,7 @@ function update_script() {
 | 
				
			|||||||
    chmod -R 0755 /opt/privatebin/data}
 | 
					    chmod -R 0755 /opt/privatebin/data}
 | 
				
			||||||
    systemctl reload nginx php8.2-fpm
 | 
					    systemctl reload nginx php8.2-fpm
 | 
				
			||||||
    msg_ok "Configured ${APP}"
 | 
					    msg_ok "Configured ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Successfully updated"
 | 
					    msg_ok "Successfully updated"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,22 +27,17 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "alertmanager" "prometheus/alertmanager"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/prometheus/alertmanager/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
  if [[ ! -f ~/.alertmanager ]] || [[ "${RELEASE}" != "$(cat ~/.alertmanager)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					 | 
				
			||||||
    systemctl stop prometheus-alertmanager
 | 
					    systemctl stop prometheus-alertmanager
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "alertmanager" "prometheus/alertmanager" "prebuild" "latest" "/usr/local/bin/" "alertmanager*linux-amd64.tar.gz"
 | 
					    fetch_and_deploy_gh_release "alertmanager" "prometheus/alertmanager" "prebuild" "latest" "/usr/local/bin/" "alertmanager*linux-amd64.tar.gz"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start prometheus-alertmanager
 | 
					    systemctl start prometheus-alertmanager
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,22 +27,17 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  
 | 
					  if check_for_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/hansmi/prometheus-paperless-exporter/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
  if [[ ! -f ~/.prom-paperless-exp ]] || [[ "${RELEASE}" != "$(cat prom-paperless-exp 2>/dev/null)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					 | 
				
			||||||
    systemctl stop prometheus-paperless-ngx-exporter
 | 
					    systemctl stop prometheus-paperless-ngx-exporter
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter" "binary"
 | 
					    fetch_and_deploy_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter" "binary"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start prometheus-paperless-ngx-exporter
 | 
					    systemctl start prometheus-paperless-ngx-exporter
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,22 +27,19 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/prometheus/prometheus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "prometheus" "prometheus/prometheus"; then
 | 
				
			||||||
  if [[ ! -f ~/.prometheus ]] || [[ "${RELEASE}" != "$(cat ~/.prometheus 2>/dev/null)" ]]; then
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					 | 
				
			||||||
    systemctl stop prometheus
 | 
					    systemctl stop prometheus
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "prometheus" "prometheus/prometheus" "prebuild" "latest" "/usr/local/bin" "*linux-amd64.tar.gz"
 | 
					    fetch_and_deploy_gh_release "prometheus" "prometheus/prometheus" "prebuild" "latest" "/usr/local/bin" "*linux-amd64.tar.gz"
 | 
				
			||||||
    rm -f /usr/local/bin/prometheus.yml
 | 
					    rm -f /usr/local/bin/prometheus.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start prometheus
 | 
					    systemctl start prometheus
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,17 +27,20 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "prowlarr" "Prowlarr/Prowlarr"; then
 | 
				
			||||||
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
 | 
					    systemctl stop prowlarr
 | 
				
			||||||
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.prowlarr 2>/dev/null)" ]] || [[ ! -f ~/.prowlarr ]]; then
 | 
					 | 
				
			||||||
    rm -rf /opt/Prowlarr
 | 
					    rm -rf /opt/Prowlarr
 | 
				
			||||||
    fetch_and_deploy_gh_release "prowlarr" "Prowlarr/Prowlarr" "prebuild" "latest" "/opt/Prowlarr" "Prowlarr.master*linux-core-x64.tar.gz"
 | 
					    fetch_and_deploy_gh_release "prowlarr" "Prowlarr/Prowlarr" "prebuild" "latest" "/opt/Prowlarr" "Prowlarr.master*linux-core-x64.tar.gz"
 | 
				
			||||||
    chmod 775 /opt/Prowlarr
 | 
					    chmod 775 /opt/Prowlarr
 | 
				
			||||||
    msg_ok "Successfully updated"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
 | 
					    systemctl start prowlarr
 | 
				
			||||||
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user