#!/usr/bin/env bash # # Update Immich on TrueNAS safely: release notes, snapshots, one script # https://www.zadran.net/guides/update-immich-on-truenas-safely # Generated from the guide, last updated 2026-10-18. # # NO WARRANTY. This script is provided as is. You are responsible for # understanding what it does before running it, and for the consequences. # Take a backup first. See https://www.zadran.net/disclaimer # # Destructive steps are left commented out on purpose -- uncomment them # only once you have understood what they do. # # Where the guide writes a file with <<'EOF' and your values are in it, # this script uses </dev/null <> Rollback if needed:" echo " cd \$DIR && sed -i 's/^IMMICH_VERSION=.*/IMMICH_VERSION=\$OLD/' .env && docker compose down" echo " zfs rollback ${DB_DATASET}@\$TAG && docker compose up -d" echo ">> After a few good days: zfs destroy -r ${APPS_DATASET}@\$TAG; zfs destroy ${DB_DATASET}@\$TAG; zfs destroy ${LIBRARY_DATASET}@\$TAG" EOF sudo chmod 700 ${SCRIPT_PATH} ls -l ${SCRIPT_PATH} sudo bash ${SCRIPT_PATH} ${NEW_VERSION} sudo docker ps --format '{{.Names}} {{.Status}}' | grep immich sudo docker logs --tail 15 immich_server sudo zfs destroy -r ${APPS_DATASET}@pre-${NEW_VERSION} sudo zfs destroy ${DB_DATASET}@pre-${NEW_VERSION} sudo zfs destroy ${LIBRARY_DATASET}@pre-${NEW_VERSION} sudo docker image prune -f cd ${COMPOSE_DIR} sudo sed -i 's/^IMMICH_VERSION=.*/IMMICH_VERSION='"${CURRENT_VERSION}"'/' .env sudo docker compose down sudo zfs rollback ${DB_DATASET}@pre-${NEW_VERSION} sudo docker compose up -d