DEPLOYMENT ENGINE // PRODUCTION DOCKER COMPOSE GENERATOR

1-Click Docker Compose Generator

Tweak your ports, database passwords, and persistence volumes live. Generate a production-grade docker-compose.yml ready to spin up with one terminal command.

1-Click Docker Compose Generator

Generate production-ready container definitions with customizable ports and volumes.

ImmichAGPL-3.0

High performance self-hosted photo and video backup solution with on-device machine learning

Difficulty: Medium116,112 ⭐
Configure Parameters
docker-compose.immich.yml
version: '3.8'

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:release
    command: [ "start.sh" ]
    volumes:
      - ${UPLOAD_LOCATION:-./library}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    environment:
      - NODE_ENV=production
      - DB_HOSTNAME=immich-database
      - DB_USERNAME=${DB_USERNAME:-postgres}
      - DB_PASSWORD=${DB_PASSWORD:-postgres_password}
      - DB_DATABASE_NAME=${DB_DATABASE_NAME:-immich}
      - REDIS_HOSTNAME=immich-redis
    ports:
      - "${SERVER_PORT:-2283}:2283"
    depends_on:
      - immich-redis
      - immich-database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:release
    volumes:
      - model-cache:/cache
    restart: always

  immich-redis:
    container_name: immich_redis
    image: redis:6.2-alpine
    restart: always

  immich-database:
    container_name: immich_database
    image: tensorchord/pgvecto-rs:pg14-v0.2.1
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD:-postgres_password}
      POSTGRES_USER: ${DB_USERNAME:-postgres}
      POSTGRES_DB: ${DB_DATABASE_NAME:-immich}
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

volumes:
  model-cache:
  pgdata:
1Save the Configuration

Download or copy the generated YAML into a folder on your server as docker-compose.yml.

2Run with Docker

Execute docker compose up -d. Docker pulls the official images and sets up persistent storage volumes.

3Access Your App

Visit your server's IP address on the designated port. You now own your software stack with zero monthly recurring charges.

Docker Compose Self-Hosting & Reverse Proxy FAQ

Are the generated docker-compose.yml configurations safe for production?

Yes. Every template uses official upstream container registries, explicit restart policies (restart: unless-stopped), isolated named or bind-mounted volumes for stateful database storage, and customizable secret environment variables.

How do I put HTTPS / SSL in front of these Docker Compose containers?

Bind your container port to localhost (e.g., 127.0.0.1:8080:8080) and route traffic through Caddy, Nginx Proxy Manager, or Traefik with automatic Let's Encrypt TLS certificates.

How do I back up persistent volumes created by Docker Compose?

Stop or snapshot the database service using pg_dump / mysqldump for relational data, and archive the mapped ./data directory using restic or borgbackup to an S3-compatible bucket.