Sign inSign up

michis0806/eingang-sync

By michis0806

Updated 3 months ago

Image
0

1.7K

michis0806/eingang-sync repository overview

eingang-sync

Ueberwacht einen lokalen Ordner auf der Synology und laedt neue Dateien automatisch auf iCloud Drive hoch. Nach erfolgreichem Upload werden die Dateien in den #recycle-Ordner verschoben.

Features

  • Echtzeit-Erkennung neuer Dateien via inotify
  • Startup-Scan fuer Dateien, die waehrend Container-Downtime angekommen sind
  • Rekursiv: Unterordner werden gescannt, Dateien landen flach im iCloud-Zielordner
  • Debounce: Wartet bis Dateien fertig geschrieben sind (konfigurierbar)
  • Ignoriert temporaere Dateien (.tmp, .part, …) und Systemordner

Voraussetzungen

  • Synology NAS mit Docker-Paket (Container Manager)
  • iCloud-Backup-Docker Container mit authentifizierter Session – die Session-Cookies werden per Volume geteilt

Quick Start

1. docker-compose.yml
services:
  eingang-sync:
    image: <dein-dockerhub-user>/eingang-sync:latest
    container_name: eingang_sync
    restart: unless-stopped
    environment:
      - APPLE_ID=${APPLE_ID}
      - ICLOUD_TARGET_FOLDER=${ICLOUD_TARGET_FOLDER:-Eingang}
    volumes:
      # Eingangsordner auf der Synology:
      - /volume1/homes/<user>/Eingang:/watch
      # Session-Cookies vom iCloud-Backup-Docker Container (read-only):
      - /volume1/docker/icloud-backup/config/sessions:/sessions:ro
2. .env-Datei

Lege eine .env-Datei im selben Verzeichnis an:

[email protected]
ICLOUD_TARGET_FOLDER=Documents/Eingang
3. Container starten
docker compose up -d

Synology Container Manager (GUI)

Falls du den Container ueber die Synology-Oberflaeche einrichten moechtest:

  1. Registry > Suche nach eingang-sync > Image herunterladen
  2. Container erstellen > Image auswaehlen
  3. Umgebungsvariablen setzen (siehe Tabelle unten)
  4. Volumes einrichten:
    Lokaler PfadMount-PfadModus
    /volume1/homes/<user>/Eingang/watchLesen/Schreiben
    /volume1/docker/icloud-backup/config/sessions/sessionsNur Lesen
  5. Neustart-Richtlinie: Immer neu starten (unless-stopped)
  6. Container starten

Umgebungsvariablen

VariableDefaultBeschreibung
APPLE_ID(pflicht)Apple-ID E-Mail
APPLE_PASSWORD(optional)Nicht noetig wenn Session-Cookies geteilt werden
WATCH_DIR/watchEingangsordner im Container
RECYCLE_DIR/watch/#recycleZiel fuer verarbeitete Dateien
ICLOUD_TARGET_FOLDEREingangZielordner auf iCloud Drive
COOKIE_DIR/sessionsPfad zu den Session-Cookies
SETTLE_SECONDS5Warte-Sekunden bis Datei als fertig gilt
LOG_LEVELINFODEBUG, INFO, WARNING, ERROR

Funktionsweise

  1. Beim Start werden vorhandene Dateien im Eingangsordner hochgeladen
  2. Danach ueberwacht ein inotify-Watcher den Ordner in Echtzeit
  3. Neue Dateien werden nach der Settle-Zeit hochgeladen
  4. Nach Upload wird die Datei in #recycle verschoben
  5. Leere Unterordner werden aufgeraeumt

Tag summary

Content type

Image

Digest

sha256:d87e5a188

Size

59.9 MB

Last updated

3 months ago

docker pull michis0806/eingang-sync