Giter VIP home page Giter VIP logo

iam4x / bobarr Goto Github PK

View Code? Open in Web Editor NEW
1.4K 25.0 84.0 3.18 MB

๐Ÿฟ The all-in-one alternative for Sonarr, Radarr, Jackett... with a VPN and running in docker

License: MIT License

JavaScript 0.37% Dockerfile 0.17% TypeScript 98.22% Shell 1.24%
torrent tmdb vpn sonarr radarr plex jackett typescript graphql nextjs docker torrent-downloader wireguard docker-compose movies tvshow torrent-tracker flaresolverr

bobarr's Introduction

๐Ÿฟ Bobarr

The all-in-one alternative for Sonarr, Radarr, Jackett... with a VPN and running in docker

Bobarr is a movies and tv shows collection manager for BitTorrent users. It uses themoviedb.org to search movies and tv shows to add to your library. Then it searches into your favorites torrent trackers the best match and downloads it for you through a VPN.

Screenshot

This is a beta release!

Need help? Join the discord => https://discord.gg/PFwM4zk

Why ?

One of the main idea for bobarr is to be simple to setup, simple to use and having everything at the same place. You don't have to choose a torrent client, to setup a VPN, to setup radarr, sonarr, then jackett and connect them all together.

It's also built from scratch and it will try to solve long term problem like download multiple qualities and keep them or managing tv shows and movies at the same place. You can follow the roadmap to check what next features are implemented.

And to have something with a better UI, less configuration and faster ๐Ÿš€

Setup

Requirement

Installation

Run the installation script and follow the instructions:

  • curl -o- https://raw.githubusercontent.com/iam4x/bobarr/master/scripts/install.sh | bash

Configuration

  • Update your config in .env

Link your existing library if any (from Sonarr or Raddar)

  • Open docker-compose.yml and look for - ./library:/usr/library
  • Update ./library to the folder where your (/movies & /tvshows) are

As example, having:

/mnt/storage/
|- movies/
|- tvshows/

The line should be: - /mnt/storage:/usr/library

How to start

There are two way to start bobarr stack, first without VPN:

If you want to enforce all torrent traffic through a VPN:

OpenVPN

  • Copy your open vpn config file (.ovpn) into the folder packages/vpn name it vpn.conf
  • $ ./bobarr.sh start:vpn

WireGuard

  • Copy your wireguard config file (wg0.conf) into the folder packages/vpn
  • $ ./bobarr.sh start:wireguard

Configuration

Torrent account

Bobarr configuration

  • Go to http://localhost:3000/settings
  • Set your region and language according to your torrent tracker
  • Create and order your preferred tags found in torrent file (ex: vost, multi, english...)
  • Order your preferred qualities to download

Usage

  • After configuration, go to http://localhost:3000/search and just start searching!
  • The files will be downloaded into library/downloads
  • The files will be moved/copied/simlinked (you can set this in settings) and organized into library/tvshows or library/movies

The only requirement is to have a folder tvshows and a folder movies then bobarr can catch up and download to your user defined library folder.

If your movies or tvshow folder have a different name, you can edit .env file with your folder names:

LIBRARY_MOVIES_FOLDER_NAME=movies
LIBRARY_TV_SHOWS_FOLDER_NAME=tvshows

You can now head to http://localhost:3000 and hit that "Scan library folder" button.

How to stop

You can stop the whole bobarr stack with:

  • $ ./bobarr.sh stop

How to update

Check the CHANGELOG and update your .env if needed with new variables added.

  • $ ./bobarr.sh update
  • $ ./bobarr.sh start

Services

Development

Clone the repository and then you can run bobarr API and Web UI in dev watch mode and display logs with:

  • $ yarn dev

bobarr's People

Contributors

adrienjoly avatar danmossa avatar dependabot[bot] avatar iam4x avatar korbeil avatar lachlan2k avatar nelinski avatar ohkeenan avatar oratorian avatar rasoul-shahriari avatar tetreum avatar vvo avatar welcomattic avatar z7shahriar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bobarr's Issues

Ability to choose video quality.

Unless I missed it, when you add the selection to your library it automatically chooses the file to download. In my first test case it looks like 4k. I normally choose 720P or 1080P for storage and trans-coding reasons. Would be great to have a setting similar to sonarr where you can set that.

Great work so far!

Missing info in doc : vpn.conf

