Bobarr

Replace multiple media managers with a single Docker-based solution. Search, organize, and download movies and TV shows securely through an integrated VPN.

Manage your entire media collection with a comprehensive, Docker-based solution designed for BitTorrent users. Instead of configuring multiple separate applications, this platform combines everything into a single, cohesive interface. It connects directly to TMDB to help you discover new content and automatically searches your favorite trackers for the best available matches.

Experience a simplified setup process that removes the hassle of linking disparate services. Key benefits include:

  • Unified Media Management: Handle both movies and TV shows in one centralized location without needing separate instances.
  • Integrated VPN Support: Route all download traffic securely through OpenVPN or WireGuard right out of the box.
  • Automated Organization: Automatically move, copy, or symlink downloaded files into your existing library folders.
  • Built-in Components: Comes pre-configured with essential tools like Jackett and Transmission.

Enjoy a faster, cleaner user interface that requires minimal configuration while providing maximum control over your media library.

Directory Structure

bobarr
data
downloads
elasticsearch
jackett
postgres
transmission
watch
vpn
.env
docker-compose.yml

docker-compose.yml

services:
  vpn:
    image: dperson/openvpn-client
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun
    volumes:
      - ./vpn:/vpn
    security_opt:
      - label:disable
    ports:
      - 9091:9091
    environment:
      - VPN_AUTH=${VPN_AUTH}
    command: -f ""
    restart: unless-stopped

  transmission:
    image: linuxserver/transmission
    network_mode: service:vpn
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    volumes:
      - ./data/transmission/config:/config
      - ./data/downloads:/downloads
      - ./data/watch:/watch
    restart: unless-stopped

  jackett:
    image: linuxserver/jackett
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    volumes:
      - ./data/jackett/config:/config
      - ./data/downloads:/downloads
    ports:
      - 9117:9117
    restart: unless-stopped

  postgres:
    image: postgres:12-alpine
    environment:
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=${DB_NAME}
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    restart: unless-stopped

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - ./data/elasticsearch:/usr/share/elasticsearch/data
    restart: unless-stopped

  api:
    image: iam4x/bobarr-api
    depends_on:
      - postgres
      - elasticsearch
      - transmission
      - jackett
    environment:
      - NODE_ENV=production
      - TMDB_API_KEY=${TMDB_API_KEY}
      - DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/${DB_NAME}
      - ELASTICSEARCH_URL=http://elasticsearch:9200
      - TRANSMISSION_HOST=vpn
      - TRANSMISSION_PORT=9091
      - JACKETT_HOST=jackett
      - JACKETT_PORT=9117
      - JACKETT_API_KEY=${JACKETT_API_KEY}
    ports:
      - 4000:4000
    restart: unless-stopped

  web:
    image: iam4x/bobarr-web
    depends_on:
      - api
    ports:
      - 3000:3000
    restart: unless-stopped

.env

PUID=1000
PGID=1000
TZ=Europe/Paris

# Database Configuration
DB_USER=bobarr
DB_PASSWORD=bobarr_password
DB_NAME=bobarr

# API Keys
TMDB_API_KEY=your_tmdb_api_key_here
JACKETT_API_KEY=your_jackett_api_key_here

# VPN Configuration (user;password)
VPN_AUTH=vpn_user;vpn_password
Categories:

Share:

Ad
Favicon

 

  
 

Similar to Bobarr

Favicon

 

  
  
Favicon

 

  
  
Favicon