View difference between Paste ID: mZVJyBB3 and SyQZSMEK
SHOW: | | - or go back to the newest paste.
1
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
2
3
#PMOW NOTES
4
#network must be attached for proxy, see bash file
5
6
7
8
name: immich
9
10
services:
11
  immich-server:
12
    container_name: immich_server
13
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
14
    # extends:
15
    #   file: hwaccel.transcoding.yml
16
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
17
    volumes:
18
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
19
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
20
      - /etc/localtime:/etc/localtime:ro
21
    env_file:
22
      - stack.env
23
    environment:
24
      - VIRTUAL_HOST=immich.pmow.org
25
      - LETSENCRYPT_HOST=immich.pmow.org
26
      - LETSENCRYPT_EMAIL=letsencrypt@pmow.org
27
      - VIRTUAL_PROTO=http
28
29
    #enable for large file batch uploads circumventing any proxy shenanigans
30
    ports:
31
    - '2283:2283'
32
    depends_on:
33
      - redis
34
      - database
35
    restart: always
36
    healthcheck:
37
      disable: false
38
39
  immich-machine-learning:
40
    container_name: immich_machine_learning
41
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
42
    # Example tag: ${IMMICH_VERSION:-release}-cuda
43
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
44
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
45
    #   file: hwaccel.ml.yml
46
    #   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
47
    volumes:
48
      - model-cache:/cache
49
    env_file:
50
      - stack.env
51
    restart: always
52
    healthcheck:
53
      disable: false
54
55
  redis:
56
    container_name: immich_redis
57
    image: docker.io/redis:6.2-alpine@sha256:2ba50e1ac3a0ea17b736ce9db2b0a9f6f8b85d4c27d5f5accc6a416d8f42c6d5
58
    healthcheck:
59
      test: redis-cli ping || exit 1
60
    restart: always
61
62
  database:
63
    container_name: immich_postgres
64
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
65
    environment:
66
      POSTGRES_PASSWORD: ${DB_PASSWORD}
67
      POSTGRES_USER: ${DB_USERNAME}
68
      POSTGRES_DB: ${DB_DATABASE_NAME}
69
      POSTGRES_INITDB_ARGS: '--data-checksums'
70
    volumes:
71
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
72
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
73
    healthcheck:
74
      test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
75
      interval: 5m
76
      start_interval: 30s
77
      start_period: 5m
78
    command:
79
      [
80
        'postgres',
81
        '-c',
82
        'shared_preload_libraries=vectors.so',
83
        '-c',
84
        'search_path="$$user", public, vectors',
85
        '-c',
86
        'logging_collector=on',
87
        '-c',
88
        'max_wal_size=2GB',
89
        '-c',
90
        'shared_buffers=512MB',
91
        '-c',
92
        'wal_compression=on',
93
      ]
94
    restart: always
95
96
volumes:
97
  model-cache: