**YML**: # --------------------------------------------------- # Immich # --------------------------------------------------- immich-db: image: tensorchord/pgvecto-rs:pg15-v0.2.0 container_name: immich-db restart: unless-stopped environment: POSTGRES_USER: immich POSTGRES_PASSWORD: ${IMMICH_DB_PASSWORD} POSTGRES_DB: immich volumes: - ./immich/postgres:/var/lib/postgresql/data networks: - docker_web healthcheck: test: ["CMD-SHELL", "pg_isready -U immich"] interval: 5s timeout: 5s retries: 5 immich-redis: image: redis:7-alpine container_name: immich-redis restart: unless-stopped volumes: - ./immich/redis:/data networks: - docker_web immich-server: image: ghcr.io/immich-app/immich-server:release container_name: immich-server restart: unless-stopped environment: DB_HOSTNAME: immich-db DB_USERNAME: immich DB_PASSWORD: ${IMMICH_DB_PASSWORD} DB_DATABASE_NAME: immich REDIS_HOSTNAME: immich-redis IMMICH_LOG_LEVEL: log IMMICH_HOST: 0.0.0.0 volumes: - ./immich/upload:/usr/src/app/upload depends_on: immich-db: condition: service_healthy immich-redis: condition: service_started networks: - docker_web immich-microservices: image: ghcr.io/immich-app/immich-server:release container_name: immich-micro restart: unless-stopped command: ['start.sh', 'microservices'] environment: DB_HOSTNAME: immich-db DB_USERNAME: immich DB_PASSWORD: ${IMMICH_DB_PASSWORD} DB_DATABASE_NAME: immich REDIS_HOSTNAME: immich-redis volumes: - ./immich/upload:/usr/src/app/upload depends_on: - immich-db - immich-redis ports: - "3002:3001" networks: - docker_web immich-web: image: ghcr.io/immich-app/immich-web:release container_name: immich-web restart: unless-stopped ports: - "3000:80" environment: IMMICH_SERVER_URL: "http://immich-server:2283" IMMICH_API_URL_EXTERNAL: "https://XXXXX.duckdns.org/api" networks: - docker_web immich-machine-learning: image: ghcr.io/immich-app/immich-machine-learning:release container_name: immich-ml restart: unless-stopped environment: DB_HOSTNAME: immich-db DB_USERNAME: immich DB_PASSWORD: ${IMMICH_DB_PASSWORD} DB_DATABASE_NAME: immich REDIS_HOSTNAME: immich-redis volumes: - ./immich/upload:/usr/src/app/upload - ./immich/cache:/cache depends_on: - immich-db - immich-redis ports: - "3003:3003" networks: - docker_web # --------------------------------------------------- # NGINX + Certbot # --------------------------------------------------- nginx: image: nginx:latest container_name: nginx restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./nginx/conf:/etc/nginx/conf.d - ./nginx/certbot/www:/var/www/certbot - ./nginx/certbot/conf:/etc/letsencrypt depends_on: - immich-web - immich-server networks: - docker_web certbot: image: certbot/certbot:latest container_name: certbot restart: unless-stopped volumes: - ./nginx/certbot/www:/var/www/certbot - ./nginx/certbot/conf:/etc/letsencrypt entrypoint: /bin/sh -c "trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done" networks: - docker_web # --------------------------------------------------- # Networks # --------------------------------------------------- networks: docker_web: external: true