this post was submitted on 20 Apr 2024
119 points (95.4% liked)

Selfhosted

40347 readers
330 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
all 39 comments
sorted by: hot top controversial new old
[–] ShortN0te@lemmy.ml 52 points 7 months ago (3 children)

Who the hell is pulling the docker-compise.yml automatically every release? I find myself already crazy by pulling the latest release but the compose file is just a disaster waiting to happen.

[–] Bakkoda@sh.itjust.works 25 points 7 months ago

I honestly never once thought to do this. Ever. No likey.

[–] barbara@lemmy.ml 11 points 7 months ago* (last edited 7 months ago)

Especially since the original doesn't care about selinux and it would overwrite everything.

And it doesn't specify a repository which breaks auto updates of podman

[–] Lem453@lemmy.ca 5 points 7 months ago (2 children)

Complete insanity.

Then again it seems like people were using a docker volume to save all their precious photos rather than a mount point on the host. Also seems insane to me.

[–] ArcticDagger@feddit.dk 5 points 7 months ago* (last edited 7 months ago) (1 children)

Could you explain a bit more about why it's insane to have it as a docked volume instead of a mount point on the host? I'm not too well-versed with docker (or maybe hosting in general)

Edit: typo

[–] Lem453@lemmy.ca 2 points 7 months ago (1 children)

A normal file system is something anything can access. You can open it in file browser. You can get to it via command line. You can ssh into from another computer and you can easily back it up with numerous tried and tested backup methods.

Why lock yourself into only being able to access your data via docker?

In a disaster scenario when you are trying to recover files, you will greatly appreciate being able to just see all the files super easily without anything fancy. It also means you can use any standard method to back up all those file.

Recovery is also almost as easy, copy the files back to where they were and just run the docker container.

[–] ArcticDagger@feddit.dk 2 points 7 months ago

Thank you, those are some good points!

[–] jvh@feddit.uk 2 points 7 months ago (1 children)

What's the difference? The docker volume, on my setup anyway, is in /mnt/md0/docker-data/immich_upload/_data/

It's still a directory on the host either way? Although I guess if it's a mount point it won't get removed when removing volumes in docker.

[–] Lem453@lemmy.ca 2 points 7 months ago

That last point is the important one. For important data, I want the setup to be as easily accessible and system agnostic as possible.

[–] barbara@lemmy.ml 17 points 7 months ago* (last edited 7 months ago) (4 children)

I mounted that volume the first time I opened immich's compose file, glad they changed it =)

[–] eskuero@lemmy.fromshado.ws 7 points 7 months ago

lol same I like to know exactly where the data is

[–] sabreW4K3@lazysoci.al 5 points 7 months ago

Me too!

- /opt/immich/postgres:/var/lib/postgresql/data
[–] Lem453@lemmy.ca 4 points 7 months ago

Exactly this, my docker host has a folder for docker data. In there are sub folders for each docker app. Borg back grabs the entire docker data folder and backs it up.

If there are any issues, I can easily see all the files.

I have no idea how people trust things like docker volumes with valuable data without the ability to just see into the filesystem easily.

[–] saddlebag@lemmy.world 2 points 7 months ago (1 children)

I’m not using immich in docker. Can you explain what this breaking is there to fix?

[–] barbara@lemmy.ml 7 points 7 months ago

The datbase files were saved in an internal docker directory and the breaking change is that the location is now different, outside of docker.

[–] Sims@lemmy.ml 15 points 7 months ago
[–] avidamoeba@lemmy.ca 11 points 7 months ago

I was surprised to see the default compose file not force the user to specify an external directory for the database.

[–] Lem453@lemmy.ca 10 points 7 months ago (1 children)

Who was pulling the dicker compose and just straight up running the GitHub version on their server. That seems crazy. Even pulling :latest tag seems crazy to me but this is another level.

This change is only breaking if you are running someone else's docker compose on your server without looking at it.

Also who was running their entire photo album in a docker volume rather than a mount point on the host. Another insane decision. To be fair, the default docker compose never should have had that. It should have been a mount point right from the start.

[–] CriticalMiss@lemmy.world 3 points 7 months ago (1 children)

