Skip to content

IcyDrae/Libria

Repository files navigation

Project Concept

“Libria” – A Self-Hosted Digital Library Manager

Written in C# (.NET 9) on Ubuntu, using MySQL as the database, packaged with Docker.

It manages:

  • PDF books
  • EPUB books
  • Images
  • Audio files
  • Any documents (docx, txt, etc.)

It’s a mix between “self-hosted Google Drive” + “Calibre Web” + “Jellyfin for documents”.


Demo

Homepage

Collections

PDF viewing in browser

Ebook viewing in browser

Streaming audio

How to install

  1. git clone https://github.com/IcyDrae/Libria.git
  2. cd Libria/
  3. mkdir data
  4. docker compose -f docker/docker-compose.yml up --build or
  5. docker compose -f docker/docker-compose.yml up --build -d

Architecture

Backend (C# / .NET 8)

  • ASP.NET Core Web API
  • Entity Framework Core → MySQL provider
  • Local filesystem storage

Frontend

  • Razor Pages

Database (MySQL)

  • File
  • FileMetadata
  • FileTag
  • Tag
  • Collection

File & Metadata Workflow

  1. User uploads a file via UI.
  2. File is stored to disk /data/library/...
  1. Metadata inserted into MySQL.
  2. UI shows library list and categories.

Core Features

  • Upload + organize all file types
  • Collections, categorize your files in groups
  • Reading/preview mode for PDFs + EPUBs
  • Audio streaming for music/podcasts

Deployment

  • docker-compose.yml with:
    • app container
    • mysql container

License

GNU GENERAL PUBLIC LICENSE Version 3

About

Self-Hosted Digital Library Manager

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published