Would this flow work with Immich & Syncthing to copy images and auto upload and delete? - eviltoast

I would like new images to be uploaded to Immich from my phone and deleted after 30 days automatically, so I was thinking about this flow:

  1. I will Sync files to the server using Syncthing

  2. I will Copy files from the Synced folder to an Immich Consume folder, (not sure how to copy only new files (maybe use created date)). Then delete images that are older than 30 days which will remove them from my phone.

  3. I will upload to Immich using Immich CLI (?) which will use the delete after upload flag.

Basically:  

(1)

Camera, Screenshots, etc =Syncthing=> SyncthingImageConsume/{Folder}

(2)

{Script on SyncthingImageConsume}

SyncthingImageConsume/{Folder} =CopyNewFiles=> ImmichConsume/{Folder}

Then delete older than 30 days.

(3)

{Script on ImmichConsume}

Upload to immich and then delete

 

would this work? and is there a better way to do it? any tips?

  • couch1potato@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    7 months ago

    I just set up something similar a couple weeks ago because I wanted to upload named album folders as albums into immich.

    Workflow is:

    Syncthing to sync phone folder to folder on unraid server.

    2nd syncthing instance to sync above folder to “photo albums” folder.

    Immich-go cron job runs hourly to upload photo albums folder to immich

    I used immich-go because the CLI upload with album tag kept failing and apparently it’s a common issue so… ¯\_(ツ)_/¯ immich-go worked first try.

    Now all my photos are uploaded as albums with no manual input:

    • Mir@programming.devOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      7 months ago

      Thank you. First person to not advise me to use something other than immich for this. And thanks for the heads up about the CLI, can you share the upload script?

      • couch1potato@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        7 months ago

        Sure… I’m on unraid…

        cd /mnt/user/appdata_docker/immich/immich-go
        ./immich-go -server=http://192.168.20.1:8080 -key=IMMICH_API_KEY upload -create-album-folder -when-no-date=FILE /mnt/user/photo_libraries```
        
        
        ![](https://lemmy.dbzer0.com/pictrs/image/5155dc7f-1545-4e07-b7ec-4721e5fec43a.jpeg)
        
        
        There are other flag arguments that may be applicable to your use case... I'd suggest finding immich-go documentation on github and reading. It's not that intense of a read.
    • Mir@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      7 months ago

      Can you tell me about the syncthing set up, how do you have the folders set up to sync?

      for instance I have DCIM with folders inside it, do you sync the whole folder or for each folder inside it like “Camera, Screenshot” etc?

      • couch1potato@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        7 months ago

        I created a specific folder to move family photos to that syncs with the server, because i use my phone for work pictures too and I don’t want those to end up on my immich timeline. So I manually move photos to that folder, but that’s the only manual intervention for me.

        I set up the album handling the way I did because my wife spent a lot of time sorting stuff into folders and she wanted the organized folders to carry over to immich.

        I do separately sync the DCIM folder to server with syncthing as well, just as a backup, but those don’t go to immich.

        So for immich destined items it looks like:

        1. Manually move pics to phone “family photos” folder

        2. Syncthing-ext syncs phone folder “family photos” to server folder “syncthing_folders/my_family_pics”. (Also syncs phone folder “DCIM” to server folder “syncthing_folders/phone_pics_backup”)

        3. Syncthing-int (second syncthing instance on different port, so syncthing-ext and syncthing-int see each other as different devices and can work on the same folders) syncs server folder “syncthing_folders/my_family_pics” to some other designated server folder to work with immich… for example “photo_libraries/my_family_pics”

        4. The script I shared runs on server folder “photo_libraries/”

        It’s set up this way because I have syncthing-ext syncing with a bunch of external devices and this way i can funnel just the photo folders into one photo library folder to run the script on.

        If you have more questions it’s cool… I never get to talk about this stuff with anyone who appreciates it 😶‍🌫️

        • Mir@programming.devOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          7 months ago

          Thank you so much, perfect explanation.

          Do you keep the stuff on your phone then? how does syncthing handles deleting if you’re deleting? did you set up the folder as send only?

          I’m working on setting it up for me to do so:

          1. Manually move some pics on my phone to “Inbox” folder (To be sorted in albums later)
          2. Syncthing will automatically sync “Inbox” and “Camera” folders to “Syncthing Consume”
          3. A job to copy from “Syncthing Consume” to “Immich Consume”
          4. Immich Go will move everything to Immich
          5. Anything in the Inbox Album will get sorted to different albums at some point
          6. Eventually anything that isn’t synced will be removed from my phone
          • couch1potato@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            1
            ·
            7 months ago

            Yeah the phone folder is send only and the server syncthing-ext folder is receive only.

            I never really find myself deleting stuff because I don’t take that many pictures/videos, but my wife is the one always running out of space. I’ve told her when she sees her album in immich it’s safe to delete from the phone.

            I’m not sure how you’d automate deleting stuff while making sure you’re not deleting items that haven’t been sent yet… but, it’s not really something I’m interested in because I don’t have the need.

            Another good practice (at least I’d like to think so), my syncthing-int which sends everything to /photo_libraries also sends everything to two other backup folders that are pinned to separate discs. So if I have a drive failure or multiple drive failures I’d still have a copy of all the photos/albums.

            • Mir@programming.devOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              7 months ago

              I’m not sure how you’d automate deleting stuff while making sure you’re not deleting items that haven’t been sent yet

              Yeah this will be very tricky, I’m thinking if I got over the initial push to Immich, I just delete manually from my phone when I see things have already moved to Immich and I don’t need it anymore.

              Another good practice (at least I’d like to think so), my syncthing-int which sends everything to /photo_libraries also sends everything to two other backup folders that are pinned to separate discs. So if I have a drive failure or multiple drive failures I’d still have a copy of all the photos/albums.

              I will do that to ensure I’ve backed everything up somewhere in case an Immich Failure.