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

  • Any modern hardware (AArch64 is untested).
  • Linux (Debian, Ubuntu, SUSE, CentOS, Arch, ..). - WSLv2 is untested.
  • Podman 5.3 or higher with Quadlet (systemd) and SELinux support.

NOTE: Docker is unsupported, but should work with a docker-compose.yml file. PRs are welcome.

Installation

Clone repository

  1. Clone the repository, for example to ~/projects:
cd ~/projects
git https://github.com/francoism90/hub.git
  1. Configure Hub with your favorite editor:
cd ~/projects/hub
cp .env.example .env
vi .env
  1. See Podman guide to configure Podman Quadlet.

  2. See MinIO guide to configure MinIO.

Usage

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

systemctl --user start proxy hub
systemctl --user status hub

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

$ podman exec -it systemd-hub /bin/bash # or hub shell
composer install
php artisan key:generate
php artisan storage:link
pnpm install && pnpm build
php artisan app:install

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

To seed an example super-admin user:

php artisan db:seed --class=UserSeeder:class

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 deleted videos:

WARNING: This will remove any soft-deleted videos!

hub a videos:clean

To force (re-)indexing of all models:

hub a scout:sync

Upgrading

See UPGRADING.md