- Koristite namjenski Laravel paket za licenciranje za upravljanje ograničenjima broja mjesta, offline verifikacijom, opsegom i evidentiranjem revizije umjesto prilagođene ad-hoc logike.
- Povežite status Stripe pretplate s lokalnim zapisima o licencama putem webhookova i omogućite svojoj Laravel aplikaciji da odluči o valjanosti licence iz vlastite baze podataka.
- Iskoristite PASETO tokene s Ed25519 potpisima za sigurne offline provjere licenci, izbjegavajući stalne pozive serveru i krhka JWT podešavanja.
- Pouzdano upravljajte svojom licenciranom Laravel aplikacijom koristeći Plesk-ov Laravel Toolkit za implementacije, upravljanje okruženjem, redove čekanja, logove i planirane zadatke.

Upravljanje softverskim licencama u Laravel aplikaciji ide daleko iznad pukog pohranjivanja licencnog ključa u bazu podataka. Kada počnete naplaćivati mjesečne naknade, provoditi ograničenja broja mjesta, upravljati klijentima koji nisu na mreži i voditi odgovarajući revizorski trag, brzo shvatite da vam je potrebna solidna arhitektura licenciranja, a ne samo nekoliko dodatnih kolona u tabeli korisnika. Ako gradite ili distribuirate komercijalni softver na Laravelu, ovo postaje ključni dio vašeg proizvoda.
U ovom vodiču ćemo detaljno objasniti kako upravljati softverskim licencama u Laravelu kao kod proizvoda poslovnog nivoa, a istovremeno ćemo to povezati s ponavljajućim fakturiranjem pomoću alata kao što je Stripe. Proći ćemo kroz moderni paket licenciranja za Laravel, istražiti kako funkcionira offline verifikacija korištenjem kriptografski potpisanih tokena, vidjeti kako ograničiti licence po sjedalima ili uređajima, a zatim sve to povezati s podacima o pretplati tako da vaša aplikacija automatski prestane raditi kada korisnik ne plati.
Zašto je licenciranje softvera važno u Laravel aplikacijama s pretplatama
Kada počnete naplaćivati Laravel aplikaciju, potrebno vam je više od oznake "plaćeno" na korisničkom modelu. Klijenti očekuju da se aplikacija sama zaključa čim pretplata istekne, da poštuje ograničenja po korisniku ili uređaju i da pouzdano radi čak i kada nema stalne internet veze. Osim toga, potreban vam je jasan način da dokažete šta se dogodilo ako ikada dođe do spora oko naplate ili usklađenosti.
Tipičan scenario izgleda ovako: naplaćujete mjesečnu naknadu (obično putem Stripe-a), vaš kod mora znati da li je taj korisnik aktivan, a uz to želite i precizno provođenje licenci unutar same aplikacije. To znači odgovoriti na pitanja kao što su: Da li je ova licenca još uvijek važeća? Da li je istekla? Koliko uređaja je već aktivirano? Da li je dozvoljeno da ova specifična aktivacija radi van mreže neko vrijeme?
Pokušaj izgradnje svega ovoga od nule može se lako pretvoriti u gomilu ad-hoc tabela, prilagođenih cron zadataka i poludokumentovanih pravila razasutih po kodnoj bazi. Održiviji pristup za Laravel projekte je oslanjanje na specijalizirani sloj licenciranja koji obuhvata upravljanje životnim ciklusom licence, kriptografsku verifikaciju i reviziju, a istovremeno vam omogućava da se fokusirate na logiku vašeg proizvoda.
Drugi važan aspekt je kako vaša logika licenciranja interaguje s vašim okruženjem za implementaciju. Mnoge Laravel aplikacije se hostuju na panelima poput Pleska, koji pružaju alate za pokretanje Artisan naredbi, upravljanje varijablama okruženja, zakazivanje zadataka i rukovanje redovima čekanja putem grafičkog interfejsa. Sve ovo utiče na način na koji dizajnirate, implementirate i upravljate svojim sistemom licenciranja u produkciji.
Upravljanje licencama na nivou preduzeća pomoću Laravel paketa za licenciranje
Jedno od najrobustnijih rješenja dostupnih za Laravel je Laravel Licensing paket Luce Longoa, koji upravljanje licencama na nivou preduzeća donosi direktno u vašu aplikaciju. Umjesto sastavljanja vlastitih tabela licenci i pravila validacije, ovaj paket vam pruža sveobuhvatan model i API za kreiranje, dodjeljivanje, provjeru i reviziju licenci povezanih s bilo kojim entitetom u vašoj aplikaciji.
Paket je dizajniran za komercijalni softver distribuiran preko Laravela i fokusira se na realne potrebe kao što su aktivacija na osnovu uređaja, offline provjere i izolacija više proizvoda. To nije samo jednostavan generator ključeva: on pokriva koliko puta se licenca može koristiti, koliko dugo važi, šta se dešava kada rotirate ključeve i kako se svaki pojedinačni događaj licence snima za kasniji pregled.
Nakon instalacije, konfiguracije i migracija, prvi koncept s kojim ćete se susresti je korijenski certifikat i ključevi za potpisivanje. Korijen ključa je vaše krajnje sidro povjerenja i iz njega izvodite jedan ili više ključeva za potpisivanje koji će se koristiti za generiranje tokena i licenci za vaše proizvode. Paket pruža Artisan naredbe za automatizaciju ovog procesa, tako da ne morate kreirati vlastite kripto skripte.
Na primjer, generirate korijenski ključ i ključ za potpisivanje pomoću naredbi kao što je kreiranje korijenskog certifikata, a zatim izdavanje jednog ili više ključeva za potpisivanje identificiranih ID-om ključa. Ovaj identifikator ključa (kid) se kasnije ugrađuje u tokene i podatke o licenci, omogućavajući sistemu i vašim klijentima da tačno znaju koji je ključ korišten i da izvrše rotaciju ključa bez oštećenja svega.
Paket također uvodi ideju opsega licenci, što je posebno korisno kada imate više proizvoda ili linija proizvoda izgrađenih na Laravelu. Svaki opseg može biti povezan sa zasebnim ključem za potpisivanje, tako da ako su ključevi jednog proizvoda kompromitovani, možete ih opozvati ili rotirati bez utjecaja na druge proizvode. Ta izolacija je ključna za dobavljače s portfoliom aplikacija ili modula.
Offline verifikacija korištenjem PASETO tokena u Laravelu
Istaknuta karakteristika ovog rješenja za licenciranje je njegov mehanizam offline verifikacije zasnovan na PASETO (Platform-Agnostic Security Tokens) verzije 4 i potpisima Ed25519. PASETO je pozicioniran kao sigurnija, manje sklona greškama alternativa klasičnim JWT-ovima, uklanjajući mnogo nepotrebnih algoritama i validacije tokena koje je lako pogriješiti u produkciji.
S licenciranjem zasnovanim na PASETO-u, klijentu možete izdati vremenski ograničeni token koji kodira stanje licence i potpisan je vašim privatnim ključem. Klijent zatim provjerava potpis tokena koristeći samo javni ključ i ne mora pozivati vaš server za svaki zahtjev. Ovo je savršeno za desktop aplikacije, lokalne instalacije ili visoko ograničene mreže.
Na strani servera, izdavanje tokena za offline verifikaciju je samo još jedan korak u toku procesa licenciranja. Kreirate ili preuzimate licencu, registrujete korištenje (na primjer, aktivaciju uređaja), a zatim dajete instrukcije sistemu za licenciranje da kreira token za tu kombinaciju licence i korištenja. Možete postaviti koliko dugo token treba da ostane važeći (na primjer, vrijeme trajanja u danima) tako da ga klijenti moraju periodično osvježavati.
Token uključuje kriptografski potpisan korisni teret koji kodira detalje kao što su datum isteka licence, ograničenja korištenja i potencijalno prilagođeni metapodaci. Budući da je token potpisan sa Ed25519, svaka promjena će poništiti potpis, osiguravajući da klijenti ne mogu produžiti svoje licence ili povećati broj mjesta samo uređivanjem JSON bloba.
Na strani klijenta, proces verifikacije je potpuno van mreže. Aplikaciji je potreban samo ispravan javni ključ i PASETO logika verifikacije, koja se može implementirati u različitim jezicima. Integritet i rok važenja tokena se provjeravaju lokalno, a aplikacija može odlučiti hoće li dozvoliti ili odbiti pristup na osnovu tog statusa. Ovo drastično smanjuje opterećenje servera i rješava ovisnost o mrežnoj povezivosti.
Licenciranje na osnovu radnog mjesta i registracija uređaja
Još jedna ključna mogućnost Laravel Licensing paketa je sprovođenje licenci na osnovu broja radnih mjesta: svaka licenca može biti ograničena na maksimalan broj upotreba, uređaja ili korisnika. Ovako implementirate planove poput „do 5 instalacija po licenci“ ili „10 članova tima po pretplati“ bez ponovnog izmišljanja tople vode.
Kada kreirate instancu licence, možete odrediti maksimalan broj korištenja, zajedno s istekom i entitetom koji je vlasnik licence. Licencni entitet je definisan kroz polimorfni odnos, tako da se licenca može priložiti korisnicima, timovima, organizacijama ili bilo kojem prilagođenom modelu koji definirate. To olakšava usklađivanje vašeg modela licenciranja sa vašim postojećim modelima domena.
Aktiviranje uređaja pod licencom se obavlja registracijom korištenja. Obično prosljeđujete instancu licence, otisak prsta uređaja ili neki drugi jedinstveni identifikator i opcionalne metapodatke poput naziva uređaja koji je čitljiv ljudima. Ovo kreira zapis koji predstavlja da ovaj određeni uređaj sada koristi jedno od dostupnih mjesta.
Identifikator uređaja može biti gotovo bilo šta, sve dok je jedinstven unutar vaše logike: hardverski hash, UUID ili čak kombinacija atributa korisnika i mašine. Paket ne nameće strogi format, što vam daje fleksibilnost u dizajniranju logike otiska prsta koja najbolje odgovara vašoj aplikaciji i modelu prijetnje.
Ako korisnik promijeni računare ili posumnjate na zloupotrebu, možete po potrebi opozvati određena korištenja ili cijele licence. Budući da sistem prati svaku aktivaciju kao prvoklasan zapis, možete lako prikazati pregled aktivnih uređaja, kada su aktivirani i odakle, te korisnicima pružiti ekrane za samostalno upravljanje uređajima.
Životni ciklus licence: istek, periodi odgode, obnavljanje i revizija
Licenciranje u stvarnom svijetu nije samo binarno stanje „važeće/nevažeće“; potrebno je podržati datume isteka, obnove, periode odgode i sveobuhvatno evidentiranje događaja licenciranja. Laravel paket za licenciranje rješava ovaj problem modeliranjem cijelog životnog ciklusa licence i pružanjem pomoćnih metoda za rad s njom.
Svaka licenca može se kreirati s vremenskom oznakom isteka, a paket nudi praktične metode za provjeru da li je licenca trenutno upotrebljiva. Ove provjere uzimaju u obzir i datum isteka i sve druge interne uslove koje licenca može imati, kao što su ograničenja broja mjesta ili status opoziva. Također možete preuzeti preostale dane do isteka kako biste korisnicima prikazali upozorenja.
Grejs periodi i obnavljanja su ugrađeni u logiku životnog ciklusa, što vam omogućava da licence privremeno ostane aktivne čak i ako je istekao strogi datum isteka. Ovo može biti posebno korisno prilikom integracije s vanjskim pružateljima usluga naplate: ako postoji malo kašnjenje između obrade plaćanja i ažuriranja licence od strane vašeg sistema, ne želite naglo blokirati korisnika.
Zapisivanje evidencije revizije je još jedan ključni stub ovog paketa. Svaki događaj vezan za licencu – kreiranje, aktivacija, izdavanje tokena, opoziv, obnova – može se automatski evidentirati. Ovo pruža pouzdanu evidenciju revizije koju možete koristiti za otklanjanje grešaka, korisničku podršku ili regulatorne zahtjeve. Ako kupac pita „zašto je moja licenca prestala raditi?“, imat ćete preciznu historiju umjesto nejasnih nagađanja.
Pored osnovnog radnog procesa, ekosistem oko paketa uključuje prateće pakete i alate. Ovo može pojednostaviti integraciju klijenata ili pružiti apstrakcije višeg nivoa za uobičajene scenarije, olakšavajući uključivanje licenciranja u vašu postojeću infrastrukturu i distribuciju klijentskih biblioteka ili SDK-ova vašim korisnicima.
Povezivanje Stripe pretplata s licenciranjem u Laravelu
Mnogi timovi se već oslanjaju na Stripe za mjesečno fakturiranje, a zatim se pitaju kako to uključiti u svoju logiku licenciranja tako da se aplikacija sama deaktivira kada plaćanje ne uspije. Sam Stripe ne pruža gotovu krajnju tačku za "provjeru licence", ali vam daje sve podatke potrebne za implementaciju robusne veze između plaćanja i licenci.
Uobičajeni obrazac je korištenje Stripe-ovih webhookova za pretplatu i pohranjivanje statusa pretplate u vlastitu bazu podataka. Kad god vam Stripe kaže da je pretplata kreirana, obnovljena, neuspješna ili otkazana, ažurirate relevantne zapise u svojoj Laravel aplikaciji. Taj zapis tada postaje izvor istine o tome da li licenca treba biti aktivna ili ne.
Na primjer, možete održavati tabelu članstava ili pretplata koja prati Stripe kupca, plan, trenutni status, datum obnove i sva druga poslovna polja koja su vam potrebna. Kada je pretplata postavljena na aktivnu ili probnu, kreirate ili produžavate pridruženu licencu. Kada Stripe pošalje webhook da plaćanje nije uspjelo i da je pretplata sada dospjela, otkazana ili neplaćena, prilagođavate stanje licence i moguće aktivirate opoziv ili skraćeni period odgode.
Neki programeri razmatraju pozivanje Stripeovog API-ja za svaki zahtjev kako bi provjerili da li je korisnik ažuriran, ali to rijetko je dobra ideja. To dodaje latenciju, stvara ovisnost o dostupnosti Stripe-a i nepotrebno je kada možete lokalno pohraniti relevantno stanje. Korištenje webhookova i lokalnih podataka je i otpornije i jeftinije u velikim razmjerima.
Tok integracije se može sažeti na sljedeći način: Stripe upravlja novcem, vaša Laravel aplikacija upravlja stanjima licenci. Nakon uspješne uplate, osiguravate da je licenca upotrebljiva (ili produžavate njen rok važenja). U slučaju neuspjeha ili otkazivanja, ažurirate licencu da uskoro ističe ili je označavate kao neupotrebljivu i oslanjate se na provjere licenci u cijeloj aplikaciji kako biste osigurali pristup.
Gdje implementirati provjere licenci u vašoj Laravel kodnoj bazi
Nakon što imate Stripe koji ažurira podatke o pretplati i sloj za licenciranje koji zna da li je licenca upotrebljiva, potrebno je da povežete te provjere sa svojom Laravel aplikacijom. To se obično radi putem middleware-a, politika i provjera ključnih operacija na nivou domene, umjesto nasumičnog rasipanja uvjetnih izraza.
Uobičajeni pristup je kreiranje middleware-a koji provjerava da li trenutni korisnik, tim ili organizacija ima važeću licencu prije pristupa zaštićenim rutama. Unutar middleware-a možete upitati model licenciranja (na primjer, preuzeti licencu pridruženu tom korisniku ili timu i pozvati metodu isUsable) i prekinuti s greškom ili preusmjeriti ako je licenca nevažeća ili istekla.
Za detaljniju kontrolu – kao što je licenciranje po funkciji ili funkcije s ograničenim brojem mjesta – možete primijeniti provjere na nivou politike ili usluge. Politika bi mogla osigurati da korisnikova licenca ima dovoljno preostalih mjesta prije nego što mu se dozvoli da pozove drugog člana tima. Klasa usluge bi mogla provjeriti da određena upotreba uređaja nije opozvana prije obrade operacija van mreže.
Budući da paket licenciranja pruža konzistentan API za provjeru statusa, preuzimanje broja dana do isteka i rukovanje tokenima, ne morate ponovo izmišljati ovu logiku u cijeloj kodnoj bazi. Umjesto toga, centralizirate ga u malom skupu pomoćnih programa ili usluga i ponovno ih koristite gdje god je potrebno provođenje licence, od HTTP kontrolera do poslova u redu čekanja.
U vanmrežnim scenarijima, vaša klijentska aplikacija se može prvenstveno oslanjati na PASETO token koji je primila od servera. Možete dizajnirati svoje krajnje tačke tako da klijent periodično ponovo provjerava validnost sa serverom (na primjer, jednom svakih nekoliko dana) kako bi obnovio token, sve dok Stripe potvrđuje da je pretplata još uvijek aktivna. Ako se plaćanja zaustave, jednostavno prestajete izdavati nove tokene ili skraćujete njihov vijek trajanja, a offline klijent će na kraju propasti verifikaciju kada stari token istekne.
Upravljanje Laravel implementacijama i alatima za licencirane aplikacije pomoću Pleska
Ako hostujete svoju Laravel aplikaciju na kontrolnoj ploči poput Pleska, ekstenzija Laravel Toolkit postaje važan dio načina na koji upravljate svojom licenciranom aplikacijom u produkciji. Ovo besplatno proširenje prvo treba instalirati; nakon što se aktivira, dodaje namjensko Laravel dugme vašim karticama domena i ladici „Kreiraj web stranicu“, pružajući vam centralizirani interfejs za većinu zadataka specifičnih za framework.
Prije nego što možete primijeniti licenciranje ili integrirati Stripe u produkcijsko okruženje, potreban vam je pouzdan način za implementaciju i registraciju vaše Laravel aplikacije na serveru. Laravel Toolkit podržava tri glavna toka: kreiranje Laravel skeleta, postavljanje iz udaljenog Git repozitorija i detekciju već postavljene Laravel aplikacije. Svaki od ovih tokova osigurava da su Laravelova struktura direktorija i korijen dokumenta ispravno konfigurirani.
Kreiranje kostura je korisno kada želite početi od nule ili prenijeti postojeću bazu koda kao zip datoteku ili direktorij. Plesk može pokrenuti standardni raspored Laravel foldera, pa čak i postaviti lokalni Git repozitorij. Nakon što je kostur kreiran, možete otpremiti ili zamijeniti zadane datoteke stvarnim kodom vaše aplikacije, uključujući logiku licenciranja, Stripe integraciju i konfiguracijske datoteke.
Ako se vaš projekat već nalazi u udaljenom Git repozitoriju, Plesk ga može direktno preuzeti. Jednostavno usmjerite alat na URL repozitorija (dodajući SSH ključ ako je potrebno) i pokrenite instalaciju. Ovo olakšava održavanje koda za licenciranje i naplatu u kontroli verzija i njegovu konzistentnu implementaciju u različitim okruženjima bez ručnog kopiranja.
Za postavke gdje je aplikacija već bila prenesena putem FTP-a ili na neki drugi način, možete dozvoliti Laravel Toolkitu da otkrije postojeću aplikaciju. Podešavate korijen dokumenta tako da ukazuje na javni direktorij, spremate promjene, a zatim pokrećete analizu kako bi Plesk prepoznao Laravel projekt. Nakon registracije, Laravel dugme se pojavljuje na kartici domene, otključavajući ostale funkcije alata.
Pokretanje Artisan, Composer i Node.js naredbi iz Pleska
Licencirane Laravel aplikacije često zavise od Artisan komandi za migracije, redove čekanja i zakazane zadatke, kao i od Composera i Node.js-a za zavisnosti i izgradnju resursa. Laravel Toolkit sve ovo sažima kroz grafički interfejs, tako da vam nije nužno potreban pristup ljusci da biste upravljali svojom aplikacijom.
Iz Laravel panela možete otvoriti namjenske kartice za Artisan, Composer i Node.js. Tamo možete izvršavati uobičajene naredbe odabirom s popisa ili ručnim unosom. To pokriva operacije kao što su pokretanje migracija baze podataka nakon promjene tabela licenciranja, osvježavanje redova čekanja koji obrađuju poslove vezane za licenciranje ili kompajliranje front-end resursa koji obrađuju status licence u korisničkom interfejsu.
Ovo je posebno korisno kada prilagođavate varijable okruženja za Stripe ili licencne ključeve i trebate obrisati ili keširati konfiguraciju. Sa samo nekoliko klikova možete pokrenuti potrebne Artisan naredbe kako biste osigurali da vaša aplikacija preuzme nove ključeve, URL-ove ili konfiguracije webhooka potrebne za vaš tok validacije pretplate i licence.
Budući da je svemu moguće pristupiti iz Plesk interfejsa, timovi s ograničenim iskustvom sa serverima i dalje mogu održavati postavke licenciranja produkcijskog nivoa bez direktnog SSH pristupa. Naravno, ako preferirate radne procese komandne linije, i dalje se možete osloniti na SSH, ali korisnički interfejs ovog alata pruža praktičnu alternativu za rutinske zadatke i brza rješenja.
Dnevnici, planirani zadaci i varijable okruženja u licenciranoj Laravel aplikaciji
Učinkovito upravljanje licencama u Laravelu uveliko ovisi o vidljivosti i planiranom radu u pozadini, a oboje su prvorazredni građani u Plesk-ovom Laravel Toolkitu. Možete pregledati logove aplikacija, upravljati planiranim zadacima i uređivati varijable okruženja direktno iz panela, što je posebno korisno za otklanjanje grešaka u vezi s licenciranjem.
Preglednik logova se fokusira na Laravelove vlastite log datoteke, što olakšava istraživanje grešaka ili upozorenja povezanih s provjerama licenci, Stripe webhookovima ili generiranjem tokena. Umjesto ručnog pregledavanja direktorija zapisnika, pristupate im putem Laravel dijela vaše domene. Ovo smanjuje vrijeme potrebno za identifikaciju problema poput nevažećih ključeva za potpisivanje, pogrešno konfiguriranih URL-ova webhookova ili isteklih certifikata.
Planirani zadaci su podjednako važni: mnoge operacije licenciranja i naplate izvršavaju se putem Laravelovog planera, kao što su čišćenje isteklih tokena, slanje podsjetnika za obnovu ili sinhronizacija statusa pretplate. Iz Plesk interfejsa možete vidjeti sve zakazane zadatke konfigurisane u vašoj Laravel aplikaciji i - pod pretpostavkom da imate ispravne dozvole - možete omogućiti ili onemogućiti upravljanje raspoređivačem za pretplatu.
Posebno na Linux serverima, možda ćete morati dozvoliti SSH pristup za pretplatu prije nego što možete u potpunosti upravljati planiranim zadacima. Nakon što je to omogućeno i planer aktivan, Laravel može pouzdano izvršavati vaše zakazane zadatke licenciranja u pozadini, uključujući zadatke koji periodično provjeravaju ispravnost reda čekanja ili regeneriraju offline tokene.
Varijable okruženja (.env) igraju ključnu ulogu u konfiguracijama licenciranja i naplate, kao što je postavljanje Stripe API ključeva, javnih ključeva za PASETO verifikaciju ili vjerodajnica baze podataka za tabele licenciranja. Laravel Toolkit pruža jednostavan editor za .env datoteku tako da možete prilagoditi ove postavke bez prijave putem SSH-a. Sve promjene koje napravite primjenjuju se odmah nakon spremanja, iako ćete možda morati osvježiti konfiguraciju ili keš memoriju ako ih vaša aplikacija koristi.
Režim održavanja, ažuriranja i skripte za implementaciju za stabilno licenciranje
Licencirane aplikacije zahtijevaju pažljive prakse implementacije kako bi se izbjeglo narušavanje provjera licenci ili tokova naplate tokom ažuriranja. Plesk-ov Laravel Toolkit nudi nekoliko funkcija koje vam pomažu da sigurno isporučujete nove verzije, uključujući upravljanje načinom održavanja, načine implementacije i prilagodljive skripte za implementaciju.
Režim održavanja privremeno stavlja vašu Laravel aplikaciju u kontrolisano stanje isključenja, vraćajući posjetiocima odgovor 503 SERVICE UNAVAILABLE. Ovo štiti korisnike od primjećivanja nasumičnih grešaka dok ažurirate migracije, mijenjate logiku licenciranja ili implementirate nove Stripe webhook handler-e. Uključivanje i isključivanje načina održavanja vrši se jednostavnim prekidačem u Laravel panelu.
Kada su u pitanju promjene koda za dostavu, možete birati između ručnih i automatskih strategija implementacije. Ručno postavljanje vam daje potpunu kontrolu: promjene u vašem Git repozitoriju se ne primjenjuju na Plesk dok eksplicitno ne pokrenete akciju postavljanja. Ovo je idealno kada želite pregledati migracije ili promjene licenciranja prije objavljivanja.
Automatsko postavljanje direktno povezuje ažuriranja sa Git operacijama ili webhookovima, ovisno o tome da li je vaš repozitorij lokalni ili udaljeni. Za lokalne Git repozitorije, svako slanje na glavnu granu može pokrenuti implementaciju koja ažurira kod vaše aplikacije i zavisnosti. Za udaljene repozitorije obično konfigurirate webhook; kada repozitorij aktivira određeni događaj, Plesk povlači najnovije promjene i pokreće scenarij implementacije koji ste definirali.
Sam scenario implementacije može se prilagoditi tako da se izvršavaju samo neophodni koraci. Možete omogućiti ili onemogućiti pojedinačne faze, a za složena podešavanja licenciranja možete definirati skriptu za implementaciju koja uključuje Artisan naredbe, resetiranje keša ili ponovno pokretanje reda čekanja. Na Linuxu morate omogućiti SSH pristup za pretplatu da biste uredili tu skriptu, ali nakon konfiguracije, ona se automatski pokreće pri svakoj implementaciji.
Uz robusnu konfiguraciju implementacije, možete razvijati svoj model licenciranja, ažurirati ključeve za potpisivanje, dodavati nove planove ili migrirati podatke o pretplati bez uzrokovanja nedosljednih stanja ili prekida rada za vaše korisnike. Kombinacija načina održavanja, predvidljivih scenarija implementacije i skripti prilagođenih vašoj logici licenciranja održava vaše produkcijsko okruženje stabilnim i sigurnim.
Radnici u redu čekanja i neuspjeli poslovi za licenciranje radnih opterećenja
Mnogi aspekti licenciranja i naplate se najbolje rješavaju asinhrono putem Laravelovog sistema redova čekanja, a Plesk-ov Laravel Toolkit uključuje interfejs za upravljanje redovima čekanja prilagođen ovim radnim procesima. Ovo vam omogućava aktiviranje i konfiguriranje radnika u redovima čekanja bez ručnog pisanja sistemskih usluga ili cron skripti.
Prije omogućavanja redova čekanja, potrebno je da imate uključene planirane zadatke i odgovarajući pozadinski sistem reda čekanja. Dokumentacija naglašava korištenje MySQL ili MariaDB baze podataka kao pozadinskog sistema za red čekanja, budući da je jednostavan za postavljanje i adekvatan za većinu slučajeva. Potrebnu zavisnost deklarišete u datoteci composer.json u odjeljku require, a zatim implementirate promjene tako da se composer.lock ažurira i vrati u vaš repozitorij.
Nakon što su potrebni paketi instalirani, prilagodite konfiguraciju .env datoteke kako biste odredili detalje veze s redom čekanja. U Plesku, otvorite Laravel panel, uredite varijable okruženja i dodate ili modificirate relevantne linije za vjerodajnice baze podataka i postavke reda čekanja. Nakon spremanja, obično stavite aplikaciju u način rada za održavanje, pokrenete potrebne Artisan naredbe za kreiranje tabela reda čekanja i migraciju baze podataka, a zatim ponovo onemogućite održavanje.
Sa postavljenom shemom, možete aktivirati radnika u redu čekanja iz Laravel sekcije domene. Interfejs vam omogućava podešavanje nekoliko opcija koje utiču na ponašanje radnika i korištenje serverskih resursa, kao što su zaustavljanje kada je red čekanja prazan, postavljanje vremenskog ograničenja za pojedinačne zadatke, maksimalan broj zadataka po pokretanju i ukupno vrijeme izvršavanja.
Zaustavljanje radnika kada je red prazan korisno je za nalete poslova licenciranja - poput obrade serije ažuriranja pretplate ili regeneriranja tokena - dok su radnici koji se duže izvršavaju korisni za kontinuiranu obradu u pozadini. Vremenska ograničenja i ograničenja poslova sprječavaju da zastoji ili problemi s radom troše resurse u nedogled, što je važno kada poslovi u redu čekanja obrađuju osjetljive procese poput sinhronizacije događaja pretplate na Stripe ili čišćenja podataka o licenciranju.
Ako nešto pođe po zlu s poslovima licenciranja, Plesk prati neuspješne zadatke na posebnoj listi. Iz Laravel Toolkita možete pregledati ove neuspješne zadatke, ponovo ih pokušati ili ih sve odjednom odbaciti. Ova vidljivost je ključna kada pogrešna konfiguracija ključeva, Stripe vjerodajnica ili obrade reda čekanja uzrokuje tihi neuspjeh zadataka povezanih s licencom, osiguravajući da možete brzo dijagnosticirati i riješiti problem.
Kombiniranjem pouzdanih redova čekanja sa strukturiranim modelom licenciranja i Stripe integracijom, možete izgraditi otporan sistem koji elegantno rješava rubne slučajeve umjesto blokiranja korisnika na svakoj mreži ili prekida obrade.
Spajanjem svega, Laravel vam omogućava da izgradite potpuno razvijen sistem licenciranja softvera gdje Stripe obrađuje ponavljajuće naplate, specijalizirani paket upravlja kreiranjem licenci, verifikacijom i revizijom, PASETO tokeni omogućavaju sigurnu upotrebu van mreže, a Plesk-ov Laravel Toolkit vam daje operativne kontrole za implementaciju, zakazivanje, stavljanje u red čekanja i praćenje svega, bez potrebe za ručnim upravljanjem serverom.