A self-hosted library for the things you keep.
Images, documents, PDFs, video, audio, web pages, archives, comics, novels, and 2D skeleton animation — collected in one place, previewed where they are, and kept on your own storage.
Collecting is easy. Keeping is the hard part — especially when files arrive in every format, and the value of them is in still having them years later.
Hoard any content
extensibleContent plugins decide what a file is and how it renders. New formats can be added without touching the core.
Preview in place
in placeOpen a resource where it is — a PDF reader, a media viewer, a file tree, a comic reader.
Find it again
search · dedupTags, collections and categories, full-text search, and duplicate detection — exact and perceptual.
Keep it safe
versions · snapshotsVersioned archives and automatic snapshots keep a library usable over years, not months.
Yours alone
no telemetrySelf-hosted, local-first, no telemetry. Outbound requests happen only when you start them.
In-app screenshots.
A few screenshots from the desktop app. Click any image to enlarge.
Screenshots show a demo library.
Never hits a wall.
Content plugins claim, describe and render a resource. Install more from the marketplace without changing the core.
Detect
A content plugin says what a resource is — from its bytes, not just its filename.
Describe
It reports dimensions, duration, page count, search facets and a cover.
Render
It draws the resource in the library — a viewer, a reader, a file tree.
- file
A file tree for anything
- gallery
Images, video and audio
- pdf
PDF documents
- manga / comic
Comics and manga
- novel
Novels and e-books
- 2D skeleton animation
2D skeleton animation — Live2D, Spine, DragonBones
Write your own with the plugin SDK and CLI, then publish it to the marketplace.
Your library, your rules.
Data stays on your storage. The only outbound requests are the ones you start yourself.
No telemetry
Nothing leaves your host unless you do it, or approve it.
Own the storage
A plain SQLite database plus a folder tree that you can back up and move.
Consented downloads
Plugin assets and marketplace updates fetch GitHub only, and plugin downloads need your approval.
Self-hosted, Docker, or desktop.
The desktop app and the self-hosted web version share the same library format.
Docker
A single compose command. Your library lives in a named volume.
docker compose up -d
Self-host
Node 24 and pnpm. Run the server and open it in a browser.
pnpm install cp .env.example .env pnpm build pnpm start
Desktop
Installers for Windows, macOS and Linux, with an auto-updater.
Common questions.
Is Hoardodile free?
Yes. Hoardodile is free and open source under GPL-3.0.
Where is my data stored?
On your own storage. There is no required cloud, account or service.
What can I keep?
Anything a content plugin understands — images, PDFs, video, audio, comics, novels, archives and more.
How do I add a format?
Install a content plugin from the marketplace, or write one with the plugin SDK.
Desktop or web?
Both, and they share the same library format.
Does it phone home?
No telemetry. The only outbound requests are the ones you trigger yourself.
Built in the open.
Hoardodile is free and open source under GPL-3.0. Report bugs and share ideas on GitHub.