I don’t run Immich specifically but all other software I run is on :latest tags and unattended-upgrades on Debian. It works so, why bother?

[–] Lem453@lemmy.ca 7 points 7 months ago (2 children)

Mainly because of the number of things I have that I rely on every day and definitely don't want to break until I'm ready to upgrade it and have time to fix it if it does break.

I know many do use :latest but having a service break while I'm away or travelling really sucks

[–] bjvanst@lemmy.world 1 points 7 months ago (1 children)

Why would using latest randomly break your containers?

[–] Lem453@lemmy.ca 2 points 7 months ago

It's not unusual for an update to have breaking changes that require some manual intervention to fix.

If you are on latest, it can also be hard to know which version you used to be on if you want to roll back.

For important things, I used specific version tags and then check the release notes before upgrading.

[–] CriticalMiss@lemmy.world -1 points 7 months ago (1 children)

Only I rely on my services and if they break I’ll fix them myself.

[–] Lem453@lemmy.ca 2 points 7 months ago

Ok...so it should be easy to understand why for many people :latest is not a good idea

[–] pe1uca@lemmy.pe1uca.dev 7 points 7 months ago

Just did the upgrade. Only went and copied the docker folder for the volume.

# docker inspect immich_pgdata | jq -r ".[0].Mountpoint"
/var/lib/docker/volumes/immich_pgdata/_data

Inside that folder were all the DB files, so I just copied that into the new folder I created for ./postgres

I thought there would be issues with the file permissions, but not, everything went smoothly and I can't see any data loss.
(This even was a migration from 1.94 to 1.102, so I also did the pgvecto-rs upgrade)

[–] 5PACEBAR@lemmy.world 7 points 7 months ago (1 children)

Me, an intellectual, who was already mounting the database data folder to the host filesystem.

[–] quaff@lemmy.ca 4 points 7 months ago* (last edited 7 months ago)

Pretty simple to switch (if you have a little docker experience). Create a folder (e.g. ./postgres), add the folder as a volume in the postgres portion of the compose file (maybe something like /db), then run just the database with newly mounted folder, shell in, and copy everything from the Postgres folder to this new folder. After that, swap mounts so the new folder is used as Postgres db and you’re good. If something went wrong, the pgdata volume is still there to switch back to.

[–] rambos@lemm.ee 4 points 7 months ago* (last edited 7 months ago) (2 children)

First time im not completely sure how to proceed with update. This part is unclear to me:

Unfortunately there isn't a "proper" way to export a docker volume. The recommended method is to mount the volume and the directory (you want to copy your data to) to an arbitrary container, get a shell inside that container and copy the folder manually.

I know how to stop the container and dump db, but need some help here

[–] MangoPenguin@lemmy.blahaj.zone 2 points 7 months ago (1 children)

Just go to /var/lib/docker/volumes and copy the data out of the relevant volume. No need to mount anything.

[–] siskourso@odin.lanofthedead.xyz 1 points 7 months ago

I went about it this way as well, was much easier this way.

[–] Railcar8095@lemm.ee 4 points 7 months ago (1 children)

I really wish they get to the point where we can expect long term with no breaking changes. I love it but I have been burnt twice, which is not a lot, but it was very annoying both times

[–] ReallyActuallyFrankenstein@lemmynsfw.com 4 points 7 months ago (2 children)

What does it mean that it's "opt-in"? Meaning, my opt-out is just to never update Immich again?

[–] pacoboyd@lemm.ee 7 points 7 months ago

So the way I read it, if you want to opt in, you make the new changes they state in your yml. I didn't and just hit upgrade to pull the new images and it worked fine. I don't see any issues, but I'll be glad if someone says I did it wrong.

I think it's only breaking if you pull the new yml and don't move your data.

[–] Chaphasilor@feddit.nl 2 points 7 months ago

You don't have to change the database location.

[–] MangoPenguin@lemmy.blahaj.zone 3 points 7 months ago* (last edited 7 months ago)

Who is out there running compose down -v when they want to keep their data lol

Not a fan of this change, using volumes is what makes docker truly portable between systems. It's not the responsibility of Immich if people are running the wrong commands when managing their system.