No description
  • Shell 69.9%
  • Dockerfile 30.1%
Find a file
Viktor Varland a63bb44547
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
fix: patch elodie metadata bug
2026-04-16 16:35:43 +02:00
elodie@4494ff8514 feat: add elodie wrapper 2026-04-15 11:52:20 +02:00
.containerignore feat: add elodie wrapper 2026-04-15 11:52:20 +02:00
.gitmodules fix: use full url for submodule 2026-04-15 12:14:45 +02:00
.woodpecker.yaml ci: add woodpecker config 2026-04-15 12:10:17 +02:00
config.ini fix: config syntax issues 2026-04-15 12:59:39 +02:00
Containerfile fix: patch elodie metadata bug 2026-04-16 16:35:43 +02:00
entrypoint.sh feat: split import dir into buckets 2026-04-16 13:16:04 +02:00
README.md feat: add elodie wrapper 2026-04-15 11:52:20 +02:00

elodie

Container wrapper for elodie that runs photo imports on a recurring schedule via Incus.

Quick start

Build and import the image:

podman build -t elodie .
podman save elodie | incus image import - --alias elodie

Launch the container:

incus launch elodie elodie \
  --config environment.ELODIE_INTERVAL=3600 \
  --config environment.ELODIE_IMPORT_FLAGS="--trash"

Attach storage:

incus config device add elodie source disk \
  source=/path/to/incoming path=/data/source readonly=true
incus config device add elodie destination disk \
  source=/path/to/photos path=/data/destination
incus config device add elodie state disk \
  source=/path/to/elodie-state path=/data/state

Restart to pick up the devices:

incus restart elodie

Configuration

Configuration is via environment variables set on the Incus container.

Variable Default Description
ELODIE_INTERVAL 3600 Seconds between import runs
ELODIE_IMPORT_FLAGS Extra flags passed to elodie.py import
ELODIE_MAPQUEST_KEY MapQuest API key for geolocation lookups

Update a variable on a running container:

incus config set elodie environment.ELODIE_INTERVAL=1800
incus restart elodie

Import flags

Useful values for ELODIE_IMPORT_FLAGS:

  • --trash -- move source files to trash after import
  • --allow-duplicates -- reimport files already in the hash database
  • --album-from-folder -- use the source folder name as the album
  • --debug -- verbose output
  • --dry-run -- log what would happen without making changes

Combine them: --config environment.ELODIE_IMPORT_FLAGS="--trash --album-from-folder".

Elodie config file

Optional. Place a config.ini in the state volume before first launch (needed only for MapQuest geolocation). See config.ini-sample in the elodie source.

Storage

Mount Path in container Purpose
source /data/source Incoming/unsorted photos (read-only)
destination /data/destination Organized photo library
state /data/state Elodie hash DB, location cache, config

Logs

incus console --show-log elodie

Rebuilding

podman build -t elodie .
podman save elodie | incus image import - --alias elodie --force
incus rebuild elodie elodie