immich/docs/docs/install/environment-variables.md
2023-06-19 16:42:59 -05:00

9.2 KiB

Environment Variables

Docker Compose

Variable Description Default Services
IMMICH_VERSION Image tags release server, microservices, machine learning, web, proxy, typesense
UPLOAD_LOCATION Host Path for uploads server, microservices

:::tip

These environment variables are used by the docker-compose.yml file and do NOT affect the containers directly.

:::

General

Variable Description Default Services
TZ Timezone microservices
NODE_ENV Environment (production, development) production server, microservices, machine learning, web
LOG_LEVEL Log Level (verbose, debug, log, warn, error) log server, microservices
IMMICH_MEDIA_LOCATION Media Location ./upload server, microservices
PUBLIC_LOGIN_PAGE_MESSAGE Public Login Page Message web

:::tip

TZ is only used by the exiftool as a fallback in case the timezone cannot be determined from the image metadata.

exiftool is only present in the microservices container.

:::

Geocoding

Variable Description Default Services
DISABLE_REVERSE_GEOCODING Disable Reverse Geocoding Precision false microservices
REVERSE_GEOCODING_PRECISION Reverse Geocoding Precision 3 microservices
REVERSE_GEOCODING_DUMP_DIRECTORY Reverse Geocoding Dump Directory ./.reverse-geocoding-dump/ microservices

Ports

Variable Description Default Services
PORT Web Port 3000 web
SERVER_PORT Server Port 3001 server
MICROSERVICES_PORT Microservices Port 3002 microservices
MACHINE_LEARNING_PORT Machine Learning Port 3003 machine learning

URLs

Variable Description Default Services
IMMICH_WEB_URL Immich Web URL http://immich-web:3000 proxy
IMMICH_SERVER_URL Immich Server URL http://immich-server:3001 web, proxy
IMMICH_MACHINE_LEARNING_URL Immich Machine Learning URL, set "false" to disable ML http://immich-machine-learning:3003 server, microservices
PUBLIC_IMMICH_SERVER_URL Public Immich URL http://immich-server:3001 web
IMMICH_API_URL_EXTERNAL Immich API URL External /api web

:::info

The above paths are modifying the internal paths of the containers.

:::

Database

Variable Description Default Services
DB_URL Database URL server, microservices
DB_HOSTNAME Database Host localhost server, microservices
DB_PORT Database Port 5432 server, microservices
DB_USERNAME Database User postgres server, microservices
DB_PASSWORD Database Password postgres server, microservices
DB_DATABASE Database Name immich server, microservices

:::info

When DB_URL is defined, the other database (DB_*) variables are ignored.

:::

Redis

Variable Description Default Services
REDIS_URL Redis URL server, microservices
REDIS_HOSTNAME Redis Host immich_redis server, microservices
REDIS_PORT Redis Port 6379 server, microservices
REDIS_DBINDEX Redis DB Index 0 server, microservices
REDIS_USERNAME Redis Username server, microservices
REDIS_PASSWORD Redis Password server, microservices
REDIS_SOCKET Redis Socket server, microservices

:::info

REDIS_URL must start with ioredis:// and then include a base64 encoded JSON string for the configuration. More info can be found in the upstream ioredis documentation.

  • When REDIS_URL is defined, the other redis (REDIS_*) variables are ignored.
  • When REDIS_SOCKET is defined, the other redis (REDIS_*) variables are ignored.

:::

Redis (Sentinel) URL example JSON before encoding:

{
  "sentinels": [
    {
      "host": "redis-sentinel-node-0",
      "port": 26379
    },
    {
      "host": "redis-sentinel-node-1",
      "port": 26379
    },
    {
      "host": "redis-sentinel-node-2",
      "port": 26379
    }
  ],
  "name": "redis-sentinel"
}

Typesense

Variable Description Default Services
TYPESENSE_ENABLED Enable Typesense server, microservices
TYPESENSE_URL Typesense URL server, microservices
TYPESENSE_HOST Typesense Host typesense server, microservices
TYPESENSE_PORT Typesense Port 8108 server, microservices
TYPESENSE_PROTOCOL Typesense Protocol http server, microservices
TYPESENSE_API_KEY Typesense API Key server, microservices, typesense
TYPESENSE_DATA_DIR Typesense Data Directory /data typesense

:::info

TYPESENSE_URL must start with ha:// and then include a base64 encoded JSON string for the configuration.

TYPESENSE_ENABLED: Anything other than false, behaves as true. Even undefined is treated as true.

  • When TYPESENSE_URL is defined, the other typesense (TYPESENSE_*) variables are ignored.

:::

Typesense URL example JSON before encoding:

[
  {
    "host": "typesense-1.example.net",
    "port": "443",
    "protocol": "https"
  },
  {
    "host": "typesense-2.example.net",
    "port": "443",
    "protocol": "https"
  },
  {
    "host": "typesense-3.example.net",
    "port": "443",
    "protocol": "https"
  }
]

Machine Learning

Variable Description Default Services
MACHINE_LEARNING_MIN_FACE_SCORE Minimum Face Score 0.7 machine learning
MACHINE_LEARNING_MODEL_TTL Model TTL 300 machine learning
MACHINE_LEARNING_EAGER_STARTUP Eager Startup true machine learning
MACHINE_LEARNING_MIN_TAG_SCORE Minimum Tag Score 0.9 machine learning
MACHINE_LEARNING_FACIAL_RECOGNITION_MODEL Facial Recognition Model buffalo_l machine learning
MACHINE_LEARNING_CLIP_TEXT_MODEL Clip Text Model clip-ViT-B-32 machine learning
MACHINE_LEARNING_CLIP_IMAGE_MODEL Clip Image Model clip-ViT-B-32 machine learning
MACHINE_LEARNING_CLASSIFICATION_MODEL Classification Model microsoft/resnet-50 machine learning
MACHINE_LEARNING_CACHE_FOLDER ML Cache Location /cache machine learning
TRANSFORMERS_CACHE ML Transformers Cache Location /cache machine learning