GithubHelp home page GithubHelp logo

askiiart / magnetissimo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sergiotapia/magnetissimo

0.0 1.0 0.0 1.83 MB

Web application that indexes all popular torrent sites, and saves it to the local database.

License: MIT License

Shell 0.07% JavaScript 1.68% Elixir 87.96% CSS 0.06% HTML 9.23% Batchfile 0.04% Dockerfile 0.96%

magnetissimo's Introduction

Magnetissimo

https://i.imgur.com/J6eB3mp.png

Magnetissimo is a self-hosted web application that indexes all popular torrent sites and saves the magnet links to your local database.

image

image

Goals:

  • No javascript
  • Crawl multiple index sites for torrents and magnet links.
  • Easily integrates with both Sonarr and Radarr.
  • Run without ceremony. No need for configurations.
  • Easy to understand source code. Special care is taken to keep code lean and understandable.
  • High performance, leveraging Elixir's GenServer and Erlang's BEAM VM.

Usage Guide:

We want to explain how to run Magnetissimo on:

  • Windows
  • Linux
  • Mac

Docker Compose

# Generate a secret_key with either
openssl rand -base64 64
mix phx.gen.secret

# Enter that key as SECRET_KEY_BASE in the docker-compse.yml file
SECRET_KEY_BASE=YourKeyGoesHere

# Start the application
docker compose up -d

Kubernetes

# Generate a secret_key with either
openssl rand -base64 64
mix phx.gen.secret

Edit the k8s/deployment.yaml file, and replace the ENV SECRET_KEY_BASE with your generated key.
Edit k8s/ingress.yaml & the PHX_HOST in k8s/deployment.yaml and replace the host with your domain name.

The Postgres database is configured to use the DNS name assuming it is being deployed to the default namespace, update this in the enviroment variables if you are deploying to a different namespace.

Finaly, deploy the application to your cluster.
kubectl apply -f k8s/pvc.yaml
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/svc.yaml
kubectl apply -f k8s/ingress.yaml

Local Development

asdf install
mix deps.get
iex -S mix phx.server

Then visit: http://localhost:4000

API

All endpoints returns JSON formatted information.

/search endpoint: http://localhost:4000/api/search/:search_term

Search returns torrents that match the search_term param.

/latest endpoint: http://localhost:4000/api/latest

Latest returns the latest 50 published_at torrents.

Contributing:

We have a .tool-versions so you can use ASDF to install the right versions really easily.

elixir 1.14.4
nodejs 19.8.1

Then asdf install.

You also need to have Postgres running and configure it using the DATABASE_URL environment variable.

Finally set up your database with some dummy data and run the project.

mix deps.get
mix ecto.reset
iex -S mix phx.server

Community

Want to talk about Magnetissimo or suggest features? We have an official Discord server.

Click to join our official Discord server

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.