version: "3.8" services: ## ## Proxy ## proxy: container_name: proxy restart: always image: jwilder/nginx-proxy:latest ports: - "80:80" - "443:443" - "1935:1935" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - ./proxy/certs:/etc/nginx/certs:ro - ./proxy/vhost.d:/etc/nginx/vhost.d - ./proxy/html:/usr/share/nginx/html - ./proxy/nginx.tmpl:/app/nginx.tmpl # if you need a custom (global) nginx template labels: - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy" ## ## Letsencrypt ## proxy-le-companion: container_name: proxy-letsencrypt restart: always # image: jrcs/letsencrypt-nginx-proxy-companion:latest image: nginxproxy/acme-companion volumes: - ./proxy/vhost.d:/etc/nginx/vhost.d - ./proxy/html:/usr/share/nginx/html - ./proxy/nginx.tmpl:/app/nginx.tmpl # if you need a custom (global) nginx template - ./proxy/certs:/etc/nginx/certs:rw - /var/run/docker.sock:/var/run/docker.sock:ro - ./proxy/acme:/etc/acme.sh # volumes_from: # - proxy ### ### Immich Server ### immich-server: container_name: immich-server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} command: [ "./start.sh" , "immich" ] restart: always env_file: - .env volumes: - "${UPLOAD_LOCATION}:/usr/src/app/upload" environment: - NODE_ENV=production depends_on: - immich-redis - immich-db - immich-typesense immich-microservices: container_name: immich-microservices image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} command: [ "start.sh", "microservices" ] restart: always volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: - .env environment: - NODE_ENV=production depends_on: - immich-redis - immich-db - immich-typesense immich-typesense: container_name: immich-typesense #image: typesense/typesense:0.24.0@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd image: typesense/typesense:0.24.1 environment: - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} - TYPESENSE_DATA_DIR=/data #logging: # driver: none volumes: - ./immich/ts_data:/data immich-ml: container_name: immich-ml image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} restart: always volumes: #- ${UPLOAD_LOCATION}:/usr/src/app/upload - ./immich/ml_data:/cache env_file: - .env environment: - NODE_ENV=production immich-web: container_name: immich-web image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release} restart: always env_file: - .env immich-redis: container_name: immich-redis image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3 restart: always immich-db: container_name: immich-db image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441 restart: always env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} PG_DATA: /var/lib/postgresql/data volumes: - ./immich/db:/var/lib/postgresql/data immich-proxy: container_name: immich-proxy image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release} #image: altran1502/immich-proxy:release restart: always environment: # Make sure these values get passed through from the env file IMMICH_SERVER_URL: IMMICH_WEB_URL: VIRTUAL_HOST: mydomain VIRTUAL_PORT: 2283 LETSENCRYPT_HOST: mydomain LETSENCRYPT_EMAIL: myemail ports: - "127.0.0.1:2283:8080" logging: driver: none depends_on: - immich-server - immich-web