cross-posted from: https://lemmy.world/post/1100232
I tried to bring up an immich server on a cloud provider server with docker, which is successful, but I'd like to organize multiple services into locations under the top level domain, which is a duckdns.org domain with nginx reverse proxy.
So I'd like to reach immich under "https://something.duckdns.org/immich/", but I can't seem to make it work, because if I load it, it redirects me to "https://something.duckdns.org/auth/login" (so it uses the top level, not relative to the /immich location)
If I manually change it to "https://something.duckdns.org/immich/auth/login" the page loads, but it shows an error message "Unable to connect"
If I put it under the / location, it works, but I don't want that
Do I need to change something in the docker compose yaml or the .env files to make it work?
Or is my nginx config messed up?
On my home server I was able to successfuly set up multiple services in a similar way, I just can't make it work with immich-app.
Does anyone has any idea?
Here is my nginx configuration:
`server { listen 80 default_server; listen [::]:80 default_server;
listen 443 ssl default_server; listen [::]:443 ssl default_server; ssl_certificate /etc/letsencrypt/live/MYDUCKDNS_DOMAIN_GOES_HERE/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/MYDUCKDNS_DOMAIN_GOES_HERE/privkey.pem; # managed by Certbot root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } location /immich/ { proxy_pass http://localhost:2283/; include proxy_params; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; }
} `
I am not sure if Immich supports configuring base URL. You can look into that.
If it is not supported, you may need try your luck with URL rewriting. Nginx can do it natively. Briefly, you need to configure Nginx to strip the
/immich
from the request URL before proxying the request to the Immich instance.