Giter VIP home page Giter VIP logo

stremio-addons's Introduction

stremio-addons

All of my Stremio addons in one monorepo. Read more about the advantages of monorepos here.

Addons

List of working addons:

Remote

Local

Archived

Addons that are not maintained by me anymore but are kept for reference. Some of these still work, others probably don't. If you want to resurrect any of these addons, create a pull requests to become its maintainer!

Project structure

Overview of how this project is structured:

- @types // contains typescript declaration files (d.ts) for the addon SDK
- packages
  - addons // all stremio addons go here
  - cli   // command line tools to aid development
  - modules // other useful packages that can be imported by addons
- tsconfig.json // global typescript config file, which all addons extend
- package.json // global package.json file that contains dev dependencies that are required by every package

Info for developers

Newer addons are written in TypeScript. To manage this monorepo, lerna is used.

The @types that are available in this repo are also available on DefinitelyTyped: npm install @types/stremio-addon-sdk --save-dev.

Installation

To install all required developer dependencies that are shared accross addons, navigate to the root directory (the directory where this README is in) and run npm install.

Addon dependencies

To install all dependencies of all addons at once, you can enter the command npm run bootstrap at the project root. If you'd rather not use lerna, you can also install dependencies for a single addon by running npm install within that addon directory as usual.

Transpiling

You can transpile all addons at once with lerna by executing: npm run build or you can also head to a specific addon directory and run npm run tsc. The target addon(s) should now each have a build directory next to the src directory, containing the transpiled javascript files. To run a debug server for instance, you would usually run node build/server.js to start it.

Docker

This repository is docker-ready with docker compose. To get all addons up and running in production, enter docker-compose up -d in your terminal and you should be ready to go! Don't forget adjust your .env files in each addon directory so all environment variables are set up properly.

If you're not using docker compose, make sure the stremio-ts-addon and/or stremio-js-addon images are built locally before building any of the addon docker images.

Kubernetes

If you're hardcore like me, you can also deploy maintained addons to a Kubernetes cluster. See the kubernetes directory for basic installation instructions.

Conventions

Commit messages

Commit messages should respect the following convention table:

keyword description example
global global changes that affects many packages or the repo as a whole
global: update lerna config file
global: remove console.log()s
addon changes to an existing addon or adding a new one
addon/stream-quality-filter: add more filters
addon: create IPTV addon
cli changes to cli packages or adding a new one
cli/publisher: support IPFS publish
cli: add tool x
module changes to (npm) modules or adding a new one module/extension: fix Y
module: add extension
script pure shell, bash or batch helper scripts script: add deployment script
kubernetes Anything that has to do with Kubernetes deployments kubernetes: update config

Issues

When creating an issue, please append the subject (and optionally the keyword) in square brackets to your title.

Format: <[keyword/]subject> <issue title>

Examples:

[addon/stream-quality-filter] filters not working
[stream-quality-filter] add filter X

Both conventions are accepted as of now, just to keep things simple. The former notation is preferred though.

stremio-addons's People

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.