Sign inSign up

jamtur01/prowlarr-orionoid

By jamtur01

Updated 7 months ago

Image
0

7.0K

jamtur01/prowlarr-orionoid repository overview

Prowlarr-Orionoid Bridge

Version CI Build Docker Pulls Docker Image Size

A Torznab/Newznab compatible indexer service that allows Prowlarr to use Orionoid as an indexer. This service translates between Prowlarr's indexer protocol and Orionoid's API.

Features

  • Full Torznab/Newznab protocol support
  • Search by query, IMDb ID, TVDB ID, and TMDB ID
  • Support for movies and TV shows
  • Configurable search limits
  • Docker containerization
  • Comprehensive health check endpoint with detailed status reporting
  • Optional API key authentication
  • Multi-architecture support (amd64, arm64, arm/v7)

Quick Start

docker run -d \
  --name prowlarr-orionoid \
  -p 8080:8080 \
  -e ORIONOID_USER_API_KEY=your_user_api_key \
  jamtur01/prowlarr-orionoid:latest
Using Docker Compose

Create a docker-compose.yml file:

services:
  prowlarr-orionoid:
    image: jamtur01/prowlarr-orionoid:latest
    container_name: prowlarr-orionoid
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - ORIONOID_USER_API_KEY=your_user_api_key

Then run:

docker-compose up -d

Prerequisites

  1. Orionoid Account: You need an active Orionoid account with API access
  2. Orionoid User API Key: Get from your Orionoid account settings (this is unique to you)

Configuration

Environment Variables
VariableRequiredDefaultDescription
ORIONOID_USER_API_KEYYes-Your Orionoid user API key
SERVICE_PORTNo8080Port to run the service on
SERVICE_HOSTNo0.0.0.0Host to bind the service to
PROWLARR_API_KEYNo-Optional API key for Prowlarr authentication
DEFAULT_SEARCH_LIMITNo100Default number of results to return
MAX_SEARCH_LIMITNo1000Maximum allowed search results
LOG_LEVELNoINFOLogging level (DEBUG, INFO, WARNING, ERROR)

Adding to Prowlarr

  1. In Prowlarr, go to SettingsIndexers

  2. Click the + button to add a new indexer

  3. Select TorznabCustom Torznab

  4. Configure the indexer:

    • Name: Orionoid
    • Enable RSS: Yes (if desired)
    • Enable Automatic Search: Yes
    • Enable Interactive Search: Yes
    • URL: http://localhost:8080 (or your Docker host IP)
    • API Path: /api
    • API Key: Leave blank unless you set PROWLARR_API_KEY
    • Categories: Select desired categories (Movies, TV, etc.)
  5. Click Test to verify the connection

  6. Save the indexer

Supported Architectures

This image supports multiple architectures:

  • linux/amd64 - Standard x86-64
  • linux/arm64 - ARM 64-bit (Raspberry Pi 4, Apple Silicon)
  • linux/arm/v7 - ARM 32-bit (Raspberry Pi 2/3)

API Endpoints

Health Check
GET /health
GET /health?force=true

Returns detailed health status including Orionoid connectivity, authentication status, and service uptime.

Capabilities
GET /api?t=caps

Returns the indexer capabilities (supported search types, categories, etc.)

GET /api?t=search&q=query

General search across all categories

GET /api?t=tvsearch&q=query&season=1&ep=1
GET /api?t=tvsearch&tvdbid=12345&season=1&ep=1

Search for TV shows with optional season/episode filtering

GET /api?t=movie&q=query
GET /api?t=movie&imdbid=tt1234567

Search for movies

Building from Source

Using Docker
git clone https://github.com/jamtur01/prowlarr-orionoid.git
cd prowlarr-orionoid
docker build -t prowlarr-orionoid .
docker run -d \
  --name prowlarr-orionoid \
  -p 8080:8080 \
  -e ORIONOID_USER_API_KEY=your_user_api_key \
  prowlarr-orionoid
Running Locally
  1. Install Python 3.11 or higher

  2. Clone the repository:

    git clone https://github.com/jamtur01/prowlarr-orionoid.git
    cd prowlarr-orionoid
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Create a .env file:

    ORIONOID_USER_API_KEY=your_user_api_key
    
  5. Run the service:

    python main.py
    

Troubleshooting

Service won't start
  • Check that your Orionoid API keys are correct
  • Verify the port isn't already in use
  • Check Docker logs: docker logs prowlarr-orionoid
No results returned
  • Verify your Orionoid account has API access
  • Check that you haven't exceeded your daily API limits
  • Try searching with different queries or IDs
Prowlarr connection test fails
  • Ensure the service is running and accessible
  • Check the URL and port are correct
  • Verify any API key is correctly configured
Health check failing
  • Check /health endpoint for detailed error information
  • Verify Orionoid API keys are valid
  • Ensure network connectivity to Orionoid API

Development

Project Structure
prowlarr-orionoid/
├── main.py              # FastAPI application
├── orionoid_client.py   # Orionoid API client
├── torznab_builder.py   # Torznab XML response builder
├── config.py            # Configuration management
├── __version__.py       # Version information
├── requirements.txt     # Python dependencies
├── Dockerfile          # Docker container definition
├── docker-compose.yml  # Docker Compose configuration
├── CHANGELOG.md        # Version history
└── README.md          # This file
Contributing
  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is provided as-is for educational and personal use. Please respect Orionoid's terms of service and API usage limits.

Tag summary

Content type

Image

Digest

sha256:a82627dc2

Size

131.4 MB

Last updated

7 months ago

docker pull jamtur01/prowlarr-orionoid