MaterialTube is a beautiful and elegant web client for Invidious servers, built using Next.js and NextUI. https://materialtube.guusvanmeerveld.dev
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Guus van Meerveld 6b8322e3fd
Implemented basic video player
2 years ago
.github Update Netlify build settings + make GA run less 2 years ago
public Added icon, removed multi platform building 2 years ago
src Implemented basic video player 2 years ago
.dockerignore Added Docker building 2 years ago
.eslintrc.json Improved useability on smaller devices, added category menu to trending page 2 years ago
.gitignore Added Materialize 2 years ago
.prettierrc.json Started work on #9, many small changes 2 years ago
Dockerfile Add README + Netlify config file 2 years ago
README.md Implemented basic video player 2 years ago
README.sync-conflict-20220415-104253-DF2U2GH.md Implemented basic video player 2 years ago
app.json Added app.json for Heroku deployment 2 years ago
docker-compose.yml Added Docker building 2 years ago
netlify.toml Update Netlify build settings + make GA run less 2 years ago
next-env.d.ts Added Materialize 2 years ago
next.config.js Added more settings to /settings #5 2 years ago
package.json Implemented basic video player 2 years ago
tsconfig.json Added functionality to trending page 2 years ago
yarn.lock Implemented basic video player 2 years ago

README.md

MaterialTube

Deploy Site CodeQL Docker pulls

Deploy to Heroku Deploy to Netlify

MaterialTube is a simple client-side only web-client for Invidious servers. It supports using an Invidious account, but also allows you to store all of your data locally. It's main goal is to provide an even greater level of privacy and improve on the current Invidious UI.

Made using

Typescript React

Index

(Current) Features

  • Browse trending
  • Watch video's
  • Custom settings

Configuration

There are a few environmental variables that are able to be set during build time to further customize the application.

  • GIT_URL: Set the url to the git repo. Default: https://github.com/Guusvanmeerveld/MaterialTube
  • APP_NAME: Set the app name to show to the users. Default: MaterialTube
  • DEFAULT_SERVER: Set the invidious server to use by default. Default: invidious.privacy.gd

Deploy

Using Node.js

Requirements:

  • Node.js v16.x
  • Yarn or NPM
  • Git
git clone https://github.com/Guusvanmeerveld/MaterialTube MaterialTube

cd MaterialTube

# Choose Yarn or NPM
yarn install --frozen-lockfile

# npm install --frozen-lockfile

export NEXT_TELEMETRY_DISABLED=1

Now you have to choose between export to static HTML (recommended) or running a custom server (improves speed)

Exporting to static HTML:

yarn export

# npm export

The HTML files can be found in the out folder. You can now serve them using something like NGINX or Apache

You can also opt to use a custom server, which improves on speed because it will prefetch your request.

Building and starting a custom server:

yarn build

# npm build

yarn start

# npm start

Using Docker

Locally

Requirements:

  • Docker
  • docker-compose
  • Git
git clone https://github.com/Guusvanmeerveld/MaterialTube MaterialTube

cd MaterialTube

docker build . -t materialtube

Now update the docker-compose.yml to your needs and start the container:

docker-compose up -d

Using Docker Hub

Requirements:

  • Docker
  • docker-compose

Simply update the following to your needs and put it in a file named docker-compose.yml.

version: "3"

services:
  app:
    build: guusvanmeerveld/materialtube
    container_name: material-tube
    ports:
      - 3000:80

Now run docker-compose up -d to start the container.

Using Heroku

Deploying to Heroku is a very simple and highly recommended way of deploying. All you have to do is click the button below, create an account (if you don't already have one) and deploy it.

Deploy

Using Netlify

Deploying to Netlify is just as easy as deploying to Heroku. Click the button below connect your Git repo and follow the steps to deploy your application.

Deploy to Netlify