All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 8s
58 lines
1.9 KiB
Bash
Executable File
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}"
|