Webbasierte Oberfläche zum schnellen Bearbeiten von Datum und GPS-Position in Fotometadaten – powered by ExifTool von Phil Harvey.
| Feature | Details |
|---|---|
| 📁 Ordner-Browser | Start im konfigurierten PHOTOS_DIR, Navigation per Breadcrumb & Unterordnerliste |
| 🖼 Thumbnail-Vorschau | Rechte Seite zeigt Vorschaubild + EXIF-Tabelle für die aktuelle Datei |
| 🔄 Drehen & Speichern | Fotos direkt im Browser links/rechts drehen und in neuer Orientierung speichern |
| 📅 EXIF-Datum setzen | Datum/Zeit via datetime-local Eingabe, automatischer EXIF-String (YYYY:MM:DD HH:MM:SS) |
| 🗺 Karte & Ortssuche | OpenStreetMap-Karte, Marker per Klick verschiebbar, Ortssuche (Nominatim) mit Übernahme in Lat/Lon |
| 📍 GPS schreiben | GPS-Koordinaten für mehrere ausgewählte Dateien in einem Rutsch setzen |
| 🐳 Docker-optimiert | Schlankes Image auf Basis python:3.12-slim, ideal für NAS / Home-Server |
Die frühere Desktop-GUI auf Basis Tkinter existiert weiterhin im Code, der Fokus liegt aber auf der Weboberfläche.
- ExifTool im Container/Host installiert
- Docker / Docker Compose (für Deployment empfohlen)
- Optional für lokale Entwicklung: Python 3.12+
ExifTool wird nicht gebundled, sondern als externes CLI-Tool über subprocess aufgerufen.
git clone https://github.com/Sturmi77/ExifTool.git
cd ExifToolcp .env.example .env
# PHOTOS_DIR in .env anpassen – z.B. auf dein Fotoverzeichnis
# Beispiel Synology: /volume1/photo oder /volume1/homes/MichaelPHOTOS_DIR definiert das Wurzelverzeichnis, in dem der Ordner-Browser startet. Navigation darüber hinaus ist aus Sicherheitsgründen gesperrt.
docker compose up --build -dDie Weboberfläche ist danach unter:
http://<host>:8000/
oder – je nach Setup – über den konfigurierten Reverse-Proxy/NoVNC-Port erreichbar.
Details siehe docs/USAGE.md.
- Ordner öffnen: Links im Ordner-Browser einen Ordner auswählen (Startpunkt =
PHOTOS_DIR). - Datei wählen: Klick auf einen Dateinamen lädt rechts die Vorschau (Thumbnail + EXIF).
- EXIF-Datum setzen: Datum/Zeit mit dem Picker eintragen – der EXIF-String wird automatisch generiert.
- GPS setzen:
- Direkt Lat/Lon eintippen oder
- Ort über das Suchfeld finden (Nominatim) oder
- Marker in der Karte verschieben.
- Auf Auswahl anwenden: Checkboxen in der Dateiliste setzen und Änderungen schreiben.
- Drehen: Rechts in der Vorschau mit „Links drehen“ / „Rechts drehen“ die Datei physisch rotieren.
git clone https://github.com/Sturmi77/ExifTool.git
cd ExifTool
python -m venv .venv
source .venv/bin/activate # Windows: .venv\\Scripts\\activate
pip install -r requirements.txt
# ExifTool installieren (Host)
sudo apt install libimage-exiftool-perl # Debian/Ubuntu
# oder siehe https://exiftool.org/ für andere Plattformen
export PHOTOS_DIR=/pfad/zu/deinen/fotos
uvicorn src.web.main:app --reload --port 8000Danach ist die App unter http://localhost:8000/ erreichbar.
Die ursprüngliche Tkinter-Anwendung ist weiterhin im Repository enthalten, wird aber nicht mehr aktiv weiterentwickelt.
- Einstiegspunkt:
src/main.py - Module unter
src/gui/(FolderPanel, EditPanel, DatePicker, MapPicker, ExifPreview)
Für reine Desktop-Nutzung kannst du lokal weiterhin:
python src/main.pyverwenden, solange die Python-Abhängigkeiten (tkintermapview, tkcalendar, geopy) installiert sind.
- Benutzung (Web): docs/USAGE.md
- Entwicklung / Architektur: docs/DEVELOPMENT.md
- Dockhand/Dockge-spezifisches Deployment: docs/DOCKHAND.md
- Branch
main: stabiler, releasefähiger Stand. - Branch
development: aktive Entwicklung, Feature-Branches landen hier.
Geplante SemVer-Versionierung:
v0.1.0– erster öffentlicher Web-Release (aktueller Stand)v0.1.x– Bugfixes und kleinere Verbesserungenv0.2.0– größere Feature-Updates
Releases werden über Git-Tags und GitHub Releases verwaltet (siehe docs/DEVELOPMENT.md).
- Code dieses Projekts: MIT License.
- ExifTool: © Phil Harvey – siehe exiftool.org.
- OpenStreetMap & Nominatim: Kartendaten & Geocoding von OpenStreetMap-Mitwirkenden.
- Bitte beachte die Nutzungsbedingungen von Nominatim: https://operations.osmfoundation.org/policies/nominatim/.