Dacă administrezi un server Jellyfin pentru un club, o comunitate sau un grup de prieteni, la un moment dat cineva pune întrebarea evidentă: cum acoperim factura de hosting? Cashier este răspunsul nostru pentru cei care își găzduiesc singuri serviciile. Transformă serverul tău Jellyfin într-un serviciu plătit: un vizitator alege un plan, plătește prin propriul tău cont Stripe, iar contul Jellyfin devine activ imediat. Când o reînnoire nu este plătită, contul este suspendat până la plata facturii — și nu este niciodată șters automat.
Ultimul punct contează. Cashier nu este un instrument de impunere a licențelor care șterge utilizatori; este un casier. Funcționează împreună cu Înregistrare, care oferă pagina de înregistrare și crearea contului, în timp ce Cashier se ocupă de planuri, Stripe și starea abonamentului. Poți citi descrierea completă a produsului pe pagina Cashier și poți urmări ghidul de utilizare.
Înainte să începi
Câteva lucruri de lămurit înainte de a atinge vreo setare.
Drepturile asupra conținutului. Cashier îți taxează utilizatorii prin propriul tău cont Stripe. Numai tu ești responsabil pentru deținerea drepturilor asupra conținutului sau serviciului pentru care percepi bani — de exemplu filmele, serialele sau canalele de pe serverul tău. MediaLab Works oferă doar software-ul și nu este parte în vânzările tale, iar Stripe poate închide sau restricționa un cont care percepe bani pentru conținut fără drepturi (vezi lista Stripe de activități restricționate). Așadar, percepe bani doar pentru conținut pe care îl deții sau pentru care ai licență, și păstrează serverul privat pentru membrii care plătesc.
Propriul tău cont Stripe. Plățile intră în contul tău Stripe; datele cardului nu ajung niciodată pe serverul tău. Stripe percepe propriul comision pentru fiecare plată. Vei vrea să te gândești și la taxe: Cashier acceptă o adresă de facturare opțională și Stripe Tax, ambele dezactivate implicit, așa că decide dacă ai nevoie de ele înainte de a porni vânzarea.
Cerințe preliminare:
- Jellyfin Server 12.2 sau mai nou (Linux, Windows sau Docker).
- Registration by MediaLab, instalat și licențiat — Cashier folosește pagina sa de înregistrare, setările de e-mail și crearea contului.
- Un cont Stripe și serverul tău accesibil prin HTTPS, ca Stripe să poată apela webhook-ul.
- O licență Cashier validă. Poți începe perioada de probă gratuită de 30 de zile din pagina License a plugin-ului dacă nu ai încă o cheie.
Instalează Cashier din depozitul tău privat de plugin-uri (recomandat), din catalogul public sau manual din arhiva zip în Account → Licenses. Apoi deschide pagina plugin-ului în Dashboard → Plugins → Cashier by MediaLab, apasă Open License page și activează-ți cheia.
Pas cu pas
1. Configurează mai întâi Înregistrare
Instalează și licențiază Înregistrare, apoi setează adresa publică și SMTP. Cashier trimite fiecare e-mail către abonat — factură scadentă, plată eșuată, plată reușită, suspendare, reactivare — prin setările SMTP ale Înregistrare, așa că dacă e-mailul nu funcționează aici, nu va funcționa nici mai târziu.
2. Lipește cheia Stripe
Deschide Dashboard → Cashier și mergi la Keys. Lipește cheia secretă Stripe (sk_…) — sau, mai bine, o cheie restricționată rk_… — apasă Save and test, apoi Create the webhook automatically. Cheia este stocată în data/secrets.json, care este ținut în afara configurației trimise către browser.
Dacă serverul tău nu are o adresă publică HTTPS, poți sări peste webhook-ul automat: Cashier citește atunci evenimentele Stripe la fiecare 15 minute, fără a fi nevoie de un port deschis.
3. Setează numele serviciului și adresa publică
Introdu numele serviciului afișat clienților și adresa publică a serverului (de exemplu https://jellyfin.example.com). Adresa este folosită pentru întoarcerea din Stripe și pentru webhook, deci trebuie să fie corectă.
4. Definește-ți planurile
Verifică planurile: perioada (lunară sau anuală), numărul de fluxuri simultane și prețul. Planurile sunt definite după numărul de dispozitive care pot reda în același timp — de exemplu de la 1 la 4 ecrane. Apasă Save and send to Stripe: prețurile sunt create în contul tău Stripe. Reține că un preț modificat creează un preț Stripe nou, iar abonații existenți îl păstrează pe al lor până când își schimbă planul.
5. Perioada de probă și perioada de grație
Setează zilele de probă (o perioadă de probă gratuită opțională pentru primul abonament) și perioada de grație. Perioada de grație este cât timp un cont rămâne activ după o plată eșuată, în timp ce Stripe reîncearcă — 3 zile implicit.
6. Pornește vânzarea
Când tot ce este mai sus este pus la punct, pornește vânzarea. Clienții noi aleg acum un plan pe pagina de înregistrare și plătesc; contul lor este activat când Stripe confirmă plata. Oprirea ulterioară a vânzării păstrează fiecare cont așa cum este.
Cum se comportă plata și neplata
Acesta este miezul plugin-ului, așa că merită înțeles înainte de a deschide ușile.
- Plata activează. Imediat ce Stripe confirmă plata, contul este activat cu limitele planului. Nu există un pas de aprobare manuală: plata îl înlocuiește.
- Neplata suspendă. După o plată eșuată, contul rămâne activ pe durata perioadei de grație cât timp Stripe reîncearcă, apoi este dezactivat. Plata facturii îl activează din nou.
- Nimic nu este șters implicit. Ștergerea conturilor suspendate de mult timp este opțională și dezactivată implicit. Rândul abonatului este șters împreună cu utilizatorul serverului și numai atunci.
- Limita de fluxuri este impusă. Redarea peste numărul de dispozitive al planului este oprită nativ (MaxActiveSessions) la autentificare sau la începerea redării, așa că funcționează cu orice client.
- Stripe este reconsiliat la fiecare 15 minute, în caz că un webhook este ratat.
Abonații primesc o pagină de client la /Cashier/Page în orice browser, iar televizoarele pot plăti de pe un telefon printr-un cod QR generat pe server — fără resurse externe. Stripe Customer Portal este configurat pentru tine, așa că clienții pot schimba cardul sau planul, pot vedea facturile și pot anula.
Pentru administrarea de zi cu zi, listele Subscribers și Payments arată cine plătește ce, iar jurnalul arată fiecare schimbare de stare. Pagina de administrare doar trimite către Stripe Dashboard; nu îl încorporează.
Sfaturi și depanare
Plățile nu activează conturile. Aproape întotdeauna webhook-ul nu poate ajunge la server. Verifică dacă adresa publică este accesibilă prin HTTPS din internet. Chiar dacă webhook-ul este căzut, Cashier se reconsiliază cu Stripe la fiecare 15 minute, așa că un eveniment ratat este recuperat — dar corectează adresa oricum.
Niciun e-mail către clienți. Verifică setările SMTP din Înregistrare; Cashier nu are setări proprii.
Testează înainte de a taxa pe cineva. Folosește mai întâi Stripe în modul de test, fă o înregistrare prin pagina de client și urmărește cum contul trece din pending în active în lista Subscribers.
Urmărește licența. Fără o licență Cashier validă, nu sunt acceptate înregistrări plătite noi până când licența este din nou validă — nimic nu este șters, iar abonații existenți nu sunt afectați în datele lor. Plugin-ul verifică cheia de abonament o dată pe zi; fără internet continuă să funcționeze 7 zile după ultima verificare reușită.
Menține-ți licența la zi. O licență pe viață primește versiunile lansate în fereastra sa de actualizare. Dacă actualizările automate ale Jellyfin instalează o versiune mai nouă, nelicențiată, plugin-ul se oprește cu „version not licensed” până când folosești Roll back to x.y.z în pagina sa License. Pentru a evita asta, îndreaptă Jellyfin către depozitul tău privat de plugin-uri, care oferă doar versiunile permise de licența ta.
Schimbări de plan. Deoarece un preț modificat creează un preț Stripe nou, abonații existenți își păstrează prețul vechi până când își schimbă planul. Anunță-ți membrii despre schimbările de preț în loc să presupui că vor trece automat.
Concluzie
Cashier ține partea de contabilitate a unui server de comunitate simplă: planuri după fluxuri simultane, facturare lunară sau anuală, o perioadă de probă gratuită dacă vrei, și o regulă clară — plata activează, neplata suspendă, nimic nu este șters. Pentru că banii ajung în propriul tău cont Stripe și datele cardului nu ajung niciodată pe serverul tău, rămâi în control atât al conținutului, cât și al plăților.
Începe pe pagina produsului Cashier, parcurge ghidul și ține la îndemână changelog-ul pentru versiunile noi. Dacă ceva nu se comportă așa cum este descris, baza de cunoștințe și FAQ sunt următoarea oprire, iar ne poți contacta oricând.