Vai al contenuto

Quven Server · Docker

Quven Server ora funziona in un container Docker

Quven Server arriva come immagine firmata multi-architettura: discreta accanto alla libreria, esplicita sull'hardware e pronta a superare un aggiornamento.

Un piccolo server dentro un mobile di legno, con una scheda che mostra i tre comandi Docker Compose per scaricarlo, avviarlo e controllarlo

Il momento peggiore per scoprire che un container non è una scatola neutra è subito dopo avere premuto Play. Il server parte, la libreria viene letta e tutti i controlli di salute sono verdi, e poi il primo film richiede una transcodifica, la GPU esiste soltanto fuori dal container e un’installazione ordinata diventa una serata passata a studiare i permessi dei dispositivi.

Non volevamo che il supporto Docker significasse soltanto che Quven riusciva ad avviarsi dentro un’immagine. Doveva comportarsi come un vero Quven Server, cioè farsi trovare in casa, collegarsi allo stesso account, conservare il proprio stato, trattare la libreria con cautela e dire con chiarezza quale hardware stesse lavorando, e quella versione adesso è pubblica, con tutto quello che serve per verificare che l’immagine sia davvero quella che abbiamo costruito.

Non volevamo pubblicare soltanto un’immagine

In un registry può finire quasi tutto ciò che esce da una compilazione, e questo da solo non ne fa una versione pubblicata. L’immagine Quven è costruita per Linux AMD64 e ARM64, riunita sotto un’unica coordinata versionata, firmata con Cosign e accompagnata da un’attestazione SPDX, e il manifest pubblico registra il digest dell’image index e quello di ogni piattaforma, che è il dettaglio con cui puoi dimostrare che cosa sta girando. E conta il giorno in cui un container viene ricreato su una macchina diversa, perché un tag dice cosa hai chiesto e un digest dice cosa è arrivato davvero.

L’ambiente Compose punta al tag latest, ed è voluto. docker compose pull e docker compose up -d portano sul tuo server ogni versione e le correzioni che contiene, mentre un numero di versione scritto al suo posto terrebbe il server fermo su quella versione. Il manifest di ogni versione dice comunque quale è arrivata.

La libreria entra, ma non viene consegnata

Un container si sostituisce facilmente e una libreria personale no, e la configurazione predefinita parte da questa differenza. Quven conserva il database e la configurazione in un volume persistente, con i log accanto. La cartella dei media è l’unico posto in cui scrive dentro la tua libreria, e l’unica cosa che ci mette è un sottotitolo che ha generato per un film, accanto a quel film, mentre il processo gira senza capability Linux, non può elevare i privilegi e vede un filesystem radice in sola lettura. Nulla di questo rende sicuro da solo un host amministrato male. Ma dà a un’installazione normale confini sensati prima ancora che il proprietario debba pensare a rafforzarne la sicurezza.

E il ciclo di vita resta prevedibile. Ricrei il servizio e lo stato è ancora lì, cambi immagine e i percorsi dei media restano dove sono, torni indietro e il digest precedente continua a indicare esattamente ciò che funzionava prima.

L’accelerazione hardware non è una casella

Un container vede la GPU dell’host? Non da solo. NVIDIA, VA-API e V4L2 espongono interfacce diverse, la decodifica HEVC del Raspberry Pi usa la stateless Request API, che è ancora un’altra strada, e pretendere che un solo montaggio di dispositivo le copra tutte produce configurazioni comode da leggere che poi cedono al primo file difficile.

Il pacchetto pubblicato tratta quindi i profili hardware come alternative. Parti dal servizio base. Se la riproduzione con la sola CPU copre già la libreria, fermati lì. Se l’host espone un’interfaccia verificata, aggiungi il profilo NVIDIA, Intel/AMD oppure ARM corrispondente e soltanto i dispositivi che gli servono. I valori mancanti bloccano l’avvio invece di esporre in silenzio tutto /dev. È meno comodo di un interruttore accelerate=true, anche se è molto più semplice da capire quando qualcosa cambia dopo un aggiornamento del kernel o dei driver.

Provata con l’immagine pubblica

Per ARM64 abbiamo scaricato sul Raspberry Pi 4 l’esatta immagine pubblica multi-architettura, collegato un server reale, riprodotto via HLS autenticato e usato i profili Compose pubblicati, gli stessi che scaricheresti tu. Decodifica e codifica H.264 hanno lavorato tramite V4L2, e una sorgente HEVC ha usato il decoder Request del Pi con la codifica hardware H.264, producendo circa un secondo e mezzo di output per ogni secondo misurato. Nella prova manuale più lunga il buffer si è portato molto avanti rispetto alla visione. Il Pi resta un piccolo computer economico, però i blocchi hardware stavano facendo il lavoro per cui esistono.

Ma un’altra scheda ARM o un NAS possono esporre interfacce diverse, e la guida lo dice: prima di scegliere un profilo, verifica quali interfacce sono attive sul tuo dispositivo.

Scarica una versione, non una promessa

Il percorso rapido è volutamente corto: scarica il file Compose e il modello del file di ambiente, indica a QUVEN_MEDIA_DIR dove si trova la libreria, valida, avvia e collega il server. Le strade opzionali arrivano dopo, separate per famiglia hardware, così nessuno deve eseguire comandi che non appartengono alla propria macchina.

L’immagine è Server-only. I client nativi continuano a offrire l’esperienza locale, e con Pro il client web ospitato raggiunge un server collegato attraverso il relay gestito. Docker cambia soltanto il luogo in cui si trova il server. Parti dal riquadro Docker nella pagina Download, poi segui la guida completa all’installazione Docker.

Domande frequenti

Perché pubblicare anche il digest oltre al tag di versione?

Il tag dice cosa hai chiesto. Il digest dice cosa è arrivato davvero. Nel manifest pubblico ci sono entrambi, per l’image index e per ogni piattaforma, così un container ricreato su un’altra macchina si può dimostrare essere lo stesso.

Il container può toccare i miei media?

Solo per mettere accanto al film un sottotitolo che ha generato, e QUVEN_MEDIA_READ_ONLY=true nel tuo .env ferma anche quello. Il processo gira senza capability Linux, non può elevare i privilegi e vede un filesystem di root in sola lettura, mentre tutto ciò che Quven conserva sta in un volume persistente che sopravvive alla ricreazione del servizio.

La transcodifica hardware funziona su un Raspberry Pi?

Sul Pi 4 che abbiamo provato sì, con V4L2 per l’H.264 e il decoder Request per l’HEVC. Su un’altra scheda ARM o su un NAS, verifica quali interfacce sono attive prima di scegliere un profilo.

Quven Lifetime

Tutte le funzioni di Max, con un solo pagamento

Lifetime è Max senza rinnovo: il relay gestito e il client web, i sottotitoli scritti dall'audio, l'editor dei sottotitoli con la traduzione e la riparazione dei file danneggiati, oggi e con tutto ciò che Max aggiungerà. Consente inoltre di condividere il server con un massimo di 150 persone.

€129, una volta sola.

Comunità

Commenti

0 commenti

Verrà mostrato pubblicamente con il commento.

Gli invii degli ospiti registrano dati limitati di rete e dispositivo per prevenire abusi. Consulta l’Informativa privacy.

Non ci sono ancora commenti. Inizia la conversazione.

Conferma azione

Riporta a casa la tua libreria.

Gratuito per uso personale, da installare sul tuo hardware in pochi minuti.