From 7a7475ed672586f6739bf90922e150f38ebc763a Mon Sep 17 00:00:00 2001 From: aviv926 <51673860+aviv926@users.noreply.github.com> Date: Fri, 8 Mar 2024 01:49:30 +0200 Subject: [PATCH] docs: Update External Libraries Guide (#7723) --- docs/docs/guides/external-library.md | 20 ++++++++++++++++++-- docs/docs/guides/img/external-libraries.png | Bin 5797 -> 11546 bytes 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/docs/guides/external-library.md b/docs/docs/guides/external-library.md index f1f95f942f..b1d4b67b2e 100644 --- a/docs/docs/guides/external-library.md +++ b/docs/docs/guides/external-library.md @@ -11,11 +11,27 @@ Edit `docker-compose.yml` to add two new mount points under `volumes:` ``` immich-server: volumes: - - /path/to/photos/on/host:/usr/src/app/external + - ${EXTERNAL_PATH}:/usr/src/app/external ``` Be sure to add exactly the same line to both `immich-server:` and `immich-microservices:`. +Edit `.env` to define `EXTERNAL_PATH`, substituting in the correct path for your computer: + +``` +EXTERNAL_PATH= +``` + +On my computer, for example, I use this path: + +``` +EXTERNAL_PATH=/home/tenino/photos +``` + +:::info EXTERNAL_PATH design +The design choice to put the EXTERNAL_PATH into .env rather than put two copies of the absolute path in the yml file in order to make everything easier, so if you have two copies of the same path that have to be kept in sync, then someday later when you move the data, update only one of the paths, without everything will break mysteriously. +::: + Restart Immich. ``` @@ -42,7 +58,7 @@ In the Immich web UI: - Click the three-dots menu and select **Edit Import Paths** -- Click \*_Add path_ +- Click Add path - Enter **/usr/src/app/external** as the path and click Add diff --git a/docs/docs/guides/img/external-libraries.png b/docs/docs/guides/img/external-libraries.png index 3b8660a19cb257c1e81b3488b3fd58c60d665437..0d0f5d237242fe4ec637687bc4b675c0cd40e0b1 100644 GIT binary patch literal 11546 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