Skip to main content

Workers

A worker is an independent process inside the immich-server container. Which workers a container runs determines what work it takes on, which is what makes it possible to split responsibilities across containers or machines.

Worker types

WorkerResponsibility
apiResponds to API requests for data and files from the web and mobile apps.
microservicesRuns the background jobs — thumbnail generation, video transcoding, machine learning.

By default a container runs both.

A third worker, maintenance, is not selectable. It is started in place of the others while the instance is in maintenance mode.

Selecting workers

VariableEffect
IMMICH_WORKERS_INCLUDEReplaces the default set — only the listed workers run.
IMMICH_WORKERS_EXCLUDESubtracts from the default set, or from IMMICH_WORKERS_INCLUDE when both are specified.

Both accept a comma-separated list. An unrecognized worker name is a startup error: the server refuses to start rather than running a partial set.

To put these into practice, see Split workers across containers. For running several containers at once, see Scaling.