this post was submitted on 18 Jun 2024
18 points (90.9% liked)

Selfhosted

40183 readers
492 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
 

Hello,

I've noticed that when I restart my docker compose stack, the app seems to think that the server doesn't have copies of the latest files and re-uploads them.

The files can be seen in the filesystem of the host, but not through the web interface until they have been re-uploaded. The app uploads duplicates of all the files, at which point the web can see them again, and the fs has duplicates of everything.

This happens when I restart the stack, no upgrades to the system, just docker compose down and docker compose up -d

My set up is using an unmodified compose file from the docs. Any ideas what I could be doing wrong?

top 18 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 5 months ago* (last edited 5 months ago) (1 children)

There is an issue with your database persistence. The file is being uploaded but it's not being recorded in your database for some reason.

Describe in detail what your hardware and software setup is, particularly the storage and OS.

You can probably check this by trying to upload something and then checking the database files to see the last modified date.

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

I haven't had time to look into this, but I think this might be the right track. Is it possible for docker to get volumes mixed up? Like, could there be a duplicate dB volume and when the stack gets restarted, docker picks one or the other?

To answer your question, I'm running docker 26.1.1 on Ubuntu server 22.04.4 LTS

The system is on an ssd and the storage is a three disk raid5

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

Like, could there be a duplicate dB volume and when the stack gets restarted, docker picks one or the other?

I'm not sure that is possible. Once a service has a volume defined it'll use that unless you manually change it.

But if you don't have a volume defined, data won't persist when the service is updated.

If you're just using the compose stack given by Immich, then everything should be set up properly though.

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

The volume is defined like this at the end of the compose file

database:
    container_name: immich_postgres
    image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

volumes:
  pgdata:
  model-cache:
[–] [email protected] 1 points 5 months ago (2 children)

Yeah that looks fine, odd.

I assume this is a pretty normal install of Ubuntu, and /var/lib/docker hasn't been messed with at all?

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

It's really weird. I think there are somehow two database volumes on my system.

The reason I think this is because:

  1. I am the only user
  2. there is only one user in the user table
  3. there are two folders in the upload folders. Both have a uuid as their name and one of the uuids matches with the user id in the database
  4. the user_token table has tokens no tokens from before this happened to me a couple days ago

So, where did this other user come from? Why have none of my log ins been tracked in the database before the incident?

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

That's correct. Ubuntu is basically just a platform to run docker, haven't really touched it. Docker is the same. Just using it to run my containers. Haven't ventured at all into /var/lib/docker

The weird thing is that it's intermittent. It's only happened twice since I started using immich. I've been restarting the containers repeatedly for a few days now and it hasnt happened again.

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

How are you persisting Immich's database?

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

Whatever was in the v1.101.0 compose file, which seems to be a docker volume.

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

Did you set the UPLOAD_LOCATION variable in your .env file?

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

Yes, it is set. The files persist fine and in the right location. I think Lem453 is along the right track. I think it's a dB issue

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

Are you using a web proxy? I am guessing it may be doing partials because of upload limit of the proxy.

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

It is sitting behind caddy, not sure if that's considered a proxy

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

I haven't set a Max size, and from what I can understand in the docs, caddy doesn't have a default Max upload

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

https://caddy.its-em.ma/v1/docs/limits you appear to be correct it's something else. Reviewing logs of Immich and if the images uploaded can be accessed would be good info to start with.

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

The images are definitely uploaded. They're on the fs, and in the correct folders

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

I've no idea about the max size hypothesis. I'm simply confirming that Caddy is a proxy in this context.