diff --git a/immich/_compose.sh b/immich/_compose.sh new file mode 100644 index 0000000..0995ec9 --- /dev/null +++ b/immich/_compose.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# Helper to detect and use the correct docker compose command + +# Detect which compose command is available +if docker compose version &>/dev/null; then + docker_compose() { docker compose "$@"; } +elif command -v docker-compose &>/dev/null; then + docker_compose() { docker-compose "$@"; } +else + echo "Error: Neither 'docker compose' nor 'docker-compose' found" + exit 1 +fi diff --git a/immich/backup.sh b/immich/backup.sh index 2062f38..5265d2e 100755 --- a/immich/backup.sh +++ b/immich/backup.sh @@ -3,6 +3,7 @@ source "${AGENT_PATH}/common.sh" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${SCRIPT_DIR}/_volumes.sh" +source "${SCRIPT_DIR}/_compose.sh" _check_required_env_vars "CONTAINER_NAME" "BACKUP_FILE" "TEMP_DIR" "UPLOAD_LOCATION" "DB_DATA_LOCATION" "DB_USERNAME" @@ -21,14 +22,14 @@ docker exec "${CONTAINER_NAME}_postgres" pg_dumpall -U "${DB_USERNAME}" > "${TEM cp "${TEMP_DIR}/database.sql" "${DB_DATA_LOCATION}/database_backup.sql" # Stop containers for consistent backup -docker compose stop +docker_compose stop # Backup volumes # shellcheck disable=SC2046 backup_items $(get_immich_volumes) || _die "Failed to create backup" # Restart containers -docker compose start +docker_compose start # Clean up rm -f "${DB_DATA_LOCATION}/database_backup.sql" diff --git a/immich/destroy.sh b/immich/destroy.sh index d330eab..65722c0 100755 --- a/immich/destroy.sh +++ b/immich/destroy.sh @@ -3,6 +3,7 @@ source "${AGENT_PATH}/common.sh" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${SCRIPT_DIR}/_volumes.sh" +source "${SCRIPT_DIR}/_compose.sh" _check_required_env_vars "CONTAINER_NAME" @@ -12,7 +13,7 @@ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" # Stop and remove containers and volumes if [ -f docker-compose.yml ]; then - docker compose down -v 2>/dev/null || true + docker_compose down -v 2>/dev/null || true fi # Destroy data directories diff --git a/immich/install.sh b/immich/install.sh index a9e4b1a..c4d431d 100755 --- a/immich/install.sh +++ b/immich/install.sh @@ -3,6 +3,7 @@ source "${AGENT_PATH}/common.sh" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${SCRIPT_DIR}/_volumes.sh" +source "${SCRIPT_DIR}/_compose.sh" _check_required_env_vars "CONTAINER_NAME" "UPLOAD_LOCATION" "DB_DATA_LOCATION" "DB_PASSWORD" @@ -45,7 +46,7 @@ _create_folder "${DB_DATA_LOCATION}" # Pull images echo "Pulling Immich images..." -docker compose pull || _die "Failed to pull images" +docker_compose pull || _die "Failed to pull images" # Stop and remove existing containers bash ./stop.sh 2>/dev/null || true diff --git a/immich/logs.sh b/immich/logs.sh index 84836c3..5ed1beb 100755 --- a/immich/logs.sh +++ b/immich/logs.sh @@ -2,6 +2,7 @@ # shellcheck disable=SC1091 source "${AGENT_PATH}/common.sh" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "${SCRIPT_DIR}/_compose.sh" _check_required_env_vars "CONTAINER_NAME" @@ -9,4 +10,4 @@ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" [ -f docker-compose.yml ] || _die "docker-compose.yml not found." -docker compose logs -f +docker_compose logs -f diff --git a/immich/start.sh b/immich/start.sh index d537d85..26e566b 100755 --- a/immich/start.sh +++ b/immich/start.sh @@ -2,6 +2,7 @@ # shellcheck disable=SC1091 source "${AGENT_PATH}/common.sh" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "${SCRIPT_DIR}/_compose.sh" _check_required_env_vars "CONTAINER_NAME" @@ -9,6 +10,6 @@ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" [ -f docker-compose.yml ] || _die "docker-compose.yml not found. Run install.sh first." -docker compose up -d || _die "Failed to start containers" +docker_compose up -d || _die "Failed to start containers" echo "Immich containers started successfully." diff --git a/immich/stop.sh b/immich/stop.sh index 9bdd8d6..9e5f2d8 100755 --- a/immich/stop.sh +++ b/immich/stop.sh @@ -2,6 +2,7 @@ # shellcheck disable=SC1091 source "${AGENT_PATH}/common.sh" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "${SCRIPT_DIR}/_compose.sh" _check_required_env_vars "CONTAINER_NAME" @@ -11,6 +12,6 @@ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" [ -f docker-compose.yml ] || _die "docker-compose.yml not found." -docker compose stop || _die "Failed to stop containers" +docker_compose stop || _die "Failed to stop containers" echo "Immich containers stopped." diff --git a/immich/uninstall.sh b/immich/uninstall.sh index 4472b47..a764892 100755 --- a/immich/uninstall.sh +++ b/immich/uninstall.sh @@ -2,6 +2,7 @@ # shellcheck disable=SC1091 source "${AGENT_PATH}/common.sh" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "${SCRIPT_DIR}/_compose.sh" _check_required_env_vars "CONTAINER_NAME" @@ -11,7 +12,7 @@ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" # Stop and remove containers (preserves volumes) if [ -f docker-compose.yml ]; then - docker compose down 2>/dev/null || true + docker_compose down 2>/dev/null || true fi echo "Uninstallation of ${CONTAINER_NAME} complete."