health check endpoints for each service

I am implementing Immich in k8s. For correctly setting up the probes I need to know correct health check endpoints. Are they documented somewhere?
19 Replies
jrasm91
jrasm913y ago
I don't think we have probes documented anywhere, no. There is a help chart here: https://github.com/immich-app/immich-charts, but I'm not sure if it has any probes in it. Not sure what this means, but it might just ping the port? https://github.com/immich-app/immich-charts/blob/main/charts/apps/immich/values.yaml#L209
joshiparth1000
joshiparth1000OP3y ago
These are tcp probes. These will not give the true picture if the service is responsive or not. It’s better to have http probes. 200 status code will indicate service is working properly
jrasm91
jrasm913y ago
The only probe I know of is one for the api: http://localhost:2283/api/server-info/ping (or immich-server:3001/server-info/ping
joshiparth1000
joshiparth1000OP3y ago
Ok that works but I found another thing . /server-info is not protected. Although it does not have any sensitive info but still better to have some sort authentication in place
jrasm91
jrasm913y ago
Yes, I think there's an open github issue for that already. You could make an issue for liveness probes too, we could add them to each container in a consistent fashion.
joshiparth1000
joshiparth1000OP3y ago
I actually made my own chart with ingress and pvc included. I use traefik so removed proxy container and send traffic directly from ingress controller to services
jrasm91
jrasm913y ago
Nice!
joshiparth1000
joshiparth1000OP3y ago
I actually don’t understand the need of the micro service container It doesn’t seem to come in the picture. Because web and server don’t refer to it. Can you explain why that’s needed ?
jrasm91
jrasm913y ago
Sure The immich-server container queues jobs using a package called bull, which relays them to consumers through redis. So it's uses redis to communicate with that container. It pushes jobs to redis and then microservices consumes and processes them. An upload event, for example, queues the job to generate a thumbnail, extract exif, and/or transcode a video, and those jobs run in the the microservices process (in the background).
joshiparth1000
joshiparth1000OP3y ago
Ah ok. Makes sense This is an awesome project! I would love to contribute to it. I work in Devops, k8s and cloud .
jrasm91
jrasm913y ago
Sweet It seems like there a few different ways people seem to install it. A decent amount of people use k8s, charts, other truenas, others unraid, some a community maintained all in one image, another group uses portainer, and some people use docker-compose. Then there's a variety of proxies. Some user nginx, other traefic, others caddy, other nginx proxy manager. Some use the project as is (keep nginx proxy), some use their own proxy directly, some use their own postgres container, some use their own redis container. Lots of variations. We need all of them more or less for the project to work, but because it's self hosted some people can share infrastructure with other projects.
joshiparth1000
joshiparth1000OP3y ago
Yeah there quite a few ways . I for example use shared postgres and redis and traefik .
jrasm91
jrasm913y ago
But not everyone is a docker networking expert so it is nice to just ship a working version with all the components. Yeah, so then only web/server/microservices for you.
joshiparth1000
joshiparth1000OP3y ago
That’s true maybe create ansible playbooks for easier install. But the best thing is to document in detail so people can choose their own path
jrasm91
jrasm913y ago
Yeah, we have some documentation here: https://immich.app/docs/install/ but who wants to spend time writing documentation 😛
joshiparth1000
joshiparth1000OP3y ago
I can probably contribute the chart I created . It will probably others help setup there installs
jrasm91
jrasm913y ago
Yeah, that seems like a good idea
joshiparth1000
joshiparth1000OP3y ago
Cool I’ll create a PR for review
jrasm91
jrasm913y ago
Sounds good. bo0tzz seems to do most of the devops stuff for immich So he can probably take a look at it

Did you find this page helpful?