Files
dropshell-templates/immich/install.sh
j 8d4f24af4e
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 8s
Update immich/install.sh
2026-01-15 11:35:50 +13:00

58 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# shellcheck disable=SC1091
source "${AGENT_PATH}/common.sh"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/_volumes.sh"
_check_required_env_vars "CONTAINER_NAME" "UPLOAD_LOCATION" "DB_DATA_LOCATION" "DB_PASSWORD"
# Set defaults
IMMICH_VERSION="${IMMICH_VERSION:-release}"
ML_IMAGE_TAG="${ML_IMAGE_TAG:-release}"
ML_GPU_ENABLED="${ML_GPU_ENABLED:-false}"
WEB_PORT="${WEB_PORT:-2283}"
DB_USERNAME="${DB_USERNAME:-postgres}"
DB_DATABASE_NAME="${DB_DATABASE_NAME:-immich}"
cd "$SCRIPT_DIR" || _die "Failed to change to script directory"
# Generate docker-compose.yml from template using sed
echo "Generating docker-compose.yml..."
sed -e "s|\${CONTAINER_NAME}|${CONTAINER_NAME}|g" \
-e "s|\${UPLOAD_LOCATION}|${UPLOAD_LOCATION}|g" \
-e "s|\${DB_DATA_LOCATION}|${DB_DATA_LOCATION}|g" \
-e "s|\${DB_PASSWORD}|${DB_PASSWORD}|g" \
-e "s|\${DB_USERNAME}|${DB_USERNAME}|g" \
-e "s|\${DB_DATABASE_NAME}|${DB_DATABASE_NAME}|g" \
-e "s|\${WEB_PORT}|${WEB_PORT}|g" \
-e "s|\${IMMICH_VERSION}|${IMMICH_VERSION}|g" \
-e "s|\${ML_IMAGE_TAG}|${ML_IMAGE_TAG}|g" \
docker-compose.yml.template > docker-compose.yml \
|| _die "Failed to generate docker-compose.yml"
# Add GPU configuration if enabled
if [ "$ML_GPU_ENABLED" = "true" ]; then
echo "Enabling GPU acceleration..."
sed -i 's|#GPU_PLACEHOLDER#| devices:\n - /dev/dri:/dev/dri|' docker-compose.yml
else
# Remove the placeholder
sed -i '/#GPU_PLACEHOLDER#/d' docker-compose.yml
fi
# Create data directories
_create_folder "${UPLOAD_LOCATION}"
_create_folder "${DB_DATA_LOCATION}"
# Pull images
echo "Pulling Immich images..."
docker compose pull || _die "Failed to pull images"
# Stop and remove existing containers
bash ./stop.sh 2>/dev/null || true
# Start services
bash ./start.sh || _die "Failed to start containers"
echo "Installation complete for ${CONTAINER_NAME}."
echo "Web UI available at http://localhost:${WEB_PORT}"