Requestarr

module
v0.0.0-...-b95b639 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 1, 2026 License: MIT

README ΒΆ

Requestarr 🎬

A fast, lightweight media request gateway for Sonarr & Radarr. Built in Go for maximum performance.

Docker Image

Requestarr Screenshot

✨ Features

  • πŸš€ Blazing Fast - Built in Go with ~50ms startup time and ~15MB memory usage
  • 🎨 Modern UI - Beautiful, responsive interface for discovering and requesting media
  • πŸ“Ί TV & Movies - Full support for both Sonarr (TV) and Radarr (Movies)
  • πŸ” Discovery - Browse trending, top-rated, and new releases via TMDB
  • ⭐ Ratings - View Rotten Tomatoes, IMDB, and Metacritic scores
  • πŸ”” Notifications - Discord and ntfy.sh support for request alerts
  • πŸ›‘οΈ Admin Panel - Approve/reject requests, configure settings
  • 🐳 Docker Ready - Simple one-command deployment

πŸš€ Quick Start

docker run -d \
  --name requestarr \
  -p 5000:5000 \
  -v $(pwd)/config:/config \
  -e ADMIN_PASSWORD=changeme \
  -e SECRET_KEY=$(openssl rand -hex 32) \
  -e TZ=America/New_York \
  --restart unless-stopped \
  ghcr.io/icaruscore/requestarr:latest

Then open http://localhost:5000 in your browser.

Docker Compose
# Create directory and download compose file
mkdir requestarr && cd requestarr
curl -O https://raw.githubusercontent.com/IcarusCore/Requestarr/main/docker-compose.yml

# Edit configuration
nano docker-compose.yml

# Start
docker compose up -d

πŸ“¦ Installation Methods

Using docker run
docker run -d \
  --name requestarr \
  -p 5000:5000 \
  -v /path/to/config:/config \
  -e ADMIN_PASSWORD=your-secure-password \
  -e SECRET_KEY=your-random-secret-key \
  -e TZ=America/New_York \
  -e SONARR_URL=http://sonarr:8989 \
  -e SONARR_API_KEY=your-sonarr-api-key \
  -e RADARR_URL=http://radarr:7878 \
  -e RADARR_API_KEY=your-radarr-api-key \
  -e TMDB_API_KEY=your-tmdb-api-key \
  --restart unless-stopped \
  ghcr.io/icaruscore/requestarr:latest
Using Docker Compose

Create a docker-compose.yml:

services:
  requestarr:
    image: ghcr.io/icaruscore/requestarr:latest
    container_name: requestarr
    ports:
      - "5000:5000"
    volumes:
      - ./config:/config
    environment:
      - ADMIN_PASSWORD=changeme
      - SECRET_KEY=change-me-please
      - TZ=America/New_York
      # Configure via environment or Web UI:
      # - SONARR_URL=http://sonarr:8989
      # - SONARR_API_KEY=your-api-key
      # - RADARR_URL=http://radarr:7878
      # - RADARR_API_KEY=your-api-key
      # - TMDB_API_KEY=your-tmdb-api-key
    restart: unless-stopped

Then run:

docker compose up -d
Method 2: Build from Source
# Clone the repository
git clone https://github.com/IcarusCore/Requestarr.git
cd Requestarr

# Build (requires Go 1.21+ and GCC)
make build

# Run
./requestarr
Method 3: Build Docker Image Locally
git clone https://github.com/IcarusCore/Requestarr.git
cd Requestarr

docker build -t requestarr .
docker run -d -p 5000:5000 -v $(pwd)/config:/config requestarr

βš™οΈ Configuration

