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!
Hub uses the following stack:
This is the preferred stack, please submit a PR if you would like to support other solutions.
- 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.
- 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
-
See Podman guide to configure Podman Quadlet.
-
See MinIO guide to configure MinIO.
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):
- https://hub.test/horizon - Laravel Horizon
- https://hub.test/telescope - Laravel Telescope (disabled by default)
To seed an example super-admin user:
php artisan db:seed --class=UserSeeder:class
TIP: Run
hub a
andhub 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
See UPGRADING.md