---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "immich_system_config Resource - immich"
subcategory: ""
description: |-
Manages Immich system configuration. This is a singleton resource.
---
# immich_system_config (Resource)
Manages Immich system configuration. This is a singleton resource.
## Example Usage
```terraform
resource "immich_system_config" "example" {
password_login = {
enabled = true
}
oauth = {
enabled = true
issuer_url = "https://keycloak.example.com/realms/immich"
client_id = "immich-client"
client_secret = "your-client-secret"
scope = "openid profile email"
button_text = "Login with Keycloak"
auto_register = true
}
storage_template = {
template = "{{y}}/{{y}}-{{m}}-{{d}}/{{filename}}"
}
machine_learning = {
enabled = true
url = "http://immich-machine-learning:3003"
clip_model = "ViT-L-14__openai"
}
notifications = {
smtp = {
enabled = true
host = "smtp.example.com"
port = 587
username = "user@example.com"
password = "secure-smtp-password"
from = "immich@example.com"
secure = true
}
}
templates = {
email = {
welcome_template = "Welcome to Immich, {{name}}!"
}
}
}
```
## Schema
### Optional
- `machine_learning` (Attributes) (see [below for nested schema](#nestedatt--machine_learning))
- `notifications` (Attributes) (see [below for nested schema](#nestedatt--notifications))
- `oauth` (Attributes) (see [below for nested schema](#nestedatt--oauth))
- `password_login` (Attributes) (see [below for nested schema](#nestedatt--password_login))
- `storage_template` (Attributes) (see [below for nested schema](#nestedatt--storage_template))
- `templates` (Attributes) (see [below for nested schema](#nestedatt--templates))
### Nested Schema for `machine_learning`
Optional:
- `clip_model` (String) CLIP model to use.
- `enabled` (Boolean) Enable machine learning features.
- `facial_recognition_model` (String) Facial recognition model to use.
- `url` (String) URL of the machine learning server.
### Nested Schema for `notifications`
Optional:
- `smtp` (Attributes) (see [below for nested schema](#nestedatt--notifications--smtp))
### Nested Schema for `notifications.smtp`
Optional:
- `enabled` (Boolean) Enable SMTP email notifications.
- `from` (String) Sender email address.
- `host` (String) SMTP server hostname.
- `ignore_cert` (Boolean) Whether to ignore certificate validation errors.
- `password` (String, Sensitive) SMTP authentication password.
- `port` (Number) SMTP server port.
- `reply_to` (String) Reply-to email address.
- `secure` (Boolean) Whether to use TLS/SSL.
- `username` (String) SMTP authentication username.
### Nested Schema for `oauth`
Optional:
- `auto_launch` (Boolean) Auto launch OAuth login.
- `auto_register` (Boolean) Auto register users via OAuth.
- `button_text` (String) OAuth button text.
- `client_id` (String) OAuth client ID.
- `client_secret` (String, Sensitive) OAuth client secret.
- `default_storage_quota` (Number) Default storage quota for new users in bytes.
- `enabled` (Boolean) Enable OAuth login.
- `issuer_url` (String) OAuth issuer URL.
- `mobile_override_url` (String) Mobile override URL.
- `mobile_redirect_uri` (String) Mobile redirect URI.
- `scope` (String) OAuth scope.
- `signing_algorithm` (String) Signing algorithm.
### Nested Schema for `password_login`
Optional:
- `enabled` (Boolean) Enable password login.
### Nested Schema for `storage_template`
Optional:
- `template` (String) Storage template (e.g. `{{y}}/{{y}}-{{m}}-{{d}}/{{filename}}`).
### Nested Schema for `templates`
Optional:
- `email` (Attributes) (see [below for nested schema](#nestedatt--templates--email))
### Nested Schema for `templates.email`
Optional:
- `album_invite_template` (String) Email template for album invitations.
- `album_update_template` (String) Email template for album updates.
- `welcome_template` (String) Email template for welcome emails.