I had to rename my xxxxx.ovpn file to vpn.conf for the vpn to work, but it is not mentioned anywhere in the README (I had to look at the vpn container logs to understand that).

not downloading ?

Hi!

After following the instructions from the README, I'm running bobarr on my Mac, without VPN.

But I don't see anything being downloaded...

How to reproduce:

  1. go to http://localhost:3000/search
  2. click on "ad astra", to add it to the library
  3. make sure that it's listed in http://localhost:3000/library/movies
  4. in the download section of http://localhost:4000/jobs, I see "1 completed" and "1 delayed"

image

image

  1. and I don't see anything in transmission: http://localhost:9091/transmission/web/

expected behavior

I expected that the download would start immediately, or get some feedback about when it's supposed to start, or about any error that may have happened.

Settings options are blank

I ran into some issues that required me to nuke the entire project, containers, images, volumes etc. I tired to clone the repo, add my vpn settings, user id and then compose with vpn. Runs compose but then shows the following errors:

Status: Downloaded newer image for node:12
---> 0c601cba9f11
Step 2/9 : ENV PORT 3000
---> Running in 6813f55a3c9c
Removing intermediate container 6813f55a3c9c
---> 1960b76219cb
Step 3/9 : EXPOSE 3000
---> Running in b6a1d5911d42
Removing intermediate container b6a1d5911d42
---> 6e31827e48eb
Step 4/9 : WORKDIR /usr/src/app
---> Running in 129aa8bf8e34
Removing intermediate container 129aa8bf8e34
---> ef4993876a5e
Step 5/9 : COPY package*.json ./
---> d1135873aa71
Step 6/9 : RUN yarn
---> Running in 552594b04324
yarn install v1.22.4
info No lockfile found.
[1/4] Resolving packages...
warning antd > omit.js > babel-runtime > [email protected]: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
warning next > @ampproject/toolbox-optimizer > css > [email protected]: Please see https://github.com/lydell/urix#deprecated
warning next > @ampproject/toolbox-optimizer > css > source-map-resolve > [email protected]: Please see https://github.com/lydell/urix#deprecated
warning next > @ampproject/toolbox-optimizer > css > source-map-resolve > [email protected]: https://github.com/lydell/resolve-url#deprecated
warning react-masonry-component > create-react-class > fbjs > [email protected]: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
warning @graphql-codegen/cli > [email protected]: request has been deprecated, see request/request#3142
warning @graphql-codegen/cli > @graphql-toolkit/common > [email protected]: graphql-tools-fork has been merged into upstream graphql-tools@5
warning @graphql-codegen/cli > @graphql-toolkit/url-loader > [email protected]: graphql-tools-fork has been merged into upstream graphql-tools@5
warning @graphql-codegen/cli > @graphql-toolkit/core > @graphql-toolkit/schema-merging > [email protected]: graphql-tools-fork has been merged into upstream graphql-tools@5
warning @graphql-codegen/fragment-matcher > @graphql-codegen/plugin-helpers > @graphql-toolkit/common > [email protected]: graphql-tools-fork has been merged into upstream graphql-tools@5
warning @graphql-codegen/typescript > @graphql-codegen/visitor-plugin-common > @graphql-toolkit/relay-operation-optimizer > relay-compiler > fbjs > [email protected]: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > @apollo/[email protected]" has unmet peer dependency "apollo-utilities@^1.3.2".
warning " > [email protected]" has unmet peer dependency "react-is@>= 16.8.0".
[4/4] Building fresh packages...

plus

Building api
Step 1/9 : FROM node:12
---> 0c601cba9f11
Step 2/9 : ENV PORT 4000
---> Running in 687d4cbcad59
Removing intermediate container 687d4cbcad59
---> 7e437b28119f
Step 3/9 : EXPOSE 4000
---> Running in ff396cb7a00f
Removing intermediate container ff396cb7a00f
---> 62141564d8fa
Step 4/9 : WORKDIR /usr/src/app
---> Running in d33c2a9af1dc
Removing intermediate container d33c2a9af1dc
---> 8fa1f956678f
Step 5/9 : COPY package*.json ./
---> 6658d86cf5c9
Step 6/9 : RUN yarn
---> Running in 64440b1e0f66
yarn install v1.22.4
info No lockfile found.
[1/4] Resolving packages...
warning @nestjs/graphql > merge-graphql-schemas > @graphql-toolkit/schema-merging > [email protected]: graphql-tools-fork has been merged into upstream graphql-tools@5
warning @nestjs/graphql > merge-graphql-schemas > @graphql-toolkit/schema-merging > @graphql-toolkit/common > [email protected]: graphql-tools-fork has been merged into upstream graphql-tools@5
warning [email protected]: request has been deprecated, see request/request#3142
warning @nestjs/cli > fork-ts-checker-webpack-plugin > micromatch > snapdragon > source-map-resolve > [email protected]: https://github.com/lydell/resolve-url#deprecated
warning @nestjs/cli > fork-ts-checker-webpack-plugin > micromatch > snapdragon > source-map-resolve > [email protected]: Please see https://github.com/lydell/urix#deprecated
warning @types/[email protected]: This is a stub types definition. dotenv provides its own type definitions, so you do not need this installed.
[2/4] Fetching packages...

