Giter Club home page Giter Club logo

iceberg's Introduction

GitHub Repo stars Issues License Contributors Discord

Plex torrent streaming through Real Debrid and 3rd party services like Overseerr, Mdblist, etc.

Rewrite of plex_debrid project.

Services currently supported:

  • Real Debrid
  • Plex
  • Overseerr
  • Mdblist
  • Plex Watchlist RSS
  • Torrentio
  • Orionoid
  • Jackett
  • Listrr
  • and more to come!

Check out out Project Board to stay informed!

Please add feature requests and issues over on our Issue Tracker or join our Discord to chat with us!

We are constantly adding features and improvements as we go along and squashing bugs as they arise.


Table of Contents


Docker Compose

Create a docker-compose.yml file with the following contents:

version: "3.8"

services:
    iceberg:
        image: spoked/iceberg:latest
        container_name: iceberg
        restart: unless-stopped
        environment:
            PUID: "1000"
            PGID: "1000"
            ORIGIN: "http://localhost:3000" # read below for more info
        ports:
            - "3000:3000"
        volumes:
            - ./data:/iceberg/data
            - /mnt:/mnt

Then run docker compose up -d to start the container in the background. You can then access the web interface at http://localhost:3000 or whatever port and origin you set in the docker-compose.yml file.

What is ORIGIN ?

ORIGIN is the URL of the frontend on which you will access it from anywhere. If you are hosting Iceberg on a vps with IP address 134.32.24.44 then you will need to set the ORIGIN to http://134.32.24.44:3000 (no trailing slash). Similarly, if using a domain name, you will need to set the ORIGIN to http://iceberg.mydomain.com:3000 (no trailing slash). If you change the port in the docker-compose.yml file, you will need to change it in the ORIGIN as well.

Running outside of Docker

To run outside of docker you will need to have node (v18.13+) and python (3.10+) installed. Then clone the repository

git clone https://github.com/dreulavelle/iceberg.git

and open two terminals in the root of the project and run the following commands in each.

First terminal:

cd frontend
npm install
npm run build
ORIGIN=http://localhost:3000 node build

Read above for more info on ORIGIN.

Second terminal:

pip install -r requirements.txt
python backend/main.py

Symlinking settings

"host_mount" should point to your rclone mount that has your torrents on your host, if you are using native webdav set webdav-url to "https://dav.real-debrid.com/torrents"

"container_mount" should point to the location of the mount in plex container

Example:

Rclone is mounted to /iceberg/vfs on your host machine -> settings should have: "host_mount": "/iceberg/vfs"

Plex container volume configuration for rclone mount is "/iceberg/vfs:/media/vfs" -> settings should have: "container_mount": "/media/vfs"

Plex libraries you want to add to sections: movies -> /media/library/movies, shows -> /media/library/shows


Development

You can view the readme in make to get started!

make

To get started you can simply do this. This will stop any previous Iceberg containers and remove previous image. As well as rebuild the image using cached layers. If your a developer, then any files changed in the code will not get cached, and thus rebuilt in the image.

make start

You can also restart the container with make restart, or view the logs with make logs.

Development without make

If you don't want to use make and docker, you can use the following commands to run development environment.

pip install poetry
poetry install
poetry run python backend/main.py
cd frontend
npm install
npm run dev

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

We use Black for backend and Prettier for frontend. Please make sure to run the formatters before submitting a pull request. Also use CRLF line endings unless it is a shell script or something that requires LF line endings.

We've switched to Poetry!

Poetry simplifies dependency management by automatically handling package versions and resolving conflicts, ensuring that every contributor works with a consistent set of dependencies. To contribute to this project using Poetry, you'll need to install Poetry on your system. This can be done by pip install poetry. Once installed, you can easily manage the project's dependencies.

For starters, after cloning the repository, run poetry install in the project's root directory. This command installs all the necessary dependencies as defined in the pyproject.toml file, creating an isolated virtual environment for the project. Contributors can then activate the virtual environment using poetry shell or run project-related commands directly using poetry run.

Poetry also simplifies the process of adding new dependencies or updating existing ones with commands like poetry add package-name and poetry update package-name, respectively. Before submitting a pull request, ensure your changes are compatible with the project's dependencies and coding standards. To facilitate this, we encourage contributors to use poetry run command to run tests and linters.



License

This project is licensed under the GNU GPLv3 License - see the LICENSE file for details

iceberg's People

Contributors

dependabot[bot] avatar dreulavelle avatar gaisberg avatar ayushsehrawat avatar omnunum avatar kingpin avatar justheretobreakthings avatar

Stargazers

 avatar

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.