Streaming · Laravel · Inertia
Stry
A streaming platform built with Laravel and Inertia.js.
- Latest release
- 2.2.3
Documentation
Why stry?
Jellyfin and Plex are media servers first. stry is built for streaming first: it plays your videos directly from their files as DASH and HLS streams, packaged on the fly, with optional encryption, smaller renditions and AV1 transcoding. You get more control over how video is delivered, but setup takes more work.
| Topic | Jellyfin / Plex | stry |
|---|---|---|
| Primary focus | Personal media server | Streaming platform |
| Setup effort | Quick and simple | More involved |
| Playback | Plays library files directly, transcodes if needed | Plays files directly as DASH and HLS streams |
| Packaging | Mostly plays files as they are | Packages segments on the fly, nothing up front |
| Best for | A convenient home library | Netflix- or YouTube-style streaming |
Getting started
- Production Setup: start here to deploy stry on a server.
- Development Setup: start here to work on stry locally.
- Screenshots: see what stry looks like before you install it.
Guides
| Guide | What it covers |
|---|---|
| Podman Quadlet | Running the services: install, secrets, GPU |
| Docker Compose | An alternative setup, maintained best-effort |
| Reverse Proxy | Subdomain routing and bringing your own HTTPS |
| Object Storage (S3) | S3-compatible storage for generated images |
| Application Configuration | Direct play, video and encoding settings |
| CLI Interaction | lpod and stry's own Artisan commands |
| Upgrading | Updating an existing production install |
The Podman side is handled by foxws/laravel-podman and its standalone lpod CLI. Their docs cover the general topics, such as secrets and customizing presets. These guides only cover what is specific to stry.
Key concepts
stry-envsecret: the app's.envfile, stored as a Podman secret and mounted at/app/.envin every app container.- Presets: the templates in
containers/stubs/{preset}/.productionruns the app and its services,developmentruns them against your local code,s3sets up buckets and CORS, anddevcontainerbuilds a VS Code development container. - Quadlet: the systemd integration that starts the containers in the right order on boot.
Common tasks
# Start, stop and check status
lpod stry up
lpod stry down
systemctl --user status stry
# Follow the logs
journalctl --user -u stry -f
# Open a shell or run Artisan
lpod stry shell
lpod stry artisan migrate --force
Need help?
- Read Podman Quadlet and the
lpodreference. - Check the logs with
journalctl --user -u stry -forpodman logs -f systemd-stry.
