Skip to content
 
 

Repository files navigation

Moonbase Books

This repository is my personal adaptation of the official Moonbase plugin for my own setup. It is not an official upstream release. Anyone who wants the same features is welcome to use this fork under its existing license.

Moonbase Books is a fork of Moonfin-Client/Plugin. Its Jellyfin plugin adds an authenticated Books bridge and serves the matching Moonfin Books web app. Users search for ebooks or audiobooks, choose a release, queue a download, and view their own status from the existing Jellyfin session. Sheet-music requests search a pinned Mutopia catalog and the Internet Archive IMSLP collection, then import a requested PDF into a dedicated Jellyfin library. Preview 4 also bundles the web reader fix for opening imported scores in the app.

flowchart LR
    A[Moonfin Books app or web] -->|Jellyfin login| B[Jellyfin + Moonbase Books]
    B -->|Validated user and admin role| C[Private Shelfmark API]
    C --> D[Operator's Prowlarr indexers]
    C --> E[Operator's download client]
    E --> F[Configured import destination]
Loading

The Jellyfin controller exposes five Books operations: Status, Search, Releases, Download, and Active. It derives Remote-User and Remote-Groups from validated Jellyfin identity claims; client-supplied identity headers, cookies, and tokens are not forwarded to Shelfmark. The admins group is sent only for a validated Jellyfin administrator. Status is scoped to the caller. Release jobs are user bound, and source IDs are returned as opaque, expiring, user-bound handles. Keep the plugin's persistent data-protection keyring backed up and private.

Only the Shelfmark Prowlarr release adapter is currently allowed through this Books API. Shelfmark still needs the operator's own Prowlarr indexers, downloader, categories, and persistent import paths. See Server setup for a concrete configuration and verification sequence.

Compatibility and installation

The previous Moonbase Books 2.3.1.100 passed 135 backend smoke checks, 14 Shelfmark regression tests and 17 live API checks on Jellyfin 12.1 with Shelfmark Lite 1.3.15. The exact release ZIP was deployed successfully, and a regular user completed web search and release selection without an external page or another login. These tests do not certify other server versions. Upstream Moonbase has Emby features, but this Books bridge is not available for Emby yet.

Install the Jellyfin artifact from this fork as a replacement for official Moonbase. It retains the upstream Jellyfin assembly name and plugin GUID, so the two plugins cannot coexist. Back up the plugin files, configuration, and Books keyring; remove the official Moonbase repository entry from Jellyfin before replacement. autoUpdate: false in the fork package is not enough to prevent the old catalog from offering an upstream replacement. No Moonbase Books updater catalog is published currently; install future updates deliberately after checking compatibility.

The web app is served by the plugin at https://jellyfin.example.org/Moonfin/Web/ and includes Books. Official native Moonfin apps continue using their normal Moonbase features on this server, but do not gain the Books tab through a plugin update. Install a Moonfin Books native fork package for that tab; the fork's app-local data is separate from official Moonfin. Download Plugin Preview 4 for the verified ZIP, checksums and exact source revisions. Start with the step-by-step server setup guide.

Web screenshots

These images show the finished web build included with the plugin. The narrow view is a responsive browser capture, not a native phone or TV screenshot.

Desktop web Narrow responsive web
Books search in the finished desktop web build Books search in the finished narrow web build

Build from source

The exact CI entry point is .github/workflows/books-plugin.yml. Its APPS_SOURCE_REF pins the reviewed Moonfin Books commit for reproducible plugin/web packaging. The workflow runs the Books backend smoke checks, builds that exact app revision for web, then invokes Jellyfin/build.sh and scripts/package-books.py to produce the Jellyfin ZIP and checksum. It uploads CI artifacts and does not create a public release.

License and upstream

Moonbase Books retains the GNU GPL version 3 license and upstream notices from Moonfin-Client/Plugin. See LICENSE and the preserved upstream README. This fork is separate from official Moonbase releases.

Native build evidence

The Linux screenshot shows Books search in the released x64 tar package, running under Ubuntu 24.04/Xvfb with an existing regular Jellyfin session. The Android screenshot shows the exact release-signed APK at first launch in an Android 15 emulator. These captures do not establish physical-device playback or an Android Books request.

Native Linux Books search Native Android first launch
Books search in the native Linux release Moonfin Books Android APK at server selection

Matching app downloads are available in Moonfin Books Preview 3. Follow the client installation steps; iOS/tvOS IPAs require Apple signing and provisioning.

About

Jellyfin plugin providing authenticated book and audiobook requests for Moonfin Books through Shelfmark.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages