this post was submitted on 29 May 2024
28 points (93.8% liked)

Selfhosted

40183 readers
866 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

Hi guys! I'm having my first attempt at Immich (...and docker, since I'm at it). So I have successfully set it up (I think), and connected the phone and it started uploading. I have enabled foreground and background backup, and I have only chosen the camera album from my Pixel/GrapheneOS phone. Thing is, after a while (when the screen turns off for a while, even though the app is unrestricted in Android/GrapheneOS, or whenever changing apps...or whenever it feels like), the backup seems to start again from scratch, uploading again and again the first videos from the album (the latest ones, from a couple of days ago), and going its way until somewhere in December 2023...which is where at some point decides to go back and re-do May 2024. It's been doing this a bunch of times. I've seen mentioned a bunch of times that I should set client_max_body_size on nginx to something large like 5000MB. However in my case it's set to 0, which should read as unrestricted. It doesn't skip large videos of several hundreds megs, it does seem to go through the upload process...but then it keeps redoing them after a while.

Any idea what might be failing? Why does it keep restarting the backup? By the way, I took a screenshot of the backup a couple days ago, and both the backed up asset number and the remainder has kept the same since (total 2658, backup 179, remainder 2479). This is a couple of days now going through what I'd think is the same files over and over?

SOLVED: So it was about adding the client_max_body_size value to my nginx server. I thought I did, so I was ignoring this even though I saw it mentioned multiple times. Mine is set to value 0, not 50000M as suggested on other threads, but I thought it should work. But then again, it was in the wrong section, applying to a different service/container, not Immich. Adding it to Immich too (with 0, in my case, which should set it to "unlimited") worked immediately after restarting nginx service. Thanks everyone for all the follow ups and suggestions!

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 5 months ago (12 children)

Good point about media storing. I seem to have some loop folders issue. My Immich folder has encoded-video (empty), profile (empty), thumbs (with stuff), and immich-files...and immich-files has encoded-video (again, empty), library (with all the stuff), profile (empty), thumbs (empty) and upload (empty). This is my .env:

UPLOAD_LOCATION=/media/MyNAS/Immich/immich_files
THUMB_LOCATION=/media/MyNAS/Immich/thumbs
ENCODED_VIDEO_LOCATION=/media/MyNAS/Immich/encoded-video
PROFILE_LOCATION=/media/NASdata/MyNAS/Immich/profile

And...this is my docker-compose.yml:

    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - ${THUMB_LOCATION}:/usr/src/app/upload/thumbs
      - ${ENCODED_VIDEO_LOCATION}:/usr/src/app/upload/encoded-video
      - ${PROFILE_LOCATION}:/usr/src/app/upload/profile
      - /etc/localtime:/etc/localtime:ro

Is there anything obviously wrong that would make Immich place stuff in weird folders? Should I remove all the additional paths from .env, leaving only UPLOAD_LOCATION?

[–] [email protected] 2 points 5 months ago (11 children)

I'd watch those folders, especially the UPLOAD_LOCATION, when it's uploading. Are they being written? Do they persist, or are they being deleted? See if you can upload a single image through the web client, and observe that behavior too.

[–] [email protected] 2 points 5 months ago* (last edited 5 months ago) (10 children)

I mean, my concern is...it would seem in docker-compose.yml that these paths would match:

${THUMB_LOCATION} = ${UPLOAD_LOCATION}/thumbs
${ENCODED_VIDEO_LOCATION} = ${UPLOAD_LOCATION}/encoded-video
${PROFILE_LOCATION} = ${UPLOAD_LOCATION}profile

, which might explain why I'm getting a thumbs folder inside my /media/MyNAS/Immich/immich-files...same with profile and encoded-video. The thumbs clearly is being used (the one inside Immich/immich-files/thumbs), while the root-located one (Immich/thumbs) is not. The root-based folders might be created due to the .env file, but then not used...and maybe it's confusing Immich? Can I remove the entries from the .env, leaving just the UPLOAD_LOCATION one? Or am I making myself a mess this way? Maybe I should make them point equally in the .env to the same sub-paths inside immich-files so they match the structure in the docker-compose.yml? Sorry...kinda new to docker compose.

[–] [email protected] 3 points 5 months ago (1 children)

I think the issue might be that the config changes haven't been properly committed. Docker container won't just update based on docker compose config.

docker container stop
docker container rm

You might want to delete and reset any settings which have been set

docker volume ls
docker volume rm (IDs from docker volume ls)

(This will also wipe out any backups/accounts made on immich already tho)

But once you have deleted the old containers, running docker compose up -d will start the containers with the new config. You can use docker compose logs -f to see the server logs and check if everything is working.

[–] [email protected] 2 points 5 months ago* (last edited 5 months ago) (1 children)

Thanks for all the help. I changed the paths as I was mentioning a bit on the .env, so they matched the ones on the docker-compose.yml. But no dice. I think it gets stuck at the same picture, although I'm not 100% sure which one. After I rebuilt the container, the number of assets increased by two, but I also realized that I took a couple pics earlier. So it added those two and crashed a while later at the same spot as before...Is a picture/video capable of corrupting the whole backup?? Also, I'm not sure how to properly track which one is messing it, because the backup seems to have skipped a lot of pictures in what it copied.

[–] [email protected] 1 points 5 months ago (2 children)

If it is due to a sigle asset I imagine an error would log to the console.

[–] [email protected] 1 points 5 months ago* (last edited 5 months ago) (1 children)

O.M.G....so many hours wasted. One of my first searches already returned "you should increase client_max_body_size to something like 50000M", and I was like I aLreAdy iNCreAseD mY client_max_body_size tO zERo sO its uNLimIteD DuH <spongebob.jpg> Well turns out my client_max_body_size 0 parameter was in a section defining parameters for a different container/server. So of course it wasn't applying to Immich. Just added the same line to Immich section too, restarted nginx...and the backed up asset count is already wayy ahead of the ceiling it would always hit at 180ish assets. I think I might have found my issue.

Thanks for all the help and following up!

[–] [email protected] 1 points 5 months ago

Glad you found the issue! I fell asleep hard last night sorry I couldn't be your rubber duck haha

[–] [email protected] 1 points 5 months ago* (last edited 5 months ago)

You mean to docker logs immich_server ? I think this would be about the only error kinda it's outputting once in a bluemoon.

[Nest] 6 - 05/29/2024, 2:40:17 PM WARN [ImmichServer] [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses

Everything else is Websocket Connect, Websocket Disconnect.

load more comments (8 replies)
load more comments (8 replies)
load more comments (8 replies)