Steven (Zen) 9fe61f6b7a Fix import: use exact filename stem as Eagle name field
Eagle matches metadata.json "name" to the actual filename stem exactly.
Prettifying names (replacing hyphens, stripping numbers) caused Eagle to
show empty folders. Also add Python import script (replaces bash version).
2026-08-11 14:00:33 -06:00

Eagle Viewer

A proof-of-concept web app for browsing Eagle libraries stored on a Synology NAS, from Linux or any browser (Chromebook included).

Built because Eagle only runs on Mac and Windows.

How it works

  • Bulk metadata load via a single SSH find | cat command (~3.5s for 372 images, ~30s for 10k+)
  • Thumbnails and files served directly from the SMB mount
  • Thumbnails cached in memory after first load

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

Known limitations

  • Thumbnail cache is in-memory only — resets on server restart
  • Large libraries (10k+ images) take ~30s to load on first click (no disk cache yet)
  • "Open original" for large video files is slow over SMB — a production version would want a proper media server

Requirements

  • Node.js
  • sshpass installed (sudo apt install sshpass)
  • NAS SMB share mounted at /run/user/1000/gvfs/smb-share:server=synologynas.local,share=steve/Eagle_Libraries
  • SSH access to synologynas.local

Setup

cd ~/workspace/gitea/eagle-viewer
npm install
node server.js

Then open http://localhost:3737 in your browser.

Gitea

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

Description
POC web viewer for Eagle libraries on Synology NAS
Readme 80 KiB
Languages
HTML 31.5%
Python 29%
JavaScript 19.7%
Shell 19.1%
Dockerfile 0.7%