FranzPLAY
Piattaforma di video streaming self-hosted ottimizzata per hardware embedded, con ingestione automatizzata.
- Ruolo
- Sviluppatore Full-Stack
- Anno
- 2026
- Stato
- Rilasciato
FranzPLAY è una piattaforma di video streaming self-hosted completamente automatizzata, sviluppata Gratis e Open Source (Repository GitHub). È disegnata seguendo i pattern dei giganti del settore (come YouTube e Netflix) ma ingegnerizzata su misura per operare su hardware embedded a risorse limitate, come un Raspberry Pi 4.
Il concetto fondamentale alla base dell’applicativo è il “Drop & Watch”: l’utente si limita a caricare un file video nello storage (Bind Mount Docker) e un ecosistema orchestrato in Python/PHP si occupa del resto in completa autonomia.
Architettura a Microservizi e Stack Tecnologico
L’ecosistema è composto da 7 container orchestrati minuziosamente tramite Docker Compose, strutturati per disaccoppiare interfacce, logica di business e processing asincrono:
- Frontend (React 19 + Vite 7): Sviluppato per la massima reattività, implementa lazy-loading aggressivo, React Router v6 e styling super leggero abilitato da Tailwind CSS v4. Il player video nativo è un wrapper custom su Plyr, programmato per lo “Smart Resume” automatico (ripresa da dove si era interrotto la visione).
- Gateway & Proxy (Nginx): Cuore pulsante per la gestione dello Streaming Protetto. Tramite l’header
X-Accel-Redirect, Nginx scarica PHP dal compito gravoso del trasferimento bufferizzato servendo byte direttamente dal disco, adottando una politica Zero-Copy sendfile. - Backend Stateless (PHP 8.2): Sviluppato volutamente senza framework (Vanilla PHP procedurale) per limare all’inverosimile il consumo di CPU e contenere il footprint della RAM sotto i 100MB per dozzine di query contemporanee. L’accesso API è validato e protetto da sistemi anti-bruteforce a livello logico.
- Database & Cache (MariaDB / Redis): Un’infrastruttura DB relazionale fa da Single Source of Truth, ma ogni query ricorrente viene alleggerita trasferendo il carico su Redis, il quale ospita anche i token di sessione, esentando in tal modo la memoria a stato solido da logoranti scritture cicliche (I/O optimization).
- Processing & Automazione (Python 3.9): Demoni in background scansionano incessantemente i file di sistema (
Watcher), estraendo dati tecnici tramite sonde come FFprobe (Worker Metadata) ed estrapolando frame in momenti chiave del video per generare locandine e anteprime animate da 10 secondi in completa autonomia (Worker Assets).
Sicurezza e Controlli Admin
Essendo orientato all’esperienza cloud multi-utente, prevede rigorose gerarchie per la sicurezza (implementate nativamente tramite sessioni ed hashing irreversibile in bcrypt):
- Admin Dashboard Integrata: Un pannello gestionale che permette il monitoraggio capillare sugli accessi, la modifica visiva dell’intera piattaforma e il tracking dello storage hardware in tempo reale.
Tour dell’Interfaccia
1. La Vetrina dei Contenuti (Homepage)
La pagina d’ingresso di FranzPLAY, dove emergono le ultime release e i contenuti in primo piano.
2. Piattaforma Video e Smart Resume
Il cuore dell’applicazione: un player customizzato ad alte prestazioni, arricchito dal tracking del tempo di riproduzione (“Smart Resume”) che riporta l’utente a dove aveva abbandonato il video.
3. Ricerca Intelligente
Modalità overlay flessibile per rintracciare i media senza interrompere la navigazione.
4. Navigazione Categorie
Organizzazione organica dei cartacei per collezioni; le locandine animate prendono vita on-hover.
5. Dettaglio di una Categoria Specifica
La griglia estesa di contenuti all’interno di una cartella isolata.
6. Cronologia di Visione Personale
Registro persistente dei propri consumi mediali individuali, alimentato dall’algoritmo di resume-watching Python/DB.
7. Centro Impostazioni Profilo
La dashbord per customizzare il tema utente (UI color override) ed eseguire un logging protetto dei dispositivi.
8. Pannello Esecutivo Admin (Dashboard)
L’hub di amministrazione onnisciente: monitor dei dischi rigidi del NAS (ZimaBlade/Raspberry), tracciamento database ed auditing accessi su utenti terzi.
Stack
- React 19
- Vite
- Tailwind CSS
- PHP 8.2
- Python
- MariaDB
- Redis
- Nginx
- Docker