icloud_backup/backup_icloud_photos.sh
2025-02-23 21:45:06 -06:00

44 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# backup_icloud_photos.sh
# Exit immediately if a command exits with a non-zero status
set -e
# SCRIPT_DIR="$(dirname "$(realpath "$0")")"
SCRIPT_DIR="/home/john/mine/scripts/icloud_backup"
# Load environment variables from .env file
if [ -f "$SCRIPT_DIR/.env" ]; then
export $(grep -v '^#' "$SCRIPT_DIR/.env" | xargs)
else
echo ".env file not found in $SCRIPT_DIR/.env!"
exit 1
fi
# Define variables for paths
IMAGE_NAME="icloud-backup"
CONTAINER_NAME="icloud-backup-container"
# Build the Docker image
echo "Building Docker image: $IMAGE_NAME"
docker build -f "$SCRIPT_DIR/Dockerfile" -t "$IMAGE_NAME" "$SCRIPT_DIR"
# Run the Docker container
echo "Running Docker container: $CONTAINER_NAME"
docker run --rm -it \
--name $CONTAINER_NAME \
--network immich_network \
-e "ICLOUD_USERNAME=$ICLOUD_USERNAME" \
-e "ICLOUD_PASSWORD=$ICLOUD_PASSWORD" \
-e "IMMICH_API_KEY=$IMMICH_API_KEY" \
-e "NAS_IMMICH_LIBRARY_ID=$NAS_IMMICH_LIBRARY_ID" \
-v "$SCRIPT_DIR/temp:/backup/temp" \
-v /mnt/photos_backup:/mnt/photos_backup \
-v "$SCRIPT_DIR/cookies:/app/.pyicloud" \
-v "$SCRIPT_DIR/logs:/var/log" \
$IMAGE_NAME
echo "Backup process completed successfully."