Skip to main content

Build from Source (Advanced)

warning

This method is not recommended for most users. It is intended for advanced users who are familiar with managing their own server infrastructure.

Prerequisites

Unix (Linux, macOS)

Installation

  1. Assuming you want the working directory to be /opt/jellyseerr, create the directory and navigate to it:
sudo mkdir -p /opt/jellyseerr && cd /opt/jellyseerr
  1. Clone the Jellyseerr repository and checkout the develop branch:
git clone https://github.com/Fallenbagel/jellyseerr.git
cd jellyseerr
git checkout develop # by default, you are on the develop branch so this step is not necessary
  1. Install the dependencies:
CYPRESS_INSTALL_BINARY=0 pnpm install --frozen-lockfile
  1. Build the project:
pnpm build
  1. Start Jellyseerr:
pnpm start
info

You can now access Jellyseerr by visiting http://localhost:5055 in your web browser.

Extending the installation

To run jellyseerr as a systemd service:

  1. create the environment file at /etc/jellyseerr/jellyseerr.conf:
## 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

## Uncomment if you want to force Node.js to resolve IPv4 before IPv6 (advanced users only)
# FORCE_IPV4_FIRST=true
  1. Then run the following commands:
which node

Copy the path to node, it should be something like /usr/bin/node.

  1. Create the systemd service file at /etc/systemd/system/jellyseerr.service, using either sudo systemctl edit jellyseerr or sudo nano /etc/systemd/system/jellyseerr.service:
[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
note

If you are using a different path to node, replace /usr/bin/node with the path to node.

  1. Enable and start the service:
sudo systemctl enable jellyseerr
sudo systemctl start jellyseerr

Windows

Installation

  1. Assuming you want the working directory to be C:\jellyseerr, create the directory and navigate to it:
mkdir C:\jellyseerr
cd C:\jellyseerr
  1. Clone the Jellyseerr repository and checkout the develop branch:
git clone https://github.com/Fallenbagel/jellyseerr.git .
git checkout develop # by default, you are on the develop branch so this step is not necessary
  1. Install the dependencies:
npm install -g win-node-env
set CYPRESS_INSTALL_BINARY=0 && pnpm install --frozen-lockfile
  1. Build the project:
pnpm build
  1. Start Jellyseerr:
pnpm start
tip

You can add the environment variables to a .env file in the Jellyseerr directory.

info

You can now access Jellyseerr by visiting http://localhost:5055 in your web browser.

Extending the installation

To run jellyseerr as a bat script:

  1. Create a file named start-jellyseerr.bat in the jellyseerr directory:
@echo off
set PORT=5055
set NODE_ENV=production
node dist/index.js
  1. Create a task in Task Scheduler:
  • Open Task Scheduler
  • Click on "Create Basic Task"
  • Name the task "Jellyseerr"
  • Set the trigger to "When the computer starts"
  • Set the action to "Start a program"
  • Set the program/script to the path of the start-jellyseerr.bat file
  • Set the "Start in" to the jellyseerr directory.
  • Click "Finish"

Now, Jellyseerr will start when the computer boots up in the background.

Updating

To update Jellyseerr, navigate to the Jellyseerr directory and run the following commands:

git pull

Then, follow the steps in the installation section to rebuild and restart Jellyseerr.