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!

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 (ro, rw, U, Z, etc.).

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
nano .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 following guide to configure Podman Quadlet.

MinIO

Please read following guide to configure MinIO.

Usage

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

systemctl --user start caddy hub
systemctl --user status hub

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

$ podman exec -it systemd-hub-app sh # or hub shell
composer install
php artisan key:generate
php artisan storage:link
yarn install && yarn run build
php artisan app:install
php artisan db:seed --class=UserSeeder:class

The following services are only accessible when being a super-admin (see database/seeders/UserSeeder.php for example):

Manage application

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

To import videos:

chcon -Rt container_file_t ~/projects/hub/storage/app/import/* # if running SELinux
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: This will remove any soft-deleted videos!

hub a videos:clean

To force (re-)indexing of models:

hub a scout:sync

Upgrading

See UPGRADING.md

Deployment

See Envoy.blade.php for deployment details.