FranzPLAY
Self-hosted video streaming platform optimised for embedded hardware, with fully automated ingestion.
- Role
- Full-Stack Developer
- Year
- 2026
- Status
- Released
FranzPLAY is a fully automated, self-hosted video streaming platform, developed as Free and Open Source (GitHub Repository). It is designed following the patterns of industry giants (such as YouTube and Netflix) but custom-engineered to operate on resource-constrained embedded hardware, like a Raspberry Pi 4.
The fundamental concept behind the application is “Drop & Watch”: the user simply uploads a video file into the storage (Docker Bind Mount) and an orchestrated Python/PHP ecosystem takes care of the rest completely autonomously.
Microservices Architecture and Tech Stack
The ecosystem is composed of 7 meticulously orchestrated containers via Docker Compose, structured to decouple interfaces, business logic, and asynchronous processing:
- Frontend (React 19 + Vite 7): Developed for maximum reactivity, it implements aggressive lazy-loading, React Router v6, and super lightweight styling enabled by Tailwind CSS v4. The native video player is a custom wrapper over Plyr, programmed for automatic “Smart Resume” (resuming from where viewing was left off).
- Gateway & Proxy (Nginx): The beating heart for managing Protected Streaming. Using the
X-Accel-Redirectheader, Nginx offloads PHP from the heavy task of buffered transfer by serving bytes directly from disk, adopting a Zero-Copy sendfile policy. - Stateless Backend (PHP 8.2): Deliberately developed without frameworks (Vanilla procedural PHP) to pare down CPU consumption to the absolute limit and keep the RAM footprint under 100MB for dozens of concurrent queries. API access is validated and protected by logical anti-bruteforce systems.
- Database & Cache (MariaDB / Redis): A relational DB infrastructure acts as the Single Source of Truth, but every recurring query is lightened by offloading the burden to Redis, which also hosts session tokens, thereby sparing the solid-state memory from wearing cyclical writes (I/O optimization).
- Processing & Automation (Python 3.9): Background daemons constantly scan system files (
Watcher), extracting technical data via probes like FFprobe (Worker Metadata) and extrapolating frames at key moments of the video to autonomously generate posters and 10-second animated previews (Worker Assets).
Security and Admin Controls
Being oriented toward a multi-user cloud experience, it features rigorous hierarchies for security (implemented natively through sessions and irreversible hashing via bcrypt):
- Integrated Admin Dashboard: A management panel that allows comprehensive monitoring of access, visual modification of the entire platform, and real-time tracking of hardware storage.
Interface Tour
1. The Content Showcase (Homepage)
The entry page of FranzPLAY, highlighting the latest releases and featured content.
2. Video Platform and Smart Resume
The heart of the application: a high-performance customized player, enriched by playback time tracking (“Smart Resume”) that brings the user back to where they left the video.
3. Smart Search
A flexible overlay mode to locate media without interrupting navigation.
4. Category Navigation
Organic organization of folders by collections; animated posters come to life on-hover.
5. Specific Category Details
The extended grid of content within an isolated folder.
6. Personal Viewing History
A persistent log of individual media consumption, powered by the Python/DB resume-watching algorithm.
7. Profile Settings Center
The dashboard to customize the user theme (UI color override) and execute secure device logging.
8. Executive Admin Panel (Dashboard)
The omniscient administration hub: monitoring of NAS hard drives (ZimaBlade/Raspberry), database tracking, and access auditing for third-party users.
Stack
- React 19
- Vite
- Tailwind CSS
- PHP 8.2
- Python
- MariaDB
- Redis
- Nginx
- Docker