-
Notifications
You must be signed in to change notification settings - Fork 40
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 |
saves/{userId}/{game}.{kind} |
Retro game saves and save states |
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, when an admin chose to self-host the cores. See Retro Games |
gamemeta/{platform}.rdb |
Game metadata databases. Jellyfin only |
config-backup/Moonfin.Server.xml |
A spare copy of the admin configuration, used by the restore banner. Jellyfin only. See below |
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 |
anime_markers_cache.json |
Cached filler, canon and recap classifications for anime. Jellyfin only |
anime_filler_catalog.json |
AnimeFillerList's list of shows, used for matching. Jellyfin only |
anime_id_mapping.json |
A table that links anime ids to MyAnimeList, used for recap lookups. Jellyfin only |
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.
On Jellyfin, Moonbase also keeps a copy of it at Moonfin/config-backup/Moonfin.Server.xml. The copy is refreshed at every startup, but only while your settings aren't all defaults, so a reset never overwrites the last good copy. If the live file ever comes back as defaults, the plugin page offers to restore it. See Common Problems.
-
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: the anime marker debug log isn't in this folder. When it's turned on, it's written to the server's own log folder as
moonfin-anime-markers.log, so it shows up under Dashboard > Logs.
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.
For server admins
Reference
For developers