Skip to content

davnpsh/luffy

Repository files navigation

luffy

Self-hosted automatic torrents indexer for seasonal anime


Index

Notes

⚠️ This is a proof of concept. This is not the final version of what I want.

I am aware that the quality of the code is not the best and the implementation of the backend can improve a lot.

I wanted to learn Node.js + React so I could use it for future projects. Some time ago, I dreamed about creating my own anime website but had little knowledge about web technologies. Finally, I decided to make it happen and here is my try.

I would appreciate any feedback you want to give me. Please use the Issues tab.

Installation

For any of these installation methods, the UI is available at http://127.0.0.1:4000.

Docker compose (recommended)

If you have a good processor to host this app, you should try this method. If not, try the node.js method.

  1. Install Docker and the Docker compose plugin.

  2. Create a directory called luffy and create a docker-compose.yml file like this:

version: "3"

services:
  luffy:
    image: ghcr.io/davnpsh/luffy:experimental
    ports:
      - "4000:4000"
    environment:
      # Your TheMovieDB api key:
      - TMDB_API_KEY=
    # Map this volume if you want to control the data about episodes
    # inside the container
    volumes:
      - ./episodes:/usr/src/luffy/public
  1. Inside that folder, run:
docker compose up -d

Docker build

If you want to build the image by yourself, follow these steps:

  1. Install Docker.

  2. Clone this repository:

git clone https://github.com/davnpsh/luffy.git
  1. Inside the project directory build the image (replace IMAGE_NAME and TAG for whatever you like):
docker build -t IMAGE_NAME:TAG .
  1. Create and run a container with the app:
docker run -p 4000:4000 -e TMDB_API_KEY=$ENV_VAR IMAGE_NAME:TAG

Where $ENV_VAR is your TheMovieDB api key.

Node.js

First, you need to consider the following:

  • Due to the ffmpeg binary included, only Linux x64 systems are supported.

  • This project was developed with node.js version 21.5.0. If using a prior version, make sure at least dependencies are up-to-date.

  • Install a web browser compatible with Puppeteer (Chromium recommended).

Then, follow these instructions:

  1. Install node.js and npm.

  2. Clone this repository:

git clone https://github.com/davnpsh/luffy.git
  1. Inside the project directory, install dependencies:
npm install
  1. Create a .env file in the root of the project with your TheMovieDB api key:
TMDB_API_KEY=your_api_key
  1. Run the project with:
npm run bundle

Screenshots

Homepage

Gallery

Show details

Credits

You can see this project as a mere indexer. All the content is from Subsplease and TheMovieDB API. I am NOT affiliated with either.