Installation - Moonfin-Client/Plugin GitHub Wiki

Installation

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.

Which one do I need?

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.

Jellyfin

The easy way: the plugin catalog

This route takes five clicks and keeps Moonbase updated like any other Jellyfin plugin.

  1. Open the Jellyfin web page as an administrator and click your user icon at the top right, then Dashboard.
  2. In the left menu open Plugins, then the Repositories tab.
  3. Click the + button and fill in:
    • Repository Name: Moonbase
    • Repository URL: https://raw.githubusercontent.com/Moonfin-Client/Plugin/refs/heads/master/manifest.json
  4. Click Save.
  5. 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.
  6. Restart Jellyfin: Dashboard > Restart at the top of the dashboard page, or restart the container or service.
  7. Check it worked: Dashboard > Plugins > My Plugins shows Moonbase with the status Active.
Advanced: installing the zip by hand
  1. Download the newest Moonfin.Server-<version>.zip from the Releases page.

  2. Create a folder called Moonfin inside 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\
  3. 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.

  4. 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.

Emby

The Emby plugin is a zip you extract, not a catalog plugin.

  1. Download the newest Moonfin.Emby-<version>.zip from the Releases page.

  2. Extract it. You get Emby.Plugins.Moonfin.dll, SharpCompress.dll and a folder called web.

  3. 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\
  4. Restart Emby.

  5. 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.

Silo

  1. Open Silo's admin pages and go to Plugins, then the Catalog tab.
  2. Add a repository with this address: https://github.com/Moonfin-Client/Plugin/releases/download/moonbase-silo-catalog/index.json
  3. Install Moonbase from the catalog. Silo keeps it updated from then on.
  4. 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

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.

  1. Start it with Docker, setting PLEX_URL to 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:latest with the same port, variable and volume. The image runs on amd64 and arm64.

  2. Open http://<host>:32500/admin and 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.

First things after installing

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.

  1. 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.
  2. Open the web app. In a browser go to https://<your server address>/Moonfin/Web/, for example http://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.
  3. 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.
  4. 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:

  1. Add its repository the same way as above: https://www.iamparadox.dev/jellyfin/plugins/manifest.json
  2. Install File Transformation from the catalog and restart Jellyfin.
  3. 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/.

Updating

  • 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 start moonbase-plex again.

Your users' settings, Seerr sessions, themes and game saves are kept across updates. They live in a separate Moonfin folder, see Data Locations.

Uninstalling

  • Jellyfin: Dashboard > Plugins > My Plugins > Moonbase > Uninstall, then restart.
  • Emby: delete Emby.Plugins.Moonfin.dll, SharpCompress.dll and the web folder 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-plex container, 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.

⚠️ **GitHub.com Fallback** ⚠️