Files
photos/README.md
T
pastilhasandClaude Opus 5 70fc2b08c6 a shared link is a URL, not a key
Create, edit and revoke shared links from the album header, the selection
bar and the Sharing panel. Password, expiry, and the three flags that
decide what the person opening it can do.

The panel showed a bare key because this plugin never learned the
instance's public address. It does not need to store one: Immich has
`externalDomain` in its own admin settings, `/server/config` already
returns it, and it is the same field Immich's own copy-link button reads,
so the two cannot disagree. Empty is a real state and the UI says so
rather than inventing a host.

Payload shapes came from the live instance's spec.json, not from memory.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-02 18:16:02 +01:00

54 lines
2.7 KiB
Markdown

# Photos
Your Immich library, reached through Officer.
Photos does not store photographs and does not install Immich. You point it at an instance you already
run; it forwards to it and holds the API key server-side, so no device ever carries one. Your library,
your originals and every thumbnail stay exactly where they are.
## What you get
- **The whole library** — timeline, albums, people, places, sharing and search, as panels inside Officer.
- **A map** of everything with coordinates, clustered.
- **Upload from the phone**, through Officer rather than to Immich directly.
- **More than one instance.** Accounts are a per-user registry with a label, a URL and a key; one is
active and you switch between them in the app.
## Sharing
Make a public link to an album, or to any selection of photos — from the album header, the selection bar,
or the Sharing panel. A link can carry a password and an expiry, and you choose whether the people who open
it may download originals, add photos of their own, or see where and when each shot was taken. Revoking one
closes it for everybody holding it.
The link opens on **your Immich**, not on Officer — that is the only way somebody with no Officer account
can see it. So Officer needs to know your instance's public address, and it deliberately stores no copy of
one: it reads **External Domain** from Immich's own admin settings, the same field Immich's own copy-link
button uses, so the two can never disagree. Leave that field empty and the panel shows share keys instead of
URLs, and says so.
## What you need
**An Immich you already run**, and an API key from it (Immich → Account Settings → API Keys).
Create the key with **all permissions**. A scoped key returns 403 per route, which does not read as a
permissions problem — it reads as a broken feature, one screen at a time.
Nothing else. No system packages, no host binaries.
## Setup
1. Install the plugin.
2. Open **/photos → Connection** and add an instance: a label, its URL, and the API key.
3. It probes the server, records its version, and marks the account active.
## What it deliberately does not do yet
- **It is a client, not a backup.** Nothing is copied to Officer. If your Immich goes away, so does the
library — this plugin never held it.
- **The key is write-only across the boundary.** The account list reports label, URL and which is active,
and has no field that could carry a key, masked or otherwise. The only way to change one is to replace
it. That is deliberate, and it means the app cannot show you a key you have forgotten.
- **Editing lives in Immich.** This browses, searches, uploads and organises into albums; it is not a
photo editor and will not become one.