Initial resurrection kit — 81 scripts, 62 references, configs, systemd units, crons, Docker compose files, Caddy config, master README
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Immich MCP Server — ITPP Reference
|
||||
|
||||
## Built: 2026-07-15
|
||||
|
||||
## Location
|
||||
- Server: `/root/docker/immich-mcp/server.py`
|
||||
- Service: `/tmp/immich-mcp.service` (pending install)
|
||||
- Port: 8904
|
||||
- Venv: `/opt/ops-portal/venv` (shared, contains fastmcp)
|
||||
- Tools: 6 (immich_search, immich_asset_metadata, immich_map, immich_albums, immich_stats, immich_duplicates)
|
||||
|
||||
## Prerequisites (before deployment)
|
||||
- [ ] `IMMICH_BASE_URL` in `/root/.hermes/.env` — URL of Immich server
|
||||
- [ ] `IMMICH_API_KEY` in `/root/.hermes/.env` — generated in Immich → Account Settings → API Keys
|
||||
|
||||
## Deployment steps
|
||||
```bash
|
||||
cp /tmp/immich-mcp.service /etc/systemd/system/
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now immich-mcp
|
||||
|
||||
# Wire into Hermes
|
||||
hermes config set mcp_servers.immich.url 'http://127.0.0.1:8904/mcp'
|
||||
hermes config set mcp_servers.immich.enabled 'true'
|
||||
hermes mcp test immich
|
||||
```
|
||||
|
||||
## Immich API reference
|
||||
- Auth: `x-api-key` header
|
||||
- Base: `{IMMICH_BASE_URL}/api`
|
||||
- Key endpoints used:
|
||||
- `POST /search/metadata` — search by EXIF, GPS, date, camera, city, country
|
||||
- `GET /assets/{id}` — full asset info
|
||||
- `GET /assets/{id}/metadata` — EXIF metadata
|
||||
- `GET /assets/{id}/thumbnail` — thumbnail image
|
||||
- `GET /albums` — album list
|
||||
- `GET /assets/statistics` — server stats
|
||||
- `GET /duplicates` — duplicate detection
|
||||
|
||||
## S3 storage notes (Immich server side)
|
||||
- Immich stores everything locally by default (`UPLOAD_LOCATION`)
|
||||
- To use S3: mount bucket with `s3fs-fuse` at the upload location
|
||||
- Pros: unlimited storage, no local disk limits
|
||||
- Cons: FUSE latency, slow thumbnail/transcode, DB stays local
|
||||
- Better approach: local SSD + nightly backup to S3 via cron
|
||||
```bash
|
||||
# Backup Immich assets to S3
|
||||
aws s3 sync /path/to/immich/library s3://itpropartner-backups/immich/library/ --delete
|
||||
aws s3 sync /path/to/immich/upload s3://itpropartner-backups/immich/upload/ --delete
|
||||
# DB dump
|
||||
pg_dump immich | aws s3 cp - s3://itpropartner-backups/immich/db/daily.sql.gz
|
||||
```
|
||||
- Backup cadence: daily (photos don't change often enough for 15-min sync)
|
||||
|
||||
## Backup recommendations
|
||||
- DB + library assets: daily, S3
|
||||
- Full backup: weekly, separate bucket
|
||||
- Test restore: monthly (spin up test Immich container, point at restored DB + library)
|
||||
Reference in New Issue
Block a user