-
Notifications
You must be signed in to change notification settings - Fork 36
Data Locations
Everything Moonbase writes goes into a single Moonfin folder inside your server's plugin configuration directory. User settings, bookmarks, notification preferences, Seerr sessions, uploaded themes, and the caches all live there.
Knowing where it is makes backups, resets, and support requests much easier.
Both plugins resolve the same way, as the server's plugin configuration path plus Moonfin.
| Server | Install type | Path |
|---|---|---|
| Jellyfin | Docker | /config/plugins/configurations/Moonfin/ |
| Jellyfin | Linux package | /var/lib/jellyfin/plugins/configurations/Moonfin/ |
| Jellyfin | Windows | %ProgramData%\Jellyfin\Server\plugins\configurations\Moonfin\ |
| Emby | Docker | /config/plugins/configurations/Moonfin/ |
| Emby | Linux package | /var/lib/emby/plugins/configurations/Moonfin/ |
| Emby | Windows | %AppData%\Emby-Server\programdata\plugins\configurations\Moonfin\ |
If your server uses a custom data directory, the folder follows it. Look for plugins/configurations/Moonfin under whatever path your server reports as its data directory on the dashboard.
One file per user, named with that user's id.
| Path | What it holds |
|---|---|
{userId}.json |
The user's settings envelope, which is what Settings Sync reads and writes |
notifications/{userId}.json |
Notification preferences and the user's notification history |
seerr-sessions/{userId}.json |
The user's Seerr session, so they stay signed in across clients |
Bookmarks/{userId}.json |
Audiobook bookmarks and notes. Jellyfin only |
collections/{userId}/{collection}.json |
Manual ordering for a collection. Jellyfin only |
saves/{userId}/{game}.{kind} |
Retro game saves and save states. Jellyfin only |
Note: the user id is written two ways. Settings, notifications, Seerr sessions, and bookmarks use the dashed form (
0f8b...-...-....json). Collections and saves use the compact form with no dashes. Both refer to the same user.
| Path | What it holds |
|---|---|
themes/ |
Uploaded custom themes and their index, shared by every user. See Themes |
emulatorjs/data/ |
The installed EmulatorJS runtime. Jellyfin only, see Retro Games |
gamemeta/{platform}.rdb |
Game metadata databases. Jellyfin only |
quarantine/ |
Files the repair task could not recover, kept under settings/, notifications/, and seerr-sessions/
|
These are rebuilt on demand and are safe to delete if you want to force a refresh.
| Path | What it holds |
|---|---|
mdblist_cache.json |
Cached MDBList ratings |
mdblist_lists_cache.json |
Cached MDBList official lists |
imdb_lists_cache.json |
Cached IMDb chart lists |
custom_rows_cache.json |
Cached custom row results |
studio_logos/ |
Downloaded studio logo images |
game_thumbs/ |
Downloaded game box art |
The settings you set on the plugin config page are not in the Moonfin folder. The server persists them itself as an XML file one level up, in plugins/configurations/:
- Jellyfin:
Moonfin.Server.xml - Emby:
Emby.Plugins.Moonfin.xml
That file holds the server-wide values such as API keys, the Seerr URL, and the admin default settings. It is the file to keep if you want to preserve your server configuration without carrying over per-user data.
-
Back up everything: copy the whole
Moonfinfolder plus the XML file next to it. -
Reset one user: stop the server, delete that user's
{userId}.json, and start it again. They fall back to the admin defaults and can re-sync from a client that still has their settings. -
Reset all user settings but keep admin config: delete the
{userId}.jsonfiles in the folder root and leave the XML alone. - Clear caches only: delete the cache files and folders listed above. Nothing user facing is lost.
Always stop the server before deleting files by hand, so nothing is mid-write when you do it.
Note: files are written atomically, and a repair pass runs at startup to catch anything left truncated by an earlier crash. Anything it cannot recover is moved into
quarantine/rather than deleted. See Settings Sync for how that works.