[PR #3836] [MERGED] feat(web, server): Ability to use config file instead of admin UI #10132

Closed
opened 2026-02-05 14:16:29 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/3836
Author: @danieldietzler
Created: 8/22/2023
Status: Merged
Merged: 8/25/2023
Merged by: @jrasm91

Base: mainHead: main


📝 Commits (10+)

  • 8c18f38 implement method to read config file
  • 6229da4 getConfig returns config file if present
  • 6e2e534 return isConfigFile for http requests
  • 483e020 disable elements if config file is used, show message if config file is set, copy existing config to clipboard
  • 796263f fix allowing partial configuration files
  • efbcb2b add new env variable to docs
  • fa922b7 fix tests
  • 1524efe minor refactoring, address review
  • e6e4a12 adapt config type in frontend
  • b4e346b remove unnecessary imports

📊 Changes

33 files changed (+359 additions, -84 deletions)

View changed files

📝 cli/src/api/open-api/api.ts (+6 -0)
docs/docs/install/config-file.md (+91 -0)
📝 docs/docs/install/environment-variables.md (+5 -0)
📝 docs/docs/install/post-install.mdx (+1 -1)
📝 mobile/openapi/doc/ServerFeaturesDto.md (+1 -0)
📝 mobile/openapi/lib/model/server_features_dto.dart (+9 -1)
📝 mobile/openapi/test/server_features_dto_test.dart (+5 -0)
📝 server/immich-openapi-specs.json (+4 -0)
📝 server/src/domain/server-info/server-info.dto.ts (+1 -0)
📝 server/src/domain/server-info/server-info.service.spec.ts (+1 -0)
📝 server/src/domain/system-config/system-config.core.ts (+53 -10)
📝 server/src/domain/system-config/system-config.repository.ts (+1 -0)
📝 server/src/domain/system-config/system-config.service.spec.ts (+45 -0)
📝 server/src/infra/repositories/system-config.repository.ts (+3 -0)
📝 server/test/repositories/system-config.repository.mock.ts (+1 -0)
📝 web/src/api/open-api/api.ts (+6 -0)
📝 web/src/api/utils.ts (+14 -0)
📝 web/src/lib/components/admin-page/settings/ffmpeg/ffmpeg-settings.svelte (+13 -0)
📝 web/src/lib/components/admin-page/settings/job-settings/job-settings.svelte (+3 -0)
📝 web/src/lib/components/admin-page/settings/machine-learning-settings/machine-learning-settings.svelte (+8 -4)

...and 13 more files

📄 Description

This PR closes #3774, providing the ability to use a JSON config file instead of the admin UI.

Currently, the admin UI and the config file are mutually exclusive while the config file always takes precedence. So, if a config file is specified, changes in the admin UI are not possible anymore.
To get people started with this quickly, there is a new copy to clipboard button that allows to copy the entire config as a formatted JSON string.

If also added documentation for the new env variable, but I wasn't sure where to put the documentation for the config file.

Screenshot 2023-08-23 at 11 39 01 Screenshot 2023-08-23 at 11 34 31

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/immich-app/immich/pull/3836 **Author:** [@danieldietzler](https://github.com/danieldietzler) **Created:** 8/22/2023 **Status:** ✅ Merged **Merged:** 8/25/2023 **Merged by:** [@jrasm91](https://github.com/jrasm91) **Base:** `main` ← **Head:** `main` --- ### 📝 Commits (10+) - [`8c18f38`](https://github.com/immich-app/immich/commit/8c18f38213c9ca08aa85fe24a82ceb321c754815) implement method to read config file - [`6229da4`](https://github.com/immich-app/immich/commit/6229da4a02e22f1651df4e6c850e8c5de73ad1da) getConfig returns config file if present - [`6e2e534`](https://github.com/immich-app/immich/commit/6e2e534ab5c90c21452c57c5c63d43b2686673be) return isConfigFile for http requests - [`483e020`](https://github.com/immich-app/immich/commit/483e0205900e34663fec44ad11a87d5415372b5e) disable elements if config file is used, show message if config file is set, copy existing config to clipboard - [`796263f`](https://github.com/immich-app/immich/commit/796263fb07a3ac25f3c8c3f438b70d030d64a536) fix allowing partial configuration files - [`efbcb2b`](https://github.com/immich-app/immich/commit/efbcb2bb03fbbb3bb00121df2e94a5c53a15fef3) add new env variable to docs - [`fa922b7`](https://github.com/immich-app/immich/commit/fa922b7fc4e6262f50287ca798dd914c4fca64a0) fix tests - [`1524efe`](https://github.com/immich-app/immich/commit/1524efe2e2679066c8f7e1359fc99c18f58cadb3) minor refactoring, address review - [`e6e4a12`](https://github.com/immich-app/immich/commit/e6e4a12dd63ac4cc214821a2add2e916d1e8257b) adapt config type in frontend - [`b4e346b`](https://github.com/immich-app/immich/commit/b4e346b777b8fd1672d53050ef4903c7860543cb) remove unnecessary imports ### 📊 Changes **33 files changed** (+359 additions, -84 deletions) <details> <summary>View changed files</summary> 📝 `cli/src/api/open-api/api.ts` (+6 -0) ➕ `docs/docs/install/config-file.md` (+91 -0) 📝 `docs/docs/install/environment-variables.md` (+5 -0) 📝 `docs/docs/install/post-install.mdx` (+1 -1) 📝 `mobile/openapi/doc/ServerFeaturesDto.md` (+1 -0) 📝 `mobile/openapi/lib/model/server_features_dto.dart` (+9 -1) 📝 `mobile/openapi/test/server_features_dto_test.dart` (+5 -0) 📝 `server/immich-openapi-specs.json` (+4 -0) 📝 `server/src/domain/server-info/server-info.dto.ts` (+1 -0) 📝 `server/src/domain/server-info/server-info.service.spec.ts` (+1 -0) 📝 `server/src/domain/system-config/system-config.core.ts` (+53 -10) 📝 `server/src/domain/system-config/system-config.repository.ts` (+1 -0) 📝 `server/src/domain/system-config/system-config.service.spec.ts` (+45 -0) 📝 `server/src/infra/repositories/system-config.repository.ts` (+3 -0) 📝 `server/test/repositories/system-config.repository.mock.ts` (+1 -0) 📝 `web/src/api/open-api/api.ts` (+6 -0) 📝 `web/src/api/utils.ts` (+14 -0) 📝 `web/src/lib/components/admin-page/settings/ffmpeg/ffmpeg-settings.svelte` (+13 -0) 📝 `web/src/lib/components/admin-page/settings/job-settings/job-settings.svelte` (+3 -0) 📝 `web/src/lib/components/admin-page/settings/machine-learning-settings/machine-learning-settings.svelte` (+8 -4) _...and 13 more files_ </details> ### 📄 Description This PR closes #3774, providing the ability to use a JSON config file instead of the admin UI. Currently, the admin UI and the config file are mutually exclusive while the config file always takes precedence. So, if a config file is specified, changes in the admin UI are not possible anymore. To get people started with this quickly, there is a new copy to clipboard button that allows to copy the entire config as a formatted JSON string. If also added documentation for the new env variable, but I wasn't sure where to put the documentation for the config file. <img width="975" alt="Screenshot 2023-08-23 at 11 39 01" src="https://github.com/immich-app/immich/assets/36593685/f1c49db0-4e7c-4447-8ab4-e27c88fba804"> <img width="1019" alt="Screenshot 2023-08-23 at 11 34 31" src="https://github.com/immich-app/immich/assets/36593685/a7604323-03b1-4410-911b-a8b3126a8f89"> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-05 14:16:29 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#10132