A premium, high-performance HLS stream webview built with React, TypeScript, and OvenPlayer.
- 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_NAMEenvironment variable. - Premium UI: Glassmorphism design with responsive dark/light mode support.
- OvenPlayer Integration: Built-in support for low-latency HLS streaming.
- Containerized: Production-ready
Dockerfileandnginx.confincluded. - CI/CD: Automated GitHub Action workflow for building and publishing Docker images.
- Install dependencies:
npm install
- Create or update
.envfile:VITE_APP_NAME=Equestrian Broadcast Service VITE_STREAM_BASE_URL=https://stream.equestria.horse
- Run the development server:
npm run dev
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-webviewThe application uses environment variables for configuration:
VITE_APP_NAME: The display name shown in the header, page title, and footer. Defaults toEquestrian Broadcast Service.VITE_STREAM_BASE_URL: The base URL for EBS where all API and HLS streams are hosted. Defaults tohttps://stream.equestria.horse.
stream: Specify the stream name (e.g.,?stream=test).
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"
}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
This project is licensed under the MIT License - see the LICENSE file for details.