From 2a2e51b1ae92149cf71b4da2c949b095c2b89f18 Mon Sep 17 00:00:00 2001 From: Nick Roodenrijs Date: Sun, 8 Mar 2026 19:06:35 +0100 Subject: [PATCH] Move photo paths from /volume2/photos to /volume1/data/photos Immich data share is on /volume1/data, so photos belong there too. Co-Authored-By: Claude Opus 4.6 --- README.md | 16 ++++++++-------- TODO.md | 10 +++++----- deploy.sh | 22 +++++++++++----------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 4afe804..e94ea95 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Automatic photo processing pipeline for Fuji X-H2 photos: camera uploads via FTP ``` ┌─────────────┐ FTPS ┌──────────────────┐ watchdog ┌─────────────┐ │ Fuji X-H2 │ ──────────→ │ Synology NAS │ ────────────→ │ Processor │ -│ (camera) │ port 21 │ /volume2/photos/ │ polling │ container │ +│ (camera) │ port 21 │ /volume1/data/photos/ │ polling │ container │ └─────────────┘ (TLS) │ incoming/ │ └──────┬──────┘ └──────────────────┘ │ │ resize + move @@ -39,7 +39,7 @@ Automatic photo processing pipeline for Fuji X-H2 photos: camera uploads via FTP 2. Enable FTP service on port **21** 3. Enable **FTP SSL/TLS encryption** (FTPS) 4. Set passive port range: **50000-50100** -5. Create a dedicated user `fujiftp` with write access to `/volume2/photos/incoming` +5. Create a dedicated user `fujiftp` with write access to `/volume1/data/photos/incoming` ### 2. Camera Configuration (Fuji X-H2) @@ -72,9 +72,9 @@ The deploy script will: ### 4. Immich Integration 1. In Immich, go to **Administration → External Libraries** -2. Add a new library with import path: `/volume2/photos/processed` +2. Add a new library with import path: `/volume1/data/photos/processed` 3. Set scan interval (e.g., every 15 minutes) -4. Mount `/volume2/photos/processed` into the Immich container as a read-only volume +4. Mount `/volume1/data/photos/processed` into the Immich container as a read-only volume ## Container Details @@ -82,9 +82,9 @@ The deploy script will: | Container Path | Host Path | Purpose | |----------------|----------------------------------------|---------------------------| -| `/incoming` | `/volume2/photos/incoming` | FTP upload landing zone | -| `/originals` | `/volume2/photos/originals` | Full-resolution originals | -| `/processed` | `/volume2/photos/processed` | Resized copies for Immich | +| `/incoming` | `/volume1/data/photos/incoming` | FTP upload landing zone | +| `/originals` | `/volume1/data/photos/originals` | Full-resolution originals | +| `/processed` | `/volume1/data/photos/processed` | Resized copies for Immich | | `/data` | `/volume2/docker/photo-processor/data` | SQLite tracking database | ### Environment Variables @@ -108,7 +108,7 @@ ssh -i ../SynologyDocker/synology_ssh_key ssh@192.168.175.141 \ ### Common Issues -- **Files not detected**: Check that the FTP user has write permissions to `/volume2/photos/incoming`. The processor uses polling (not inotify) so there may be up to a 30-second delay. +- **Files not detected**: Check that the FTP user has write permissions to `/volume1/data/photos/incoming`. The processor uses polling (not inotify) so there may be up to a 30-second delay. - **Permission denied on originals/processed**: Ensure the directories exist and are writable. The deploy script creates them automatically. - **Duplicate filenames**: The processor tracks files by filename in SQLite. If you re-upload a file with the same name, it will be skipped. Delete the entry from `/volume2/docker/photo-processor/data/processed.db` to reprocess. - **Container keeps restarting**: Check logs for Python errors. Common cause: missing directories or permission issues on volume mounts. diff --git a/TODO.md b/TODO.md index 9dc5b41..e8b52bd 100644 --- a/TODO.md +++ b/TODO.md @@ -16,13 +16,13 @@ - [ ] Geen toegang tot andere shares ## 3. NAS Directories aanmaken -- [ ] DSM → Control Panel → Shared Folder → Create `photos` op Volume 2 +- [ ] Maak `/volume1/data/photos/` directory aan (data share bestaat al) - [ ] File Station → maak subdirectories: - [ ] `incoming` - [ ] `originals` - [ ] `processed` - [ ] Geef `fujiftp` user lees/schrijf-rechten op `incoming` -- [ ] Controleer: `ls -la /volume2/photos/` via SSH +- [ ] Controleer: `ls -la /volume1/data/photos/` via SSH ## 4. Photo Processor deployen - [ ] `cd /Users/nick/Development/fuji-photo-processor` @@ -33,7 +33,7 @@ - [ ] DSM → Container Manager → Project → immich → Edit (YAML) - [ ] Voeg toe aan `immich-server` service volumes: ```yaml - - /volume2/photos/processed:/mnt/photos/processed:ro + - /volume1/data/photos/processed:/mnt/photos/processed:ro ``` - [ ] Apply → container herstart automatisch - [ ] Immich webinterface (http://192.168.175.141:8212): @@ -61,8 +61,8 @@ - [ ] FTPS verbinding testen: `curl --ftp-ssl ftp://fujiftp@192.168.175.141/incoming/ -k` - [ ] Upload een test JPEG via FTP - [ ] Check processor logs → moet verwerking tonen -- [ ] Check `/volume2/photos/originals/` → origineel verplaatst -- [ ] Check `/volume2/photos/processed/` → geresized kopie aanwezig +- [ ] Check `/volume1/data/photos/originals/` → origineel verplaatst +- [ ] Check `/volume1/data/photos/processed/` → geresized kopie aanwezig - [ ] Immich → trigger library scan → foto zichtbaar in timeline - [ ] Test vanaf camera: foto nemen → FTP Transfer → check hele flow diff --git a/deploy.sh b/deploy.sh index 8cd8382..da3d20b 100755 --- a/deploy.sh +++ b/deploy.sh @@ -49,12 +49,12 @@ create_directories() { ssh_cmd "mkdir -p $NAS_DOCKER_DIR/data $NAS_DOCKER_DIR/build" # Photos dirs may need elevated permissions - check and warn - if ! ssh_cmd "test -d /volume2/photos/incoming" 2>/dev/null; then - log_warn "/volume2/photos/ directories not found!" + if ! ssh_cmd "test -d /volume1/data/photos/incoming" 2>/dev/null; then + log_warn "/volume1/data/photos/ directories not found!" log_warn "Create them via DSM File Station or as admin:" - log_warn " sudo mkdir -p /volume2/photos/{incoming,originals,processed}" - log_warn " sudo chown -R fujiftp:users /volume2/photos/incoming" - log_warn " sudo chmod 755 /volume2/photos/{originals,processed}" + log_warn " sudo mkdir -p /volume1/data/photos/{incoming,originals,processed}" + log_warn " sudo chown -R fujiftp:users /volume1/data/photos/incoming" + log_warn " sudo chmod 755 /volume1/data/photos/{originals,processed}" exit 1 fi } @@ -82,9 +82,9 @@ start_container() { --restart unless-stopped \ --memory=256m \ -e TZ=Europe/Amsterdam \ - -v /volume2/photos/incoming:/incoming \ - -v /volume2/photos/originals:/originals \ - -v /volume2/photos/processed:/processed \ + -v /volume1/data/photos/incoming:/incoming \ + -v /volume1/data/photos/originals:/originals \ + -v /volume1/data/photos/processed:/processed \ -v "$NAS_DOCKER_DIR/data:/data" \ "$IMAGE_NAME" } @@ -125,9 +125,9 @@ main() { echo "" log_info "=== Deployment Complete ===" log_info "Container: $CONTAINER_NAME" - log_info "Incoming: /volume2/photos/incoming (FTP upload target)" - log_info "Originals: /volume2/photos/originals/YYYY/MM/" - log_info "Processed: /volume2/photos/processed/YYYY/MM/" + log_info "Incoming: /volume1/data/photos/incoming (FTP upload target)" + log_info "Originals: /volume1/data/photos/originals/YYYY/MM/" + log_info "Processed: /volume1/data/photos/processed/YYYY/MM/" echo "" log_info "Check logs: ssh -i $SSH_KEY $NAS_HOST 'sudo /usr/local/bin/docker logs -f $CONTAINER_NAME'" }