Since you already got some replies, a bit of a different approach would be to set those services up using Docker and having Tailscale as a sidecar to each one of those.
You will then be able to access each one as a seperate device. immich.*.ts.net etc.
Yup.
Tailscale has some documentation about it, and also a bunch of examples (And apparently one specific to Immich).