Demo β’ Documentation β’ Installation
stry is a video-on-demand (VOD) media distribution system that allows users to access videos, television shows and movies with streaming capabilities.
- π₯ DASH Streaming - Built-in DASH playlist generation
- ποΈ Transcoding - Generate multiple renditions and bitrates on demand
- π Stream Encryption - Secure video content with encryption for both HLS and DASH
- π€ Profiles & Content Controls - Profile-based viewing with optional content hiding
- π² Installable PWA - Install stry on mobile and desktop
- π₯οΈ Responsive UI - Modern interface powered by Inertia.js and NuxtUI
- π High Performance - Powered by Laravel Octane and PostgreSQL
- π Fast Search - Lightning-fast search with Typesense
- π³ Container-Ready - Fully containerized with Podman/Quadlet support
Warning
Always follow 3-2-1 backup plan to protect your media library.
For WIP screenshots, please check out: https://github.com/francoism90/.github/tree/main/stry
Note
A hosted demo is planned, but not yet available.
Jellyfin/Plex are media servers first, while stry is a streaming delivery platform first. That means stry focuses on repackaging/transcoding and adaptive streaming workflows (DASH-first, HLS-ready), which gives more control but requires a more advanced setup.
| Topic | Jellyfin / Plex | stry |
|---|---|---|
| Primary focus | Personal media server | Streaming delivery platform |
| Typical setup effort | Faster and simpler | More advanced and pipeline-oriented |
| Playback model | Direct library playback plus optional transcoding | Prepared renditions and adaptive streaming delivery |
| Packaging | Usually less packaging-centric | Repackaging/transcoding for streaming-first output |
| Best fit | Home library convenience | Netflix/YouTube-style streaming workflows |
| Category | Technology |
|---|---|
| Backend | Laravel 13.x |
| Frontend | Inertia 3.x with NuxtUI |
| Database | PostgreSQL 18.x |
| Containers | Podman 5.x |
| Search | Typesense 30.x |
| Video Processing | Laravel FFmpeg |
| Video Streaming | Laravel Shaka (DASH) |
| Video Encoding | Laravel Streamer (DASH) |
| Video Transcoding | Laravel ab-av1 (beta) |
| PWA | Laravel PWA (installable on mobile/desktop) |
You need a basic knowledge of Laravel, Inertia.js, and containerization concepts. Familiarity with video streaming technologies (DASH, HLS) and encoding (FFmpeg) is a plus.
System Requirements:
- Linux (Debian, Fedora, Arch, CentOS, Ubuntu, etc.)
- Podman 5.3+ with Quadlet (systemd) support, or Docker (best-effort)
- Basic tools:
git,bash
Note
Docker is not officially supported, but a best-effort Docker Compose setup is available and can be made to work with minor adjustments.
For hardware acceleration: install VAAPI drivers (Intel), mesa packages, or NVENC (Nvidia) dependencies. See hardware encoding docs.
Comprehensive guides are available in the docs/ folder:
| Guide | Description |
|---|---|
| Production Setup | Deploy to production |
| Development Guide | Local development setup |
| Configuration | Configuration options |
| System Setup | System requirements |
| Podman Guide | Container management |
| Docker Compose | Docker Compose setup |
| Proxy Setup | Reverse proxy configuration |
| S3 Storage | Object storage setup |
| Interaction | CLI usage and commands |
Tip
Quick start: Choose between Production or Development setup.
systemctl --user start stry proxyThe instance will be available at: https://stry.test
stry a db:seed --forceFor testing purposes only, seed a super-admin user:
stry a db:seed --class=AdminSeederWarning
Only seed admins for testing! Never use the seeder in production.
Tip
See the Interaction Guide for a Laravel Sail-style shell utility approach.
The following services are only accessible when logged in as super-admin:
| Service | URL | Description |
|---|---|---|
| Horizon | https://stry.test/horizon | Queue monitoring and management |
| Telescope | https://stry.test/telescope | Debugging assistant (dev only) |
This project is open-sourced software licensed under the MIT license.
This project is developed with AI assistance, primarily using GitHub Copilot and Claude Sonnet.
AI is used for suggestions and acceleration, but all final implementation decisions and adjustments are made by the developers.
AI-assisted pull requests are welcome, as long as an actual person or developer is actively involved in the implementation and review.
If you find this project useful, please consider giving it a star!