Skip to content

Laravel

Erik Zandvliet edited this page Jan 26, 2026 · 1 revision

The Laravel rework of the DASH-IF Conformance tools can be installed on any modern system. The installation instruction below assume Ubuntu 24.04.

Installation

Clone repository

git clone https://github.com/Dash-Industry-Forum/DASH-IF-Conformance
git checkout laravel-beta

Dependencies

  • PHP 8.3 or above
  • OpenJDK21 (might work with different versions)
  • NodeJS 18.x or above
  • GPAC (specifically the MP4Box executable)
    • Support for the ISOSegmentValidator will be backported in a future version
sudo apt install \
         php php-dev php-curl php-sqlite3 php-xdebug composer \
         nodejs \
         opendjk-21-jdk \
         gpac

Set default Java installation

Make sure that java and javac will use openjdk-21-jdk.

update-alternatives --list java
sudo update-alternatives --set java /usr/lib/jvm/java-21-openjdk-amd64/jre/bin/java 
sudo update-alternatives --set javac /usr/lib/jvm/java-21-openjdk-amd64/bin/javac

First time setup

In order for Laravel to work, we need to create some initial configuration:

# Install PHP Dependencies (Backend)
composer install
# Install and build NodeJS dependencies (Frontend)
npm install 
npm run build
# Initial configuration of laravel
cp env_production.example .env # Copy default environment file
php artisan key:generate # Create a unique application key
php artisan migrate # Create the default SQLite tables

You can update the default environment based on your own preferences.

Usage

Web Interface

Start the framework: composer run dev

By default, Laravel will try to bind to port 8000. However, if it is already in use, it will try some extra ports. You can find the used port number in the terminal, following the APP_URL line.

NOTE: By default 2 ports are opened, one by laravel and one by vite. Make sure to use the correct one.

Navigate to http://localhost:8000/

Command Line Interface

For the command line interface (CLI) we make use of Laravel's artisan framework.

Run php artisan app:analyze-manifest -h for a full list of parameters.

By default only the 'Global Module' is enabled.

To analyze a manifest with all modules enabled:

php artisan app:analyze-manifest --all <URL>

To use only select modules:

php artisan app:analyze-manifest --modules # List all available module names
php artisan app:analyze-manifest <URL> "<Module 1>" "<Module ...>"

Clone this wiki locally