Skip to content

francoism90/hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hub

Introduction

Hub is a video on demand (VOD) media distribution system that allows users to access to videos, television shows and films.

NOTE: This is a personal project, and is still in development. Use at your own risk!

Demo

A basic demo is available at https://hub.foxws.nl/.

Use the following login credentials (managing videos has been disabled):

  • Email: demo@example.com
  • Password: password

Please note it's a low-tier VPS, expect slowness. :)

Details

Hub uses the following stack:

This is the preferred stack, please submit a PR if you would like to support other solutions. :)

Prerequisites

  • Linux (Fedora, CentOS Stream, Debian, Ubuntu, Arch) - WSLv2 is untested.
  • Podman 5.2 or higher, with Quadlet (systemd) + SELinux support - Docker is untested, but should work without the SELinux mount flags.

Installation

Clone repository

Clone the repository, for example to ~/projects:

cd ~/projects
git https://github.com/francoism90/hub.git

Configure Hub with your favorite editor:

cd ~/projects/hub
cp .env.example .env
vi .env

To access Hub locally, make sure to create the following /etc/hosts entries:

127.0.0.1 hub.lan ws.hub.lan s3.hub.lan mc.hub.lan
::1 hub.lan ws.hub.lan s3.hub.lan mc.hub.lan

TIP: You may want to use AdGuard Home instead, and rewrite hub.lan & *.hub.lan to your homelab server.

Podman Quadlet

Please read the following guide for usage with Podman Quadlet.

MinIO

Please read the following guide for usage with MinIO.

First run

Make sure Hub is up-and-running:

systemctl --user restart hub
systemctl --user status hub

Enter the systemd-hub-app container (hub shell), and execute the followings commands:

$ podman exec -it systemd-hub-app sh
composer install
php artisan key:generate
php artisan storage:link
yarn install && yarn run build
php artisan app:install
php artisan user:create

Usage

The Hub instance should be available at https://hub.lan.

The following services are only accessible when being a super-admin:

Manage application

TIP: Run hub a and hub help for all available commands.

Make sure to set correct permissions:

chcon -Rt container_file_t ~/projects/hub/storage/app/import/*

To import videos:

hub a videos:import

To create a tag:

hub a tag:create

To create an user:

hub a user:create

To force the removal of soft-deleted videos:

WARNING: Only run this command when you don't want to restore any deleted videos!

hub a videos:clean

To force indexing of models:

hub a scout:sync

Upgrading

See UPGRADING.md

Deployment

See Envoy.blade.php for deployment details.