eagle-viewer/readme.md

2.2 KiB

Eagle Viewer

A web app for browsing Eagle libraries stored on a Synology NAS, from any browser (Chromebook, iPhone, Linux included).

Built because Eagle only runs on Mac and Windows.

How it works

  • All NAS access via SSH — metadata and thumbnails
  • Metadata and thumbnails cached to disk on first load (survives container restarts)
  • In-memory cache warms up from disk on first request each session

Features

  • Lists all Eagle libraries on the NAS
  • Dark grid UI with adjustable thumbnail size
  • Folder tree sidebar
  • Search by name or tag
  • Lightbox on click
  • "Open original" streams the file (mp4, png, pdf, etc.) via HTTP with range support

Caching

Layer What's cached Survives restart?
Disk (metadata) Library item list, folders, tags Yes
Disk (thumbnails) Thumbnail images Yes
In-memory Metadata (hot path after disk cache warms) No

On first click, a library is fetched from the NAS over SSH and written to disk. Every subsequent click is served from disk — instant, even after a container restart.

Refreshing a library

If you add new items to a library on the NAS, the disk cache will be stale. Force a refresh with:

curl -X POST http://100.88.231.3:3737/api/library/remote_photos/refresh

Replace remote_photos with the library name. This fetches fresh metadata from the NAS and updates the disk cache. Returns { ok: true, imageCount: N, ms: N } when done.

cd ~/docker
docker compose up -d eagle-viewer

The thumb cache is persisted at ~/docker/eagle-viewer/thumb-cache/.

Running manually (development)

npm install
node server.js

Requires sshpass installed (sudo apt install sshpass).

Environment variables

Variable Default Description
SSH_HOST synologynas.local NAS hostname or IP
SSH_USER steve SSH username
SSH_PASS cheong SSH password
NAS_BASE /volume1/steve/Eagle_Libraries Libraries root path on NAS
CACHE_DIR ./.thumb-cache Disk cache directory
PORT 3737 HTTP port

Gitea

http://zen.local:9000/steve/eagle-viewer