An AI driven recommendation system based on Radarr and Sonarr library information
500K+
Recommendarr is a web application that generates personalized TV show and movie recommendations based on your Sonarr, Radarr, Plex, and Jellyfin libraries using AI.
⚠️ IMPORTANT: When accessing this application from outside your network, you must open the application port on your router/firewall (default: 3000).
⚠️ PORT CONFIGURATION: The application now uses a single port (default: 3000) for both the frontend and API, configurable via the
PORTenvironment variable.
The simplest way to get started with Recommendarr:
# Pull and run with default port 3000
docker run -d \
--name recommendarr \
-p 3000:3000 \
-v recommendarr-data:/app/server/data \
tannermiddleton/recommendarr:latest
# Or run with a custom port (e.g., 8080)
docker run -d \
--name recommendarr \
-e PORT=8080 \
-p 8080:8080 \
-v recommendarr-data:/app/server/data \
tannermiddleton/recommendarr:latest
Then visit http://localhost:3000 (or your custom port) in your browser.
Default Login:
admin1234⚠️ IMPORTANT: Please change your password immediately after your first login for security reasons.
If you prefer using Docker Compose:
# Clone the repository (which includes the docker-compose.yml file)
git clone https://github.com/fingerthief/recommendarr.git
cd recommendarr
# Start the application
docker-compose up -d
This will:
Then visit http://localhost:3000 (or your custom port if configured) in your browser.
You can customize the port by setting the PORT environment variable before running docker-compose:
PORT=8080 docker-compose up -d
If you want to build the Docker image yourself:
# Clone the repository
git clone https://github.com/fingerthief/recommendarr.git
cd recommendarr
# Build the Docker image
docker build -t recommendarr:local .
# Run the container with default port
docker run -d \
--name recommendarr \
-p 3000:3000 \
-v recommendarr-data:/app/server/data \
recommendarr:local
# Or run with custom port
docker run -d \
--name recommendarr \
-e PORT=8080 \
-p 8080:8080 \
-v recommendarr-data:/app/server/data \
recommendarr:local
For development or if you prefer not to use Docker:
git clone https://github.com/fingerthief/recommendarr.git
cd recommendarr
npm install
npm run build
npm run unified
http://localhost:3000 (or your custom port if configured) in your browser.http://localhost:8989 or https://sonarr.yourdomain.com)http://localhost:7878 or https://radarr.yourdomain.com)http://localhost:32400 or https://plex.yourdomain.com)http://localhost:8096 or https://jellyfin.yourdomain.com)http://localhost:8181 or https://tautulli.yourdomain.com)You can connect to any combination of these services based on your needs.
https://api.openai.com/v1. For local models, use your server URL (e.g., http://localhost:1234/v1)If you want to run Recommendarr behind a reverse proxy (like Nginx, Traefik, or Caddy), follow these steps:
# Build with your public URL
docker build -t recommendarr:custom \
--build-arg PUBLIC_URL=https://recommendarr.yourdomain.com \
--build-arg BASE_URL=/ \
.
# Run with reverse proxy configuration
docker run -d \
--name recommendarr \
-p 3000:3000 \
-e PUBLIC_URL=https://recommendarr.yourdomain.com \
-e FORCE_SECURE_COOKIES=true \
-v recommendarr-data:/app/server/data \
recommendarr:custom
For Nginx:
server {
listen 443 ssl;
server_name recommendarr.yourdomain.com;
# SSL configuration
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
For Docker Compose:
services:
recommendarr:
build:
context: .
args:
- PUBLIC_URL=https://recommendarr.yourdomain.com
- BASE_URL=/
ports:
- "3000:3000"
# This allows accessing services on the host machine
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
- NODE_ENV=production
- DOCKER_ENV=true
- PORT=3000
- PUBLIC_URL=https://recommendarr.yourdomain.com
# Enable secure cookies when behind HTTPS reverse proxy
- FORCE_SECURE_COOKIES=true
volumes:
- recommendarr-data:/app/server/data
restart: unless-stopped
volumes:
recommendarr-data:
| Variable | Description | Default |
|---|---|---|
PORT | The port to run both frontend and API | 3000 |
PUBLIC_URL | The public URL where the app is accessible | http://localhost:${PORT} |
BASE_URL | Base path for the application (for sub-path deployment) | / |
FORCE_SECURE_COOKIES | Force secure cookies even on HTTP (for HTTPS reverse proxies) | false |
NODE_ENV | Node.js environment | production |
DOCKER_ENV | Flag to enable Docker-specific features | true |
Recommendarr works with various AI services:
Here are some recommendations for models that work well with Recommendarr:
For best results, try setting max tokens to 4000 and temperature between 0.6-0.8 depending on the model.
If you're using a reverse proxy with HTTPS and get errors like:
cookie "auth_token" has been rejected because a non-https cookie can't be set "secure"
This happens when your reverse proxy terminates HTTPS but forwards the request to the container as HTTP. To fix this:
FORCE_SECURE_COOKIES=true environment variable to your docker-compose.yml or docker run command:environment:
- FORCE_SECURE_COOKIES=true
proxy_set_header X-Forwarded-Proto $scheme;
For development purposes, you can run the frontend and backend separately:
# Run both frontend and backend in development mode
npm run dev
# Or run them separately:
# Frontend dev server with hot reloading
npm run serve
# Backend API server
npm run api
The development server will use port 8080 for the frontend with hot reloading, and port 3050 for the API. In production, both run on a single port.
This project is licensed under the MIT License - see the LICENSE file for details.
Content type
Image
Digest
sha256:c946dd245…
Size
104 MB
Last updated
over 1 year ago
docker pull tannermiddleton/recommendarr