mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	Immich: v2.1.0 (#8348)
- Ensure VectorChord upgrades only run if there is also an Immich update - Ensure pgvector is up-to-date before updating VectorChord - Move postgresql service restart before extension update commands - Add reindex commands to update process - Attempt to address superfluous sharp compilation
This commit is contained in:
		
							
								
								
									
										35
									
								
								ct/immich.sh
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								ct/immich.sh
									
									
									
									
									
								
							@@ -92,31 +92,34 @@ EOF
 | 
				
			|||||||
    done
 | 
					    done
 | 
				
			||||||
    msg_ok "Image-processing libraries up to date"
 | 
					    msg_ok "Image-processing libraries up to date"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE="2.0.1"
 | 
					
 | 
				
			||||||
 | 
					  RELEASE="2.1.1"
 | 
				
			||||||
  if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
 | 
					  if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop immich-web
 | 
					    systemctl stop immich-web
 | 
				
			||||||
    systemctl stop immich-ml
 | 
					    systemctl stop immich-ml
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Services"
 | 
				
			||||||
 | 
					    VCHORD_RELEASE="0.5.3"
 | 
				
			||||||
 | 
					    if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
 | 
				
			||||||
 | 
					      msg_info "Upgrading VectorChord"
 | 
				
			||||||
 | 
					      curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
 | 
				
			||||||
 | 
					      $STD apt install -y ./vchord.deb
 | 
				
			||||||
 | 
					      systemctl restart postgresql
 | 
				
			||||||
 | 
					      $STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vector UPDATE;"
 | 
				
			||||||
 | 
					      $STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
 | 
				
			||||||
 | 
					      $STD sudo -u postgres psql -d immich -c "REINDEX INDEX face_index;"
 | 
				
			||||||
 | 
					      $STD sudo -u postgres psql -d immich -c "REINDEX INDEX clip_index;"
 | 
				
			||||||
 | 
					      echo "$VCHORD_RELEASE" >~/.vchord_version
 | 
				
			||||||
 | 
					      rm ./vchord.deb
 | 
				
			||||||
 | 
					      msg_ok "Upgraded VectorChord to v${VCHORD_RELEASE}"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    INSTALL_DIR="/opt/${APP}"
 | 
					    INSTALL_DIR="/opt/${APP}"
 | 
				
			||||||
    UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
 | 
					    UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
 | 
				
			||||||
    SRC_DIR="${INSTALL_DIR}/source"
 | 
					    SRC_DIR="${INSTALL_DIR}/source"
 | 
				
			||||||
    APP_DIR="${INSTALL_DIR}/app"
 | 
					    APP_DIR="${INSTALL_DIR}/app"
 | 
				
			||||||
    ML_DIR="${APP_DIR}/machine-learning"
 | 
					    ML_DIR="${APP_DIR}/machine-learning"
 | 
				
			||||||
    GEO_DIR="${INSTALL_DIR}/geodata"
 | 
					    GEO_DIR="${INSTALL_DIR}/geodata"
 | 
				
			||||||
    VCHORD_RELEASE="0.4.3"
 | 
					 | 
				
			||||||
    # VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
 | 
					 | 
				
			||||||
      msg_info "Updating VectorChord"
 | 
					 | 
				
			||||||
      curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
 | 
					 | 
				
			||||||
      $STD apt install -y ./vchord.deb
 | 
					 | 
				
			||||||
      $STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
 | 
					 | 
				
			||||||
      systemctl restart postgresql
 | 
					 | 
				
			||||||
      echo "$VCHORD_RELEASE" >~/.vchord_version
 | 
					 | 
				
			||||||
      rm ./vchord.deb
 | 
					 | 
				
			||||||
      msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
 | 
					    cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
 | 
				
			||||||
    if grep -qs "set -a" "$APP_DIR"/bin/start.sh; then
 | 
					    if grep -qs "set -a" "$APP_DIR"/bin/start.sh; then
 | 
				
			||||||
@@ -162,6 +165,8 @@ EOF
 | 
				
			|||||||
    cd "$SRC_DIR"
 | 
					    cd "$SRC_DIR"
 | 
				
			||||||
    echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml
 | 
					    echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml
 | 
				
			||||||
    $STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
 | 
					    $STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
 | 
				
			||||||
 | 
					    unset SHARP_FORCE_GLOBAL_LIBVIPS
 | 
				
			||||||
 | 
					    export SHARP_IGNORE_GLOBAL_LIBVIPS=true
 | 
				
			||||||
    $STD pnpm --filter @immich/sdk --filter immich-web build
 | 
					    $STD pnpm --filter @immich/sdk --filter immich-web build
 | 
				
			||||||
    cp -a web/build "$APP_DIR"/www
 | 
					    cp -a web/build "$APP_DIR"/www
 | 
				
			||||||
    cp LICENSE "$APP_DIR"
 | 
					    cp LICENSE "$APP_DIR"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -130,8 +130,7 @@ NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
 | 
				
			|||||||
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
 | 
					PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msg_info "Setting up Postgresql Database"
 | 
					msg_info "Setting up Postgresql Database"
 | 
				
			||||||
VCHORD_RELEASE="0.4.3"
 | 
					VCHORD_RELEASE="0.5.3"
 | 
				
			||||||
# VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
 | 
					 | 
				
			||||||
curl -fsSL "https://github.com/tensorchord/VectorChord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
 | 
					curl -fsSL "https://github.com/tensorchord/VectorChord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
 | 
				
			||||||
$STD apt install -y ./vchord.deb
 | 
					$STD apt install -y ./vchord.deb
 | 
				
			||||||
rm vchord.deb
 | 
					rm vchord.deb
 | 
				
			||||||
@@ -288,7 +287,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
 | 
				
			|||||||
mkdir -p "$INSTALL_DIR"
 | 
					mkdir -p "$INSTALL_DIR"
 | 
				
			||||||
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
 | 
					mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v2.0.1" "$SRC_DIR"
 | 
					fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v2.1.0" "$SRC_DIR"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msg_info "Installing ${APPLICATION} (patience)"
 | 
					msg_info "Installing ${APPLICATION} (patience)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -310,6 +309,8 @@ sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
 | 
				
			|||||||
cd "$SRC_DIR"
 | 
					cd "$SRC_DIR"
 | 
				
			||||||
echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml
 | 
					echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml
 | 
				
			||||||
$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
 | 
					$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
 | 
				
			||||||
 | 
					unset SHARP_FORCE_GLOBAL_LIBVIPS
 | 
				
			||||||
 | 
					export SHARP_IGNORE_GLOBAL_LIBVIPS=true
 | 
				
			||||||
$STD pnpm --filter @immich/sdk --filter immich-web build
 | 
					$STD pnpm --filter @immich/sdk --filter immich-web build
 | 
				
			||||||
cp -a web/build "$APP_DIR"/www
 | 
					cp -a web/build "$APP_DIR"/www
 | 
				
			||||||
cp LICENSE "$APP_DIR"
 | 
					cp LICENSE "$APP_DIR"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user