Skip to main content

Environment Variables

Every config field can be set via environment variable. The pattern is:

IMMICH_MEMORIES_<SECTION>__<FIELD>

Note the double underscore between section and field. All uppercase.

Examples

Immich connection

export IMMICH_MEMORIES_IMMICH__URL="https://photos.example.com"
export IMMICH_MEMORIES_IMMICH__API_KEY="your-api-key-here"

Analysis settings

export IMMICH_MEMORIES_ANALYSIS__SCENE_THRESHOLD="30.0"
export IMMICH_MEMORIES_ANALYSIS__MIN_SCENE_DURATION="1.5"
export IMMICH_MEMORIES_ANALYSIS__ANALYSIS_RESOLUTION="720"

LLM provider

export IMMICH_MEMORIES_LLM__PROVIDER="openai-compatible"
export IMMICH_MEMORIES_LLM__BASE_URL="https://api.openai.com/v1"
export IMMICH_MEMORIES_LLM__MODEL="gpt-4.1-nano"
export IMMICH_MEMORIES_LLM__API_KEY="sk-..."

Hardware

export IMMICH_MEMORIES_HARDWARE__ENABLED="true"
export IMMICH_MEMORIES_HARDWARE__BACKEND="nvidia"
export IMMICH_MEMORIES_HARDWARE__ENCODER_PRESET="quality"

Output

export IMMICH_MEMORIES_OUTPUT__DIRECTORY="/mnt/nas/memories"
export IMMICH_MEMORIES_OUTPUT__RESOLUTION="4k"
export IMMICH_MEMORIES_OUTPUT__CODEC="h265"
export IMMICH_MEMORIES_OUTPUT__CRF="20"

Music generation

export IMMICH_MEMORIES_MUSICGEN__ENABLED="true"
export IMMICH_MEMORIES_MUSICGEN__BASE_URL="http://gpu-server:8000"
export IMMICH_MEMORIES_MUSICGEN__API_KEY="your-key"

export IMMICH_MEMORIES_ACE_STEP__ENABLED="true"
export IMMICH_MEMORIES_ACE_STEP__MODE="api"
export IMMICH_MEMORIES_ACE_STEP__API_URL="http://gpu-server:8000"

Shorthand overrides

A few common variables are also supported without the full prefix, for convenience:

VariableOverrides
IMMICH_URLimmich.url
IMMICH_API_KEYimmich.api_key
OPENAI_API_KEYllm.api_key
MUSICGEN_ENABLEDmusicgen.enabled
MUSICGEN_BASE_URLmusicgen.base_url
MUSICGEN_API_KEYmusicgen.api_key
ACE_STEP_ENABLEDace_step.enabled
ACE_STEP_MODEace_step.mode
ACE_STEP_API_URLace_step.api_url
IMMICH_MEMORIES_AUTH_USERNAMEauth.username (also sets auth.enabled=true, auth.provider=basic)
IMMICH_MEMORIES_AUTH_PASSWORDauth.password (also sets auth.enabled=true, auth.provider=basic)

Precedence

Environment variables override config file values. The full precedence order:

  1. CLI flags (highest priority)
  2. Environment variables (IMMICH_MEMORIES_* prefix)
  3. Shorthand environment variables (IMMICH_URL, etc.)
  4. Config file (~/.immich-memories/config.yaml)
  5. Built-in defaults (lowest priority)