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
- Latest
- Develop
Unix (Linux, macOS)
Installation
- latest
- develop
- 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 latest release:
git clone https://github.com/Fallenbagel/jellyseerr.git
cd jellyseerr
git checkout main
- Install the dependencies:
CYPRESS_INSTALL_BINARY=0 yarn install --frozen-lockfile --network-timeout 1000000
- Build the project:
yarn build
- Start Jellyseerr:
yarn start
- 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
- latest
- develop
- 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 latest release:
git clone https://github.com/Fallenbagel/jellyseerr.git .
git checkout main
- Install the dependencies:
npm install -g win-node-env
set CYPRESS_INSTALL_BINARY=0 && yarn install --frozen-lockfile --network-timeout 1000000
- Build the project:
yarn build
- Start Jellyseerr:
yarn start
- 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 - 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.