Companion server plugin for all Moonfin clients
383
stars
325
commits
C#
primary language
Sep 14, 2026
updated
Moonbase is a server plugin for Jellyfin and Emby that gives every Moonfin client its shared backbone. It syncs your settings across devices, hosts the Moonfin web app right on your server, adds extra rating sources, connects your library to Seerr, and gives admins server-wide defaults and tools.
Recommended: if you use any Moonfin client, install Moonbase on your server for the best experience.
This repo ships two plugins from one place: a Jellyfin plugin under Jellyfin/ and an Emby plugin under Emby/.
Moonbase needs Jellyfin 10.10 or newer or Emby 4.8 or newer. The wiki's Installation page has the steps plus updating and uninstalling.
The plugin repository is the recommended route, because it updates through the catalog like any other plugin:
Moonbasehttps://raw.githubusercontent.com/Moonfin-Client/Plugin/refs/heads/master/manifest.jsonMoonfin.Server-x.x.x.x.zip from Releases| Platform | Path |
|---|---|
| Linux | /var/lib/jellyfin/plugins/Moonfin/ |
| Docker | /config/plugins/Moonfin/ |
| Windows | %ProgramData%\Jellyfin\Server\plugins\Moonfin\ |
The Emby plugin is a drop-in zip, not a catalog plugin:
Moonfin.Emby-x.x.x.x.zip from Releases.Emby.Plugins.Moonfin.dll, SharpCompress.dll, and the web folder) into your Emby plugins folder:
| Platform | Path |
|---|---|
| Linux | /var/lib/emby/plugins/ |
| Docker | /config/plugins/ |
| Windows | %AppData%\Emby-Server\programdata\plugins\ |
Moonbase serves the Moonfin web app on your own server, so you can open and bookmark it directly:
https://your-server-host/Moonfin/Web/
Not loading after a fresh install? Run the Moonfin Startup task once (Dashboard > Scheduled Tasks), then refresh your browser.
On Jellyfin, you can add a one-click Moonfin button to the stock web header (next to SyncPlay) by installing the File Transformation plugin:
https://www.iamparadox.dev/jellyfin/plugins/manifest.jsonTo hide the button while keeping the plugin, add this to Branding > Custom CSS:
.headerMoonfinButton { display: none !important; }
On Emby, the web app is served the same way at /Moonfin/Web/, but there's no header button because Emby has no equivalent injection path.
/Moonfin/Web/, running side by side with the stock web interface.Open your server dashboard, go to Plugins, and select Moonbase. The Admin Guide walks through every tab. The main things to set up:
Users change their own preferences from the in-app settings page in any Moonfin client. Settings are stored per user and shared across clients, with an optional per-device override for desktop, mobile, and TV.
The Defaults tab covers every client setting in its own subtab, from General Style and Details Screen through Playback and Integrations. Each control mirrors what the clients actually offer, so a default set here is one a client can honor. A setting left on Not set (user decides) passes the user's own choice through.
The deeper reference material lives in the Wiki:
| Page | What it covers |
|---|---|
| Installation | The Jellyfin catalogue route, the Emby zip, the first things to switch on, updating and uninstalling |
| Admin Guide | The plugin page tab by tab, the scheduled tasks, and what differs on Emby |
| Common Problems | Plain fixes for catalogue, web app, sync, Seerr, ratings, rows and games trouble |
| API Reference | Every plugin endpoint, with methods, auth, the Seerr config response, and the server messages endpoints |
| Settings Sync | How sync works, the settings envelope, and the full list of synced settings |
| Data Locations | Where the plugin stores user settings, themes, saves, and caches on the server |
| Retro Games | Game libraries, cores, ROMs, BIOS, saves, and in-browser play |
| Seerr Setup | The plain step-by-step guide to connecting Seerr |
| Seerr Notifications | Push delivery, webhooks, notification types, and self-hosted relays |
| Themes | The theme editor and custom theme uploads |
| Reverse Proxy and Seerr | Path forwarding and Seerr single sign-on behind a proxy |
| Building from Source | Building the Jellyfin and Emby plugins from this repo |
Contributions are welcome. Check the existing issues first, open an issue before starting a large change, match the existing code style, and test your changes on desktop and mobile. Features that would help all Jellyfin or Emby users are worth proposing upstream first.
To submit a change, fork the repo, create a feature branch, make your changes with clear commit messages, and open a pull request with a clear description.
Moonfin is built on the work of others:
This project is licensed under GPL-3.0. See the LICENSE file for details.
Moonfin is an independent project and is not affiliated with the Jellyfin or Emby projects.
Back to the main Moonfin project
C#
68.5%
HTML
20.1%
JavaScript
9.2%
CSS
1.6%
Companion server plugin for all Moonfin clients
383
stars
325
commits
C#
primary language
Sep 14, 2026
updated
Moonbase is a server plugin for Jellyfin and Emby that gives every Moonfin client its shared backbone. It syncs your settings across devices, hosts the Moonfin web app right on your server, adds extra rating sources, connects your library to Seerr, and gives admins server-wide defaults and tools.
Recommended: if you use any Moonfin client, install Moonbase on your server for the best experience.
This repo ships two plugins from one place: a Jellyfin plugin under Jellyfin/ and an Emby plugin under Emby/.
Moonbase needs Jellyfin 10.10 or newer or Emby 4.8 or newer. The wiki's Installation page has the steps plus updating and uninstalling.
The plugin repository is the recommended route, because it updates through the catalog like any other plugin:
Moonbasehttps://raw.githubusercontent.com/Moonfin-Client/Plugin/refs/heads/master/manifest.jsonMoonfin.Server-x.x.x.x.zip from Releases| Platform | Path |
|---|---|
| Linux | /var/lib/jellyfin/plugins/Moonfin/ |
| Docker | /config/plugins/Moonfin/ |
| Windows | %ProgramData%\Jellyfin\Server\plugins\Moonfin\ |
The Emby plugin is a drop-in zip, not a catalog plugin:
Moonfin.Emby-x.x.x.x.zip from Releases.Emby.Plugins.Moonfin.dll, SharpCompress.dll, and the web folder) into your Emby plugins folder:
| Platform | Path |
|---|---|
| Linux | /var/lib/emby/plugins/ |
| Docker | /config/plugins/ |
| Windows | %AppData%\Emby-Server\programdata\plugins\ |
Moonbase serves the Moonfin web app on your own server, so you can open and bookmark it directly:
https://your-server-host/Moonfin/Web/
Not loading after a fresh install? Run the Moonfin Startup task once (Dashboard > Scheduled Tasks), then refresh your browser.
On Jellyfin, you can add a one-click Moonfin button to the stock web header (next to SyncPlay) by installing the File Transformation plugin:
https://www.iamparadox.dev/jellyfin/plugins/manifest.jsonTo hide the button while keeping the plugin, add this to Branding > Custom CSS:
.headerMoonfinButton { display: none !important; }
On Emby, the web app is served the same way at /Moonfin/Web/, but there's no header button because Emby has no equivalent injection path.
/Moonfin/Web/, running side by side with the stock web interface.Open your server dashboard, go to Plugins, and select Moonbase. The Admin Guide walks through every tab. The main things to set up:
Users change their own preferences from the in-app settings page in any Moonfin client. Settings are stored per user and shared across clients, with an optional per-device override for desktop, mobile, and TV.
The Defaults tab covers every client setting in its own subtab, from General Style and Details Screen through Playback and Integrations. Each control mirrors what the clients actually offer, so a default set here is one a client can honor. A setting left on Not set (user decides) passes the user's own choice through.
The deeper reference material lives in the Wiki:
| Page | What it covers |
|---|---|
| Installation | The Jellyfin catalogue route, the Emby zip, the first things to switch on, updating and uninstalling |
| Admin Guide | The plugin page tab by tab, the scheduled tasks, and what differs on Emby |
| Common Problems | Plain fixes for catalogue, web app, sync, Seerr, ratings, rows and games trouble |
| API Reference | Every plugin endpoint, with methods, auth, the Seerr config response, and the server messages endpoints |
| Settings Sync | How sync works, the settings envelope, and the full list of synced settings |
| Data Locations | Where the plugin stores user settings, themes, saves, and caches on the server |
| Retro Games | Game libraries, cores, ROMs, BIOS, saves, and in-browser play |
| Seerr Setup | The plain step-by-step guide to connecting Seerr |
| Seerr Notifications | Push delivery, webhooks, notification types, and self-hosted relays |
| Themes | The theme editor and custom theme uploads |
| Reverse Proxy and Seerr | Path forwarding and Seerr single sign-on behind a proxy |
| Building from Source | Building the Jellyfin and Emby plugins from this repo |
Contributions are welcome. Check the existing issues first, open an issue before starting a large change, match the existing code style, and test your changes on desktop and mobile. Features that would help all Jellyfin or Emby users are worth proposing upstream first.
To submit a change, fork the repo, create a feature branch, make your changes with clear commit messages, and open a pull request with a clear description.
Moonfin is built on the work of others:
This project is licensed under GPL-3.0. See the LICENSE file for details.
Moonfin is an independent project and is not affiliated with the Jellyfin or Emby projects.
Back to the main Moonfin project
C#
68.5%
HTML
20.1%
JavaScript
9.2%
CSS
1.6%