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!
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. :)
Hub uses the following stack:
This is the preferred stack, please submit a PR if you would like to support other solutions. :)
- 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.
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.
Please read the following guide for usage with Podman Quadlet.
Please read the following guide for usage with MinIO.
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
The Hub instance should be available at https://hub.lan.
The following services are only accessible when being a super-admin:
- https://hub.lan/horizon - Laravel Horizon
- https://hub.lan/pulse - Laravel Pulse
- https://hub.lan/telescope - Laravel Telescope (disabled by default)
TIP: Run
hub a
andhub 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
See UPGRADING.md
See Envoy.blade.php for deployment details.