I'm new to Docker and still learning how all of this fits together. I have a Ugreen NAS with Docker installed and tried deploying Immich through Portainer. Portainer reported that the stack deployed successfully, and all four services appeared to be running, but I couldn't access the Immich web interface at all.
When I deleted the stack and deployed Immich directly with Docker using the exact same YAML and environment files, it worked normally and I could open the web interface. I know I can use the working setup, but I'd like to understand what Portainer might be doing differently and what I should check. An ELI5-style explanation would be appreciated.
3 Answers
If the containers show as running but the page won't load, check the container logs and confirm that the Immich server's port is actually published to the NAS host. A running container doesn't necessarily mean the service is reachable externally. Comparing the working Docker deployment with the Portainer deployment should reveal whether the port mapping, environment variables, or mounted directories changed.
Immich has a specific Portainer deployment procedure, so it would be worth following that guide rather than importing the regular Compose files without changes. Portainer can handle the stack, but the environment file and variable configuration may need to be set up through its interface.
Portainer is essentially a management interface for Docker, so a Compose deployment should behave the same way if all the settings are passed through correctly. The most likely difference is how the environment variables are being loaded. In Portainer, try entering the variables directly in the stack's environment-variable section instead of assuming it will read the .env file exactly like your command-line Compose setup. Also compare the published ports, volume paths, network settings, and variable values between the working and failing deployments.

That makes sense. I hadn't used the Portainer-specific instructions, so I'll compare them with my current stack configuration.