Self-host Immich on redu
Immich is self-hosted photo and video backup, an open source alternative to Google Photos with mobile apps, automatic upload, timeline browsing, and search. People self-host it to keep their entire photo library on infrastructure they control instead of a third-party cloud. On redu, your AI agent runs Immich for you on a real VM in the EU, so you set up no servers, no TLS, and no DNS by hand.
License: Immich is licensed under AGPL-3.0. AGPL, GPL, and permissive licenses all allow self-hosting freely, and in this guide you are the operator running Immich on your own redu infrastructure.
Deploy it with your agent
Connect the redu MCP:
claude mcp add --transport http redu-cloud https://mcp.redu.cloud/mcpPoint your agent (Claude Code is the example here, but any MCP client works) at Immich’s official Docker setup and tell it:
Deploy Immich on redu using its official docker-compose, and expose the web UI.Immich ships an official docker-compose.yml and official Docker images. Your agent uses deploy_compose to run the whole stack on one EU VM with podman-compose up -d --build, then exposes the Immich web UI at https://<name>.redu.cloud. redu never rewrites your compose file, so the stack you defined is the stack that runs. The agent passes the web service’s port from Immich’s own compose setup at deploy time, so the right service is the one that goes live.
Database
Immich needs PostgreSQL with vector extensions for its search, and its official compose stack also includes a Redis service. You have two clean options:
-
Keep the services from Immich’s compose file (default). This is the simplest path: the Postgres and Redis containers defined in Immich’s
docker-compose.ymlrun on the same VM alongside the app, so nothing needs wiring up. This is the default (database: "compose"). Set a strongDB_PASSWORDin the project’s.envas Immich’s docs describe. -
Use a redu managed Postgres. Have the agent provision a separate managed Postgres VM and point Immich at it:
Deploy Immich on redu with a managed Postgres database, and expose the web UI.The connection env is appended to the compose project’s
.env, andDATABASE_*aliases are injected alongside the standardPG*variables so the app connects without manual mapping. Immich’s search relies on Postgres vector extensions, so if you go managed, confirm the required extensions are available first. When in doubt, keep the bundleddbservice from the compose file, which already ships the extensions Immich expects.
Access it
Once the deploy finishes, Immich is live at https://<name>.redu.cloud with TLS already handled by a wildcard cert, no per-app certificate setup. Open that URL in your browser and follow Immich’s own onboarding to create the initial admin account, then install the mobile app and point it at your live URL to start backing up.
Keep it running
Deploys are self-healing: redu recreates and retries the stack until Immich actually runs, and get_deployment returns the build log if you want to see what happened. Day two, your agent can SSH into the VM (via get_ssh_command and a keypair) to update Immich, adjust configuration, or fix it in place, and commit any fixes back to your repo with a GitHub token. It is a real EU-hosted machine, billed by the hour, so you can operate it like any server you own.
What’s next
Stuck? support@redu.cloud