job "immich" { group "immich" { network { mode = "bridge" port "http" { to = 2283 } } service { connect { sidecar_service { proxy { # TODO https://docs.immich.app/administration/postgres-standalone#prerequisites upstreams { destination_name = "postgres" local_bind_port = 5432 } } } } } task "immich-server" { driver = "docker" config { image = "ghcr.io/immich-app/immich-server:release" ports = ["http"] } service { name = "immich" port = "http" tags = [ "traefik.enable=true", "traefik.http.routers.immich.middlewares=auth@file", "traefik.http.routers.immich-token.rule=Host(`c3ll7nbevl5j4j8rcnfxnr95q48fuayz-immich.othrayte.one`)", ] # Use the Immich server ping endpoint # See: https://api.immich.app/endpoints/server/pingServer check { name = "alive" type = "http" path = "/api/server/ping" method = "GET" port = "http" interval = "10s" timeout = "2s" } } env { IMMICH_LOG_LEVEL = "log" TZ = "Australia/Melbourne" REDIS_HOSTNAME = "localhost" DB_HOSTNAME = "localhost" IMMICH_IGNORE_MOUNT_CHECK_ERRORS = "true" # Let immich start whilst we figure out what's wrong with the mount permissions } volume_mount { volume = "unraid_appdata_immich" destination = "/data" read_only = false } volume_mount { volume = "unraid_media_photosvideos" destination = "/data/library" read_only = false } volume_mount { volume = "unraid_media_immich_encodedvideo" destination = "/data/encoded-video" read_only = false } volume_mount { volume = "unraid_mediadump_photosvideos" destination = "/data/upload" read_only = false } resources { cpu = 200 memory = 512 memory_max = 1500 } template { data = <