Jellyseerr is a free and open source software application for managing requests for your media library. It is a fork of Overseerr built to bring support for Jellyfin & Emby media servers!
Current Features
-
Full Jellyfin/Emby/Plex integration including authentication with user import & management
-
Supports Movies, Shows and Mixed Libraries
-
Ability to change email addresses for smtp purposes
-
Easy integration with your existing services. Currently, Jellyseerr supports Sonarr and Radarr. More to come!
-
Jellyfin/Emby/Plex library scan, to keep track of the titles which are already available.
-
Customizable request system, which allows users to request individual seasons or movies in a friendly, easy-to-use interface.
-
Incredibly simple request management UI. Don't dig through the app to simply approve recent requests!
-
Granular permission system.
-
Support for various notification agents.
-
Mobile-friendly design, for when you need to approve requests on the go!
(Upcoming Features include: Multiple Server Instances, and much more!)
With more features on the way! Check out our issue tracker to see the features which have already been requested.
Getting Started
Check out our documentation for instructions on how to install and run Jellyseerr:
Launching Jellyseerr using Docker (Recommended)
Check out our docker hub for instructions on how to install and run Jellyseerr: https://hub.docker.com/r/fallenbagel/jellyseerr
Database configuration
Jellyseerr supports sqlite and postgres. The database connection can be configured using the following options:
SQLite Options
DB_TYPE="sqlite" # Which DB engine to use. The default is "sqlite"
CONFIG_DIRECTORY="config" # The path to the config directory where the db file is stored
DB_LOG_QUERIES="false" # Whether to log the DB queries for debugging
PostgreSQL Options
DB_TYPE="postgres" # Which DB engine to use. The default is "sqlite". To use postgres, this needs to be set to "postgres"
DB_HOST= # The host (url) of the database
DB_PORT="5432" # The port to connect to
DB_USER= # Username used to connect to the database
DB_PASS= # Password of the user used to connect to the database
DB_NAME="jellyseerr" # The name of the database to connect to
DB_LOG_QUERIES="false" # Whether to log the DB queries for debugging
DB_USE_SSL="false" # Whether to enable ssl for database connection
# The following options can be used to further configure ssl:
DB_SSL_REJECT_UNAUTHORIZED="true" # Whether to reject ssl connections with unverifiable certificates i.e. self-signed certificates without providing the below settings
DB_SSL_CA= # The CA certificate to verify the connection, provided as a string
DB_SSL_CA_FILE= # The path to a CA certificate to verify the connection
DB_SSL_KEY= # The private key for the connection in PEM format, provided as a string
DB_SSL_KEY_FILE= # Path to the private key for the connection in PEM format
DB_SSL_CERT= # Certificate chain in pem format for the private key, provided as a string
DB_SSL_CERT_FILE= # Path to certificate chain in pem format for the private key
Migrating from SQLite to PostgreSQL
- Set up your PostgreSQL database and configure Jellyseerr to use it
- Run Jellyseerr to create the tables in the PostgreSQL database
- Stop Jellyseerr
- Run the following command to export the data from the SQLite database and import it into the PostgreSQL database:
- Edit the postgres connection string to match your setup
- WARNING: The most recent release of pgloader has an issue quoting the table columns. Use the version in the docker container to avoid this issue.
- "I don't have or don't want to use docker" - You can build the working pgloader version in this PR from source and use the same options as below.
docker run --rm -v config/db.sqlite3:/db.sqlite3:ro -v pgloader/pgloader.load:/pgloader.load ghcr.io/ralgar/pgloader:pr-1531 pgloader --with "quote identifiers" --with "data only" /db.sqlite3 postgresql://{{DB_USER}}:{{DB_PASS}}@{{DB_HOST}}:{{DB_PORT}}/{{DB_NAME}} - Start Jellyseerr
Building latest version from source (ADVANCED):
Windows
Pre-requisites:
- Nodejs v18
- Yarn
- Download/git clone the source code from the github (Either develop branch or main for stable)
npm i -g win-node-env
set CYPRESS_INSTALL_BINARY=0
yarn install --frozen-lockfile --network-timeout 1000000
yarn run build
yarn start
(You can use task scheduler to run a bat script with @echo off and yarn start to run jellyseerr in the background)
(You can also use nssm to run jellyseerr as a service, see nssm for more information)
To set env variables such as JELLYFIN_TYPE=emby create a file called .env in the root directory of jellyseerr
Linux
Pre-requisites:
- Nodejs v18
- Yarn (on Debian based distros, the package manager provided
yarnis different and is a package called cmdlet. You can remove that usingapt-remove cmdletthen install yarn usingnpm install -g yarn) - Git
Steps:
- Assuming you want the root folder for the jellyseerr source code to be cloned to
/opt
cd /opt
- Then execute the following commands to clone and checkout to the stable version
git clone https://github.com/Fallenbagel/jellyseerr.git && cd jellyseerr
git checkout main
- Then install the dependencies and build the dist
CYPRESS_INSTALL_BINARY=0 yarn install --frozen-lockfile --network-timeout 1000000
yarn run build
-
Now you can start jellyseerr using
yarn startand opening http://localhost:5055 in your browser. -
If you want to run jellyseerr as a Systemd-service:
- assuming jellyseerr was cloned to
/opt/ - first create the environment file at
/etc/jellyseerr/jellyseerr.conf
Environment file:
# Jellyseerr's default port is 5055, if you want to use both, change this.
# specify on which port to listen
PORT=5055
# specify on which interface to listen, by default jellyseerr listens on all interfaces
#HOST=127.0.0.1
# Uncomment if your media server is emby instead of jellyfin.
# JELLYFIN_TYPE=emby
- Then run the command
which nodeto find your node path (assuming it's at/usr/bin/node) - Then create the service file using
sudo systemctl edit jellyseerr.serviceor creating and editing a file at/etc/systemd/system/jellyseerr.service
Service file contents:
[Unit]
Description=Jellyseerr Service
Wants=network-online.target
After=network-online.target
[Service]
EnvironmentFile=/etc/jellyseerr/jellyseerr.conf
Environment=NODE_ENV=production
Type=exec
Restart=on-failure
WorkingDirectory=/opt/jellyseerr
ExecStart=/usr/bin/node dist/index.js
[Install]
WantedBy=multi-user.target
Building develop branch from source (ADVANCED):
Windows
Pre-requisites:
- Nodejs v20
- Pnpm v9
- Download/git clone the source code from the github (Either develop branch or main for stable)
npm i -g win-node-env
set CYPRESS_INSTALL_BINARY=0
pnpm install --frozen-lockfile
pnpm run build
pnpm start
(You can use task scheduler to run a bat script with @echo off and pnpm start to run jellyseerr in the background)
(You can also use nssm to run jellyseerr as a service, see nssm for more information)
https://docs.jellyseerr.dev/getting-started/
Packages:
Archlinux: AUR
Nix: Nixpkg
Snap: Snap(Deprecated)
Preview
Support
- Check out the Jellyseerr Documentation before asking for help. Your question might already be in the docs!
- You can get support on Discord.
- You can ask questions in the Help category of our GitHub Discussions.
- Bug reports and feature requests can be submitted via GitHub Issues.
API Documentation
You can access the API documentation from your local Jellyseerr install at http://localhost:5055/api-docs
Community
You can ask questions, share ideas, and more in GitHub Discussions.
If you would like to chat with other members of our growing community, join the Jellyseerr Discord server!
Our Code of Conduct applies to all Jellyseerr community channels.
Contributing
You can help improve Jellyseerr too! Check out our Contribution Guide to get started.
Contributors ✨
Thanks goes to these wonderful people from Overseerr (emoji key) and all those that contributed directly to Jellyseerr: