Skip to content
Equestrian-Broadcast-ServicePublic

Repository files navigation

EBS Webview

A premium, high-performance HLS stream webview built with React, TypeScript, and OvenPlayer.

Features

  • React Compiler: Optimized with the latest React Compiler for maximum efficiency.
  • Dynamic Stream Loading: Load streams dynamically via URL parameters (?stream=name).
  • Configurable Branding: Site name is configurable via VITE_APP_NAME environment variable.
  • Premium UI: Glassmorphism design with responsive dark/light mode support.
  • OvenPlayer Integration: Built-in support for low-latency HLS streaming.
  • Containerized: Production-ready Dockerfile and nginx.conf included.
  • CI/CD: Automated GitHub Action workflow for building and publishing Docker images.

Getting Started

Local Development

  1. Install dependencies:
    npm install
  2. Create or update .env file:
    VITE_APP_NAME=Equestrian Broadcast Service
    VITE_STREAM_BASE_URL=https://stream.equestria.horse
  3. Run the development server:
    npm run dev

Docker/Podman Deployment

Build and run the container:

  • You can use either docker or podman to build and run the container.
docker build -t ebs-webview .
docker run -p 8080:80 ebs-webview

Configuration

The application uses environment variables for configuration:

  • VITE_APP_NAME: The display name shown in the header, page title, and footer. Defaults to Equestrian Broadcast Service.
  • VITE_STREAM_BASE_URL: The base URL for EBS where all API and HLS streams are hosted. Defaults to https://stream.equestria.horse.

URL Parameters

  • stream: Specify the stream name (e.g., ?stream=test).

IDE Support & Linting

If you are using VS Code, you might see "Unknown at rule" warnings in src/index.css for Tailwind v4 directives like @variant, @theme, and @utility.

The project includes a .vscode/settings.json file to suppress these warnings:

{
  "css.lint.unknownAtRules": "ignore"
}

Branching & Auto Versioning

When a PR is merged to main, the version in package.json is automatically bumped based on the branch name prefix:

Branch Prefix Bump Type Example
patch/*, fix/*, hotfix/* Patch 1.0.0 → 1.0.1
minor/*, feat/*, feature/* Minor 1.0.0 → 1.1.0
major/* Major 1.0.0 → 2.0.0
Any other prefix Skip No version change

A git tag (v1.0.1) is created automatically on each bump. The version and commit hash are displayed in the footer.

Examples:

patch/fix-mobile-header
fix/dropdown-overflow
feat/stream-quality-selector
major/v2-redesign

License

This project is licensed under the MIT License - see the LICENSE file for details.

Releases

Packages

Contributors

Languages