Environment Variables
Variable Default Description
PORT 5000 Port to listen on
DB_PATH /config/requestarr.db SQLite database path
ADMIN_PASSWORD admin Admin panel password
SECRET_KEY change-me... Session encryption key (use random string!)
TZ UTC Timezone (e.g., America/New_York)
SONARR_URL Sonarr URL (e.g., http://sonarr:8989)
SONARR_API_KEY Sonarr API key
RADARR_URL Radarr URL (e.g., http://radarr:7878)
RADARR_API_KEY Radarr API key
TMDB_API_KEY TMDB API key (required for discovery)
MDBLIST_API_KEY MDBList API key (for Rotten Tomatoes ratings)
DISCORD_WEBHOOK Discord webhook URL for notifications
NTFY_URL ntfy server URL (e.g., https://ntfy.sh)
NTFY_TOPIC ntfy topic name
Web UI Configuration

All settings can be configured through the Admin panel:

  1. Open http://YOUR-SERVER:5000
  2. Click the Admin tab
  3. Enter your admin password
  4. Navigate to Settings
  5. Configure your Sonarr, Radarr, TMDB, and notification settings

πŸ”‘ Getting API Keys

TMDB (Required for Discovery)
  1. Go to themoviedb.org
  2. Create a free account
  3. Go to Settings β†’ API β†’ Create β†’ Developer
  4. Copy your API Key (v3 auth)
MDBList (Optional - Rotten Tomatoes Ratings)
  1. Go to mdblist.com
  2. Create a free account
  3. Go to Preferences
  4. Copy your API Key
Sonarr/Radarr
  1. Open your Sonarr/Radarr web UI
  2. Go to Settings β†’ General β†’ Security
  3. Copy the API Key

πŸ”§ Network Configuration

Connecting to Sonarr/Radarr on the Same Docker Network

If Sonarr/Radarr are on a Docker network:

services:
  requestarr:
    image: ghcr.io/icaruscore/requestarr:latest
    networks:
      - arr-network
    environment:
      - SONARR_URL=http://sonarr:8989
      - RADARR_URL=http://radarr:7878
      # ...

networks:
  arr-network:
    external: true
Firewall Configuration
# Ubuntu/Debian with UFW
sudo ufw allow 5000/tcp

# CentOS/RHEL with firewalld
sudo firewall-cmd --permanent --add-port=5000/tcp
sudo firewall-cmd --reload

πŸ“Š Performance

Metric Requestarr (Go) Typical Python Apps
Startup time ~50ms ~2-3 seconds
Memory usage ~15MB ~50-100MB
Binary size ~15MB N/A (requires runtime)
Docker image ~25MB ~200-500MB

πŸ“ Project Structure

Requestarr/
β”œβ”€β”€ cmd/
β”‚   └── server/
β”‚       β”œβ”€β”€ main.go              # Application entry point
β”‚       └── frontend/
β”‚           └── static/
β”‚               └── index.html   # Web UI (embedded)
β”œβ”€β”€ internal/
β”‚   β”œβ”€β”€ cache/                   # In-memory caching
β”‚   β”œβ”€β”€ handlers/                # HTTP request handlers
β”‚   β”œβ”€β”€ models/                  # Database models
β”‚   └── services/                # API integrations
β”‚       β”œβ”€β”€ tmdb.go             # TMDB discovery
β”‚       β”œβ”€β”€ sonarr.go           # Sonarr API
β”‚       β”œβ”€β”€ radarr.go           # Radarr API
β”‚       β”œβ”€β”€ ratings.go          # Ratings (RT/MDBList)
β”‚       └── notifications.go    # Discord/ntfy
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ go.mod
└── README.md

πŸ” Troubleshooting

App won't start
# Check if port is in use
sudo lsof -i :5000

# Check Docker logs
docker logs requestarr
Can't connect to Sonarr/Radarr
  • Ensure URLs are accessible from the container
  • Use container names (not localhost) when on the same Docker network
  • Check API keys are correct
  • Test connection in Admin β†’ Settings
Database errors
# Reset database (will lose all requests)
docker exec requestarr rm /config/requestarr.db
docker restart requestarr

πŸ”„ Updating

# Docker Compose
docker compose pull
docker compose up -d

# Docker Run
docker pull ghcr.io/icaruscore/requestarr:latest
docker stop requestarr
docker rm requestarr
# Re-run your docker run command

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

MIT License - feel free to use, modify, and distribute.


Made with ❀️ for the self-hosted community

Directories ΒΆ

Path Synopsis
cmd
server command
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL