Installation - Moonfin-Client/Plugin GitHub Wiki
Moonbase is a plugin for your media server, not an app on your devices. You install it once on the server, and every Moonfin app that connects to that server gets settings sync, extra ratings, server messages and the rest. It comes in four flavors: a Jellyfin plugin that installs from a plugin catalog and updates itself, an Emby plugin that you drop into a folder, a Silo plugin from Silo's own catalog, and a small service that runs next to Plex, which has no plugins.
If someone else runs your server, send them this page. Nothing here happens on a phone or TV.
| Your server | Minimum version | Install method |
|---|---|---|
| Jellyfin | 10.10 or newer | Plugin catalog (recommended), or a zip by hand |
| Emby | 4.8 or newer | A zip you extract into the plugins folder |
| Silo | A build from 2026-10-28 or newer, on Linux | Silo's plugin catalog, or a file you upload |
| Plex | Any Plex Media Server | A Docker container next to Plex |
Moonbase for Silo and Plex does less than the Jellyfin and Emby plugins, because neither server lets it read your library. It covers settings sync, admin defaults, MDBList ratings and TMDB reviews, server messages, uploaded themes and each user's own collection order. The Silo and Plex guide has the full list and the known limits.
This route takes five clicks and keeps Moonbase updated like any other Jellyfin plugin.
- Open the Jellyfin web page as an administrator and click your user icon at the top right, then Dashboard.
- In the left menu open Plugins, then the Repositories tab.
- Click the + button and fill in:
-
Repository Name:
Moonbase -
Repository URL:
https://raw.githubusercontent.com/Moonfin-Client/Plugin/refs/heads/master/manifest.json
-
Repository Name:
- Click Save.
- Switch to the Catalog tab, find Moonbase (it is in the General section), click it, and click Install. Leave the version on the newest one.
- Restart Jellyfin: Dashboard > Restart at the top of the dashboard page, or restart the container or service.
- Check it worked: Dashboard > Plugins > My Plugins shows Moonbase with the status Active.
Advanced: installing the zip by hand
-
Download the newest
Moonfin.Server-<version>.zipfrom the Releases page. -
Create a folder called
Moonfininside Jellyfin's plugins folder and extract the zip into it:Install type Plugins folder Linux package /var/lib/jellyfin/plugins/Moonfin/Docker /config/plugins/Moonfin/(inside the config volume)Windows %ProgramData%\Jellyfin\Server\plugins\Moonfin\ -
On Linux make sure the files belong to the user Jellyfin runs as, for example
sudo chown -R jellyfin:jellyfin /var/lib/jellyfin/plugins/Moonfin. -
Restart Jellyfin.
A hand-installed copy doesn't update itself. Add the repository as well and the catalog takes over from the next version. Jellyfin puts each catalog update in a new folder, like Moonbase_2.4.0.0, and retires the old folder on the next restart.
If your plugins folder is read-only or managed by something else, like a NixOS or other declarative setup, don't take Moonbase updates from the catalog. Update it by replacing the folder's contents instead. Jellyfin has to write to the old folder to retire it, and when it can't, two copies can load at once and wipe the Moonbase settings. See Common Problems.
The Emby plugin is a zip you extract, not a catalog plugin.
-
Download the newest
Moonfin.Emby-<version>.zipfrom the Releases page. -
Extract it. You get
Emby.Plugins.Moonfin.dll,SharpCompress.dlland a folder calledweb. -
Copy all three into Emby's plugins folder, directly, not inside a subfolder:
Install type Plugins folder Linux package /var/lib/emby/plugins/Docker /config/plugins/(inside the config volume)Windows %AppData%\Emby-Server\programdata\plugins\ -
Restart Emby.
-
Check it worked: Dashboard > Plugins lists Moonbase.
The web folder must sit next to the dll. Without it the web app at /Moonfin/Web/ answers with a 404.
- Open Silo's admin pages and go to Plugins, then the Catalog tab.
- Add a repository with this address:
https://github.com/Moonfin-Client/Plugin/releases/download/moonbase-silo-catalog/index.json - Install Moonbase from the catalog. Silo keeps it updated from then on.
- Set it up on the Moonbase page, from the menu at the top right of Silo's plugin page or from Plugin Apps in the admin menu. Use your admin account's primary profile, since Silo only treats that one as an admin there.
To install it by hand instead, download Moonbase.Silo-<version>-linux-amd64 (or -linux-arm64) from the Silo and Plex release, check it against SHA256SUMS, and upload it on the same Catalog tab.
Connect your Moonfin apps to Silo's own address, usually port 8090, not its Jellyfin-compatible one. The apps find Moonbase by themselves.
Plex has no plugin system, so Moonbase for Plex is a small service that runs next to Plex Media Server, on the same machine or any machine that can reach it.
-
Start it with Docker, setting
PLEX_URLto your Plex server's address as the container sees it:docker run -d --name moonbase-plex --restart unless-stopped \ -p 32500:32500 \ -e PLEX_URL=http://192.168.1.10:32400 \ -v moonbase-plex:/config \ ghcr.io/moonfin-client/moonbase-plex:latest
On Unraid, TrueNAS or Synology, add a container from
ghcr.io/moonfin-client/moonbase-plex:latestwith the same port, variable and volume. The image runs on amd64 and arm64. -
Open
http://<host>:32500/adminand sign in with the Plex account that owns the server. Until the owner signs in once, your shared users and Home members can't use Moonbase.
The apps look for Moonbase on port 32500 of your Plex server's address. If it runs somewhere else, set its address in each app under Settings > Account > Settings Sync > Moonbase Address. Don't forward port 32500 to the internet. For use away from home, put it behind a reverse proxy with HTTPS or reach it over a VPN. The Silo and Plex guide has a Docker Compose example and the other settings.
These steps are for Jellyfin and Emby. On Silo and Plex, the Moonbase page from the steps above is all there is to set up.
- Turn on sync. Open the plugin page (Jellyfin: Dashboard > Plugins > My Plugins > Moonbase. Emby: Dashboard > Plugins > Moonbase), and on the Settings Sync tab tick Moonbase Sync, then Save. This is the master switch. Seerr and the ratings integrations don't work without it.
-
Open the web app. In a browser go to
https://<your server address>/Moonfin/Web/, for examplehttp://192.168.1.10:8096/Moonfin/Web/. On Jellyfin, if it is blank right after installing, run the Moonfin Startup task once under Dashboard > Scheduled Tasks and refresh the page. - Turn it on in your apps. In each Moonfin app go to Settings > Account > Settings Sync. It should say Connected, with sync on. On Samsung and LG TVs, tick Enable Plugin under Settings > Integrations > Moonbase Plugin, and on Roku the menu is Settings > Moonfin Plugin.
- Set up the rest at your own pace. The Admin Guide walks through every tab of the plugin page in plain words. Seerr has its own five-minute page, Seerr Setup.
Advanced: a Moonfin button in Jellyfin's own web header
On Jellyfin you can add a one-click Moonfin button to the stock web page header, next to your user icon, by installing the File Transformation plugin:
- Add its repository the same way as above:
https://www.iamparadox.dev/jellyfin/plugins/manifest.json - Install File Transformation from the catalog and restart Jellyfin.
- Force refresh your browser (Ctrl+F5, or Cmd+Shift+R on a Mac).
To hide the button while keeping the plugin, add this to Dashboard > General > Branding > Custom CSS:
.headerMoonfinButton { display: none !important; }Emby has no equivalent injection path, so there is no header button there. The web app is still served at /Moonfin/Web/.
- Jellyfin, catalog install: new versions show under Dashboard > Plugins > Catalog with an update marker, and Jellyfin's own Update Plugins scheduled task installs them. Restart Jellyfin after an update.
- Jellyfin, hand install: download the new zip and extract it over the old files in the same folder, not into a new folder next to it, then restart.
- Emby: download the new zip, copy the three items over the old ones, restart Emby.
- Silo: Silo updates Moonbase from its catalog. For a hand install, upload the newer file on the Catalog tab, which keeps your data.
-
Plex: pull the new image and recreate the container with the same volume, for example
docker pull ghcr.io/moonfin-client/moonbase-plex:latest, then remove and startmoonbase-plexagain.
Your users' settings, Seerr sessions, themes and game saves are kept across updates. They live in a separate Moonfin folder, see Data Locations.
- Jellyfin: Dashboard > Plugins > My Plugins > Moonbase > Uninstall, then restart.
-
Emby: delete
Emby.Plugins.Moonfin.dll,SharpCompress.dlland thewebfolder from the plugins folder, then restart. - Silo: uninstall Moonbase from Silo's plugin page. On Silo this also deletes its data, which lives in Silo's database.
-
Plex: remove the
moonbase-plexcontainer, and its volume to remove the data too. Signing out the "Moonbase" device in your Plex account's authorized devices revokes the owner token it kept.
On Jellyfin and Emby, uninstalling doesn't remove the data. To wipe everything, also delete the Moonfin folder under plugins/configurations/ and the plugin's XML file next to it. Data Locations lists both.