the rest of the steps run ok and i'm able to navigate to the bobarr search from there i go to settings and there are no fields for me to adjust.

I've completely removed docker, tried again and even wiped my linux build and started from scratch still no joy

Magnet error

Im getting the following error when im trying to download something.

Unsupported protocol magnet: Error: Unsupported protocol magnet: at RedirectableRequest._performRequest (/usr/src/app/node_modules/follow-redirects/index.js:156:24) at RedirectableRequest._processResponse (/usr/src/app/node_modules/follow-redirects/index.js:260:10) at ClientRequest.RedirectableRequest._onNativeResponse (/usr/src/app/node_modules/follow-redirects/index.js:50:10) at Object.onceWrapper (events.js:417:26) at ClientRequest.emit (events.js:310:20) at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:603:27) at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17) at Socket.socketOnData (_http_client.js:476:22) at Socket.emit (events.js:310:20) at addChunk (_stream_readable.js:286:12)

Windows support

I don't know much about Docker. So does this thing work on Windows?
I would like to open/close all of these programs with one click.

improve progress display when there's a lot of data

  • add a state "SEARCHING" when a media is first added so it's not pick up by the download missing job and neither in ui
  • display in the ui the searching media as in progress job
  • aggregate searching/downloading episodes of same tvshow

Usenet support

Do you have plans to add support to Usenet like Radarr and Sonarr does?

improve multiple trackers search through jackett

Right now we search through all indexers into jackett, this is not recommended way to do and there's room for improvement, see how tornzab is implemented for sonarr (https://github.com/Sonarr/Sonarr/wiki/Implementing-a-Torznab-indexer)

  • user as multiple torrent websites added in jackett
  • search through each and stop when we have one compatible result to download

Settings page : There's no field to update the jackett API key

Hi !

In the installation steps :
""""
Installation

Clone the repo $ git clone https://github.com/iam4x/bobarr.git && cd bobarr

Set PUID and PGID in .env (see .env for explanation)

Start the bobarr minimal stack $ docker-compose up --build -d (see below to add vpn)

Go to http://localhost:9117 and copy the API Key in top right corner

Go to http://localhost:3000/settings and update the jackett API key

"""""

The step : "go to .. setting and update the jacket api key" ==> There's no field to update that information.
(see screenshot for proof). 2020-04-14_13-50-03

Test with :
Firefox : Linux and Windows
Chrome (on OSX + Android)

Details
$ date
Tue Apr 14 14:05:55 EDT 2020

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Running on Docker
Docker version 19.03.6, build 369ce74a3c

Multiple Quality downloads

Hi Iam4x, a strong feature would be to attach multiple quality profiles to a movie/show for more than 1 copy. Example a 4K HDR profile and a 1080p copy for external streaming.

My fingers are crossed :)

Great work so far

refresh season new episodes job

when a season is not ended new episodes may appear on tmdb and we need to add to them in the databse to be tracked for auto-download

better settings ui

  • make select for language and region (based on tmdb regions/languages)
  • use slider for max download size

Without Docker?

I currently run Sonarr/Radarr/Lidarr/Jackett/Transmission on Windows and like the idea of trying out bobarr.
I don't really want to have any duplication of jackett and transmission though, and tend to avoid docker (I'm sure it has great uses, but often feels like unneccessary abstraction and complication).

I understand the 'bundled' nature of the bobarr stack, getting everything talking the first time I installed it all did involve a learning curve.. but is there any way bobarr could be installed/run on windows without docker and the rest of the 'stack'?
..ideally as its own .exe/service as with sonarr/radarr/lidarr, using my existing jackett & transmission?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.