Build from Source (Advanced)
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
- 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
- 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
- Install the dependencies:
CYPRESS_INSTALL_BINARY=0 pnpm install --frozen-lockfile
- Build the project:
pnpm build
- Start Jellyseerr:
pnpm start
You can now access Jellyseerr by visiting http://localhost:5055
in your web browser.
Extending the installation
- Linux
- macOS
- PM2
To run jellyseerr as a systemd service:
- 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
- Then run the following commands:
which node
Copy the path to node, it should be something like /usr/bin/node
.
- Create the systemd service file at
/etc/systemd/system/jellyseerr.service
, using eithersudo systemctl edit jellyseerr
orsudo 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
If you are using a different path to node, replace /usr/bin/node
with the path to node.
- Enable and start the service:
sudo systemctl enable jellyseerr
sudo systemctl start jellyseerr
To run jellyseerr as a launchd service:
- Find the path to node:
which node
Copy the path to node, it should be something like /usr/local/bin/node
.
- Create a launchd plist file at
~/Library/LaunchAgents/com.jellyseerr.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.jellyseerr</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/node</string>
<string>/opt/jellyseerr/dist/index.js</string>
</array>
<key>WorkingDirectory</key>
<string>/opt/jellyseerr</string>
<key>EnvironmentVariables</key>
<dict>
<key>NODE_ENV</key>
<string>production</string>
<key>PORT</key>
<string>5055</string>
</dict>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
If you are using a different path to node, replace /usr/local/bin/node
with the path to node.
- Load the service:
sudo launchctl load ~/Library/LaunchAgents/com.jellyseerr.plist
- Start the service:
sudo launchctl start com.jellyseerr
- To ensure the service starts on boot, run the following command:
sudo lauchctl load
To run jellyseerr as a PM2 service:
- Install PM2:
npm install -g pm2
- Start jellyseerr with PM2:
pm2 start dist/index.js --name jellyseerr --node-args="--NODE_ENV=production"
- Save the process list:
pm2 save
- Ensure PM2 starts on boot:
pm2 startup
Managing the service
- To start the service:
pm2 start jellyseerr
- To stop the service:
pm2 stop jellyseerr
- To restart the service:
pm2 restart jellyseerr
- To view the logs:
pm2 logs jellyseerr
- To view the status:
pm2 status jellyseerr
Windows
Installation
- Assuming you want the working directory to be
C:\jellyseerr
, create the directory and navigate to it:
mkdir C:\jellyseerr
cd C:\jellyseerr
- 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
- Install the dependencies:
npm install -g win-node-env
set CYPRESS_INSTALL_BINARY=0 && pnpm install --frozen-lockfile
- Build the project:
pnpm build
- Start Jellyseerr:
pnpm start
You can add the environment variables to a .env
file in the Jellyseerr directory.
You can now access Jellyseerr by visiting http://localhost:5055
in your web browser.
Extending the installation
- Task Scheduler
- NSSM
- PM2
To run jellyseerr as a bat script:
- Create a file named
start-jellyseerr.bat
in the jellyseerr directory:
@echo off
set PORT=5055
set NODE_ENV=production
node dist/index.js
- 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.
To run jellyseerr as a service:
- Download the Non-Sucking Service Manager
- Install NSSM:
nssm install Jellyseerr "C:\Program Files\nodejs\node.exe" ["C:\jellyseerr\dist\index.js"]
nssm set Jellyseerr AppEnvironmentExtra NODE_ENV=production
- Start the service:
nssm start Jellyseerr
- To ensure the service starts on boot, run the following command:
nssm set Jellyseerr Start SERVICE_AUTO_START
To run jellyseerr as a PM2 service:
- Install PM2:
npm install -g pm2
- Start jellyseerr with PM2:
pm2 start dist/index.js --name jellyseerr --node-args="--NODE_ENV=production"
- Save the process list:
pm2 save
- Ensure PM2 starts on boot:
pm2 startup
Managing the service
- To start the service:
pm2 start jellyseerr
- To stop the service:
pm2 stop jellyseerr
- To restart the service:
pm2 restart jellyseerr
- To view the logs:
pm2 logs jellyseerr
- To view the status:
pm2 status jellyseerr
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.