@@ -42,17 +42,17 @@ You **MUST** include `app.immich:/` as the redirect URI for iOS and Android mobi
## Enable OAuth
-Once you have a new OAuth client application configured, Immich can be configured using the following environment variables:
+Once you have a new OAuth client application configured, Immich can be configured using the Administration Settings page, available on the web (Administration -> Settings).
-| Key | Type | Default | Description |
+| Setting | Type | Default | Description |
| ------------------- | ------- | -------------------- | ------------------------------------------------------------------------- |
-| OAUTH_ENABLED | boolean | false | Enable/disable OAuth2 |
-| OAUTH_ISSUER_URL | URL | (required) | Required. Self-discovery URL for client (from previous step) |
-| OAUTH_CLIENT_ID | string | (required) | Required. Client ID (from previous step) |
-| OAUTH_CLIENT_SECRET | string | (required) | Required. Client Secret (previous step) |
-| OAUTH_SCOPE | string | openid email profile | Full list of scopes to send with the request (space delimited) |
-| OAUTH_AUTO_REGISTER | boolean | true | When true, will automatically register a user the first time they sign in |
-| OAUTH_BUTTON_TEXT | string | Login with OAuth | Text for the OAuth button on the web |
+| OAuth enabled | boolean | false | Enable/disable OAuth2 |
+| OAuth issuer URL | URL | (required) | Required. Self-discovery URL for client (from previous step) |
+| OAuth client ID | string | (required) | Required. Client ID (from previous step) |
+| OAuth client secret | string | (required) | Required. Client Secret (previous step) |
+| OAuth scope | string | openid email profile | Full list of scopes to send with the request (space delimited) |
+| OAuth button text | string | Login with OAuth | Text for the OAuth button on the web |
+| OAuth auto register | boolean | true | When true, will automatically register a user the first time they sign in |
:::info
The Issuer URL should look something like the following, and return a valid json document.
@@ -63,14 +63,4 @@ The Issuer URL should look something like the following, and return a valid json
The `.well-known/openid-configuration` part of the url is optional and will be automatically added during discovery.
:::
-Here is an example of a valid configuration for setting up Immich to use OAuth with Authentik:
-
-```
-OAUTH_ENABLED=true
-OAUTH_ISSUER_URL=http://192.168.0.187:9000/application/o/immich
-OAUTH_CLIENT_ID=f08f9c5b4f77dcfd3916b1c032336b5544a7b368
-OAUTH_CLIENT_SECRET=6fe2e697644da6ff6aef73387a457d819018189086fa54b151a6067fbb884e75f7e5c90be16d3c688cf902c6974817a85eab93007d76675041eaead8c39cf5a2
-OAUTH_BUTTON_TEXT=Login with Authentik
-```
-
[oidc]: https://openid.net/connect/
diff --git a/mobile/openapi/.openapi-generator/FILES b/mobile/openapi/.openapi-generator/FILES
index 15fce354..608df54b 100644
--- a/mobile/openapi/.openapi-generator/FILES
+++ b/mobile/openapi/.openapi-generator/FILES
@@ -61,9 +61,9 @@ doc/ServerVersionReponseDto.md
doc/SignUpDto.md
doc/SmartInfoResponseDto.md
doc/SystemConfigApi.md
-doc/SystemConfigKey.md
-doc/SystemConfigResponseDto.md
-doc/SystemConfigResponseItem.md
+doc/SystemConfigDto.md
+doc/SystemConfigFFmpegDto.md
+doc/SystemConfigOAuthDto.md
doc/TagApi.md
doc/TagResponseDto.md
doc/TagTypeEnum.md
@@ -149,9 +149,9 @@ lib/model/server_stats_response_dto.dart
lib/model/server_version_reponse_dto.dart
lib/model/sign_up_dto.dart
lib/model/smart_info_response_dto.dart
-lib/model/system_config_key.dart
-lib/model/system_config_response_dto.dart
-lib/model/system_config_response_item.dart
+lib/model/system_config_dto.dart
+lib/model/system_config_f_fmpeg_dto.dart
+lib/model/system_config_o_auth_dto.dart
lib/model/tag_response_dto.dart
lib/model/tag_type_enum.dart
lib/model/thumbnail_format.dart
@@ -224,9 +224,9 @@ test/server_version_reponse_dto_test.dart
test/sign_up_dto_test.dart
test/smart_info_response_dto_test.dart
test/system_config_api_test.dart
-test/system_config_key_test.dart
-test/system_config_response_dto_test.dart
-test/system_config_response_item_test.dart
+test/system_config_dto_test.dart
+test/system_config_f_fmpeg_dto_test.dart
+test/system_config_o_auth_dto_test.dart
test/tag_api_test.dart
test/tag_response_dto_test.dart
test/tag_type_enum_test.dart
diff --git a/mobile/openapi/README.md b/mobile/openapi/README.md
index a0482b3e..76b13b23 100644
--- a/mobile/openapi/README.md
+++ b/mobile/openapi/README.md
@@ -112,6 +112,7 @@ Class | Method | HTTP request | Description
*ServerInfoApi* | [**getStats**](doc//ServerInfoApi.md#getstats) | **GET** /server-info/stats |
*ServerInfoApi* | [**pingServer**](doc//ServerInfoApi.md#pingserver) | **GET** /server-info/ping |
*SystemConfigApi* | [**getConfig**](doc//SystemConfigApi.md#getconfig) | **GET** /system-config |
+*SystemConfigApi* | [**getDefaults**](doc//SystemConfigApi.md#getdefaults) | **GET** /system-config/defaults |
*SystemConfigApi* | [**updateConfig**](doc//SystemConfigApi.md#updateconfig) | **PUT** /system-config |
*TagApi* | [**create**](doc//TagApi.md#create) | **POST** /tag |
*TagApi* | [**delete**](doc//TagApi.md#delete) | **DELETE** /tag/{id} |
@@ -182,9 +183,9 @@ Class | Method | HTTP request | Description
- [ServerVersionReponseDto](doc//ServerVersionReponseDto.md)
- [SignUpDto](doc//SignUpDto.md)
- [SmartInfoResponseDto](doc//SmartInfoResponseDto.md)
- - [SystemConfigKey](doc//SystemConfigKey.md)
- - [SystemConfigResponseDto](doc//SystemConfigResponseDto.md)
- - [SystemConfigResponseItem](doc//SystemConfigResponseItem.md)
+ - [SystemConfigDto](doc//SystemConfigDto.md)
+ - [SystemConfigFFmpegDto](doc//SystemConfigFFmpegDto.md)
+ - [SystemConfigOAuthDto](doc//SystemConfigOAuthDto.md)
- [TagResponseDto](doc//TagResponseDto.md)
- [TagTypeEnum](doc//TagTypeEnum.md)
- [ThumbnailFormat](doc//ThumbnailFormat.md)
diff --git a/mobile/openapi/doc/SystemConfigApi.md b/mobile/openapi/doc/SystemConfigApi.md
index 9e40b4e8..365ac3f7 100644
--- a/mobile/openapi/doc/SystemConfigApi.md
+++ b/mobile/openapi/doc/SystemConfigApi.md
@@ -10,11 +10,12 @@ All URIs are relative to */api*
Method | HTTP request | Description
------------- | ------------- | -------------
[**getConfig**](SystemConfigApi.md#getconfig) | **GET** /system-config |
+[**getDefaults**](SystemConfigApi.md#getdefaults) | **GET** /system-config/defaults |
[**updateConfig**](SystemConfigApi.md#updateconfig) | **PUT** /system-config |
# **getConfig**
-> SystemConfigResponseDto getConfig()
+> SystemConfigDto getConfig()
@@ -43,7 +44,7 @@ This endpoint does not need any parameter.
### Return type
-[**SystemConfigResponseDto**](SystemConfigResponseDto.md)
+[**SystemConfigDto**](SystemConfigDto.md)
### Authorization
@@ -56,8 +57,8 @@ This endpoint does not need any parameter.
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **updateConfig**
-> SystemConfigResponseDto updateConfig(body)
+# **getDefaults**
+> SystemConfigDto getDefaults()
@@ -72,10 +73,53 @@ import 'package:openapi/api.dart';
//defaultApiClient.getAuthentication{subtitle}
+{subtitle}
+| Setting | -Value | -
|---|---|
| - {item.name} - | -- - | -
| First name | -Last name | -Action | -|
|---|---|---|---|
| {user.email} | -{user.firstName} | -{user.lastName} | -- {#if !isDeleted(user)} - - - {/if} - {#if isDeleted(user)} - - {/if} - | -