Where Does Overseerr Store Settings and Requests?
Where Overseerr keeps settings.json, its SQLite database, and logs in a standard Docker install.
Last updated
Overseerr stores its state in a config tree mounted at /app/config in Docker: settings.json for connections and options, a db folder with the SQLite database, and logs beside them. Bare installs use a config folder under the app directory instead.
The whole tree moves as one unit. Migrations fail when people copy settings.json alone and leave the database behind, producing a fresh install wearing familiar settings. Stop the app, copy everything, mount it at the same container path.
Where Overseerr stores this, by platform
/app/config (Docker volume)
settings.json holds Plex, Radarr, and Sonarr connections; db/overseerr.db holds requests and users. Bind this tree to a host folder. Jellyseerr mirrors the layout, so the same backup habit covers both.
Frequently asked questions
how do i migrate overseerr to a new server
Stop the container and copy the whole mapped config folder (settings.json, db/, logs/). Restore by mounting it at /app/config on the new host. API keys to Plex and the *arr apps travel inside settings.json, so treat the copy as secrets.
where is the overseerr database
In db/overseerr.db inside the config tree. It holds requests, users, and issue reports. Copy it with the service stopped and keep the whole config folder together rather than cherry picking files.
does overseerr need a persistent volume
Yes. Map /app/config to a persistent volume or requests and settings evaporate on every recreate. The image carries no state of its own. Jellyseerr follows the identical layout under its own config path.
Notice an outdated path? Let us know.