Skip to content

francoism90/hub

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.

See https://github.com/francoism90/.github/tree/main/hub for (WIP) screenshots.

Prerequisites

  • Linux (Fedora, Debian, Arch, Ubuntu)
  • Podman 5.0 or higher (with SELinux support)

Installation

Clone repository

Clone the repository, for example to /home/<user>/Code/hub:

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

Configure Hub:

cp .env.example .env
vi .env

The following DNS-records should be added of the machine running the instance if you want to expose it on your LAN, e.g.:

192.168.1.100 hub.lan ws.hub.lan

If you only want to access Hub on your local machine, add the following hosts entry:

127.0.0.1 hub.lan ws.hub.lan

Podman Quadlet

Please read the dedicated guide for usage with Podman Quadlet.

Usage

You may need to alter permissions when using SELinux:

chcon -Rt container_file_t ~/Code/hub/storage

To start Hub:

systemctl --user start hub.service

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

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

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

The following Laravel services are available on:

Media storage

You may want to use a different mount-point for media storage:

sudo mount --bind /mnt/data/videos/media ~/Code/hub/storage/app/media -o x-gvfs-hide
podman system migrate
systemctl --user restart hub-app hub

NOTE: Make sure /mnt/data/videos/media also contains a .gitigore file.