Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include the database server & redis, if needed #468

Open
thany opened this issue Dec 1, 2024 · 6 comments
Open

Include the database server & redis, if needed #468

thany opened this issue Dec 1, 2024 · 6 comments

Comments

@thany
Copy link

thany commented Dec 1, 2024

Can we please have a docker image that just contains everything that's needed? I don't want to fiddle with a postgres server that I have zero experience with, I don't want to have a postgres docker just floating around that I won't know what it's for in a few months, I don't want to have to micro-manage the connection and authentication between the two dockers, and I don't want to have to somehow setup a dependency from one to the other so that one only starts once the other is working. Same for Redis - not sure what it's for, but please integrate it if it's neccesary.

For those who do want to fiddle with several separate dockers - go at it. Some people even enjoy it. And power to them.

But maybe many people just want to install a docker and be done with it. So I'm not advocating that everyone get a fully integrated docker and no room for tweaking and nerdery. I'm just asking to keep things as simple as possible for a bog standard scenario, with the option of migrating to a more complex setup whenever (or if ever) it's going to be required or desired.

@hydazz
Copy link
Member

hydazz commented Dec 1, 2024

I understand where you're coming from, but adding Redis and PostgreSQL into the same container adds significant overhead for us to maintain. It's just me and @martabal managing this container, and maintaining a fully integrated container would require considerable time and effort.

For Redis, you can use Docker Mods to run it internally within the container if that suits your setup better. This removes 1 more container you need to have running.

The bigger issue, however, is PostgreSQL. The required PostgreSQL version (14) is no longer supplied with the upstream Ubuntu Noble release (source). This creates a problem: upgrading from PostgreSQL 14 to 15 (when PG14 is axed) would require both versions to be installed simultaneously for the migration process. Since PostgreSQL 14 is already widely used for Immich, everyone would need to manually install both versions, handle the migration themselves, and then remove the old version—this is quite a bit of work and not something we can streamline easily in a combined container.

I don't want to have to micro-manage the connection and authentication.

I get it, but this is a "set it and forget it" situation. Once the initial setup is complete, the connection and authentication rarely require any ongoing maintenance.

TL;DR what you are asking for is not impossible, and we could do this and maintain it ourselves, but you are the first and only person to request this...

You may be able to get ChatGPT to modify my existing postgres docker-mod and update it so it works, you'll need to;

  • Install postgres 14/15 from PostgreSQL's Debian repository
  • Install pgvecto.rs on top of that
  • Configure PostgreSQL to initialise a database and use for Immich when it starts initially
  • maybe some other steps

@MattFromGer
Copy link

you are the first and only person to request this...

Person 2 checking in 😅✌️

@zwar77
Copy link

zwar77 commented Dec 7, 2024

Person 3 checking in, the dependencies and issues that crop up trying to get these containers to work together is a pain. I have had more issues trying to integrate these containers more than any other app container I've worked with. From the upgrade issues breaking the old db to postgres versions on the command line not working correctly.

That goes to say -- I do appreciate all of the work and time you folks put into this project. I would consider this an amazing nice to have, and wanted to put it out there that there appears to be a huge vacancy in this area for the Unraid community. All one needs to do is look at the forums in Unraid and you will see all of the problems that people are having to get this working.

All-in-one = super nice to have, and there is a huge demand from what I see on reddit/unraid, just looking at all the troubleshooting/requests for assistance.

@martabal
Copy link
Collaborator

martabal commented Dec 7, 2024

Like @hydazz said, having postgres included in the image is asking for problems.

This container is based on a linuxserver image and it follows their philosophy on how an application should be containerized. From my experience I don't know any container which includes a database in the container (other than sqlite).

All one needs to do is look at the forums in Unraid and you will see all of the problems that people are having to get this working.

I check the Unraid forums from time to time and I'm on Immich's discord and most of the time the problem is just a one line change. Nothing really complicated, at least something that should be solved by a server admin.

@jorgen-k
Copy link

Use docker compose, the pure intention of that is to provide a complete stack. The immich developers and maintainers have made it extremely easy to use with a ready made compose file you do not even have to touch; you tailor it in one simple .env file.

@thany
Copy link
Author

thany commented Dec 31, 2024

@jorgen-k You massively overestimate my ability to work with docker compose, and you've also overestimated Unraid's support for it. You can say it's easy all day long, but do speak for yourself.

But even then, docker compose poses the same problem: you still need to micromanage the dependencies of a docker that it itself should be managing. I just want to go download, set up some initial admin password, start the thing, and DONE. I believe that was one of the perks of docker. I never had the impression that docker was another complicated alternative to regular local installation. And, in Unraid, it's been set up to be simple. I'd like to keep it that way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants