# immich-server.container
[Unit]
Requires=redis.service database.service

[Container]
ContainerName=immich_server
EnvironmentFile=.env
Exec=start.sh immich
Image=ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
PublishPort=2283:3001
Volume=${UPLOAD_LOCATION}:/usr/src/app/upload
Volume=/etc/localtime:/etc/localtime:ro

[Service]
Restart=always

---

# immich-microservices.container
[Unit]
Requires=redis.service database.service

[Container]
ContainerName=immich_microservices
EnvironmentFile=.env
Exec=start.sh microservices
Image=ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
Volume=${UPLOAD_LOCATION}:/usr/src/app/upload
Volume=/etc/localtime:/etc/localtime:ro

[Service]
Restart=always

---

# immich-machine-learning.container
[Container]
ContainerName=immich_machine_learning
EnvironmentFile=.env
Image=ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
Volume=model-cache:/cache

[Service]
Restart=always

---

# redis.container
[Container]
ContainerName=immich_redis
Image=redis:6.2-alpine@sha256:51d6c56749a4243096327e3fb964a48ed92254357108449cb6e23999c37773c5

[Service]
Restart=always

---

# database.container
[Container]
ContainerName=immich_postgres
Environment=POSTGRES_PASSWORD=${DB_PASSWORD} POSTGRES_USER=${DB_USERNAME} POSTGRES_DB=${DB_DATABASE_NAME}
Image=tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
Volume=pgdata:/var/lib/postgresql/data

[Service]
Restart=always
