| Provider | Ingestion | Playback | Restricted content | VODs | Latency |
|---|---|---|---|---|---|
| PushrCDN | RTMP (OBS) | HLS stream | ✓ | ✓ | 10-15s |
| Livekit | WebRTC (Browser) | WebRTC | ✗ | ✗ | 0.5s |
Each driver requires different configuration settings. Choose your preferred provider and follow the instructions below to complete setup.
PushrCDN
PushrCDN provides a simple way to integrate CDN-powered streaming with your platform. Begin by creating and verifying your account.
Account Verification
- Fill in your personal information.
- Complete your payment details.
- Under
Media Platform > Go Live, submit the required verification documents.
Configuration Steps
- Go to CDN > Push Zones and create a new push zone.
- Copy the Push Zone ID into
Admin > Settings > Streaming > Zone ID. - Copy your API key from the Personal Information page and enter it in
Admin > Settings > Streaming > API key. - Set the desired encoder location (
eu,us, orsg) inAdmin > Settings > Streaming > Encoder region.
After completing these steps, your platform will support live streaming. You can also configure additional options like VODs, encoders, and bitrates from the admin panel.
LiveKit
LiveKit is an open-source solution for real-time video and audio streaming. To enable it, choose LiveKit under Admin > Settings > Streams > Streaming driver and fill in the following:
- API key – Found under Cloud Console > Project > API Keys.
- API secret – Also in
API Keys, next to your public key. - WS URL – Available in the project overview, usually starts with
wss://.
Once configured, your platform will use LiveKit for real-time streaming. You can manage rooms, participants, and other features from the LiveKit Console.
Google reCAPTCHA
Use a Google reCAPTCHA Enterprise web key with challenges enabled. The app needs only two values: Site Key and Secret Key.
- In Google Cloud, search for and open reCAPTCHA Enterprise. Do not open reCAPTCHA Enterprise API.
- Select or create a project, then create a reCAPTCHA Web key.
- Add your domain names as plain hostnames, such as
example.com. - Enable challenges mode for the key.
- Copy the Site Key and Secret Key into
Admin > Settings > Security > Captcha, then select Google reCAPTCHA as the driver. - Save the settings, then test a public form in a private browser window.
Do not include https://, paths, or trailing slashes in domain names. Do not use an API key or score-only key with this driver.
If Google shows an Edit API key page with API restrictions or reCAPTCHA Enterprise API, that is the wrong place for this app. Using it will show ERROR for site owner: Invalid key type on the form.
Cloudflare Turnstile
Cloudflare Turnstile is a user-friendly, privacy-focused captcha alternative.
- Log into Cloudflare Dashboard and create or open your project.
- Go to the Turnstile section to create a new site, then copy the Site Key and Secret Key.
- In
Admin > Settings > Security > Captcha, select Turnstile as the Captcha Driver and paste your keys.
hCaptcha
hCaptcha is another popular captcha solution focused on privacy and security. To set it up:
- Go to hCaptcha’s official site or dashboard and create your account.
- Once your project is created, copy the Site Key and Secret Key.
- In
Admin > Settings > Security > Captcha, select hCaptcha as the Captcha Driver. - Paste your hCaptcha Site Key and Secret Key into the respective fields.
Twitter / X
- Go to https://developer.twitter.com and create a new app.
- Get elevated access to the Twitter API via this link.
- Choose your Application Environment (dev or prod), name your app, and you’ll receive an
API KeyandAPI Key secret. Add them toAdmin > Settings > Social media. - Once created, go to app settings > “User authentication settings” > Setup.
- For “App permissions,” select “Read,” and also enable “Request email address from users,” if desired.
- Copy the
Callback URLfrom your admin panel and add it to the “Callback URLs” field in your Twitter app’s settings.
- Create a new project at https://console.developers.google.com/projectcreate.
- Generate credentials at https://console.developers.google.com/apis/credentials.
- Choose “OAuth client ID > Consent > Web application.”
- Copy your
Client IDandClient Secret, then add them toAdmin > Settings > Social media. - Copy the
Callback URLfrom your admin panel and add it to your Google “Authorized redirect URIs.”
- Visit https://developers.facebook.com/apps and create a new app (Consumer). Fill in any required details.
- Go to
App settings > Basic, copy theApp ID&App secret, and add them toAdmin > Settings > Social media. - Navigate to
App > Facebook Login > Settings. - Copy the admin
Callback URLand add it underValid OAuth Redirect URIsin your Facebook app settings.
If everything went fine, you can access the Admin panel at http://your-domain.com/admin. The initial admin credentials were set during installation/user creation.
After setting up your main admin account, you can manage roles and create other admin users within the admin panel.
If you lose access to your admin account, you can reset the user password or create another user with admin privileges via the following command or SQL query:
- You can run this command, over CLI
php artisan make-admin user@example.com. - Or run the following queries onto your database manually (EG: Via PHPMyAdmin).
Using the admin panel, you can now continue with setting up the rest of settings for your instance, like branding elements, colors, taxes and more.
Info
Before making an update, always remember to do a complete backup of your website.
Info
If you've made any modifications to the software’s files, your changes will be lost.
Whenever new major updates are available, you will be notified via Envato. When notified, head over your Envato Downloads area and download the latest .zip archive.
Once downloaded, log in to your website using an administrator account, then proceed with the following steps:
- Make a backup of the
.envconfig file located on your server. - Upload the
.zip, onto your server and extract it. - Copy over (overwrite) the contents of
Scriptfolder into your website folder. - Restore your
.envconfig file on your server. - Go to
https://example.com/admin/update(using your website's URL) and follow the update wizard.
Common Issues
• Incomplete update — you did not run the database update step at /admin/update.
• Missing/incorrect .env file after the update.
• Incompletely uploaded vendor folder - Rename old one and re-add the new one.
• Missing storage/app/installed file (you may see the installer again after update).
You can check your server logs or the app logs in storage/logs/laravel.log for any errors.
- I have a support inquiry, a question or a problem, how can I contact you? You can contact us by sending us a private message over our Codecanyon profile.
- What hosting do you recommend? We recommend using DigitalOcean, as they offer great performance and flexibility at an affordable price.
- Is installation included in the price? No, installation is not included. We offer installation services for an extra fee, for which you can send us a message.
- My website returns a Not Found message, why? Please ensure that you have
mod_rewriteenabled on your server. - # I have uploaded my files but get a 500 error. Why? This usually happens due to a couple of reasons:
- When uploading the script files via FTP, and your operating system is skipping hidden files, including
.env. Re-upload that file, plus any other hidden files (like.htaccess), or upload the entire.zip onto the server and extract it there - It can also happen when moving files around in cPanel's File Manager. Make sure to go to
Settings > Preferencesand checkShow hidden Files (dotfiles)so that hidden files are selectable. - Another cause could be a missing PHP extension. Check
storage/logs/laravel.logfor the exact error or missing extension.
- When uploading the script files via FTP, and your operating system is skipping hidden files, including
- # How can I edit my homepage? Generally, each page—including the homepage—has the following structure:
- Controllers are located in the
app/Http/Controllersfolder. - Views (the HTML) are located
resources/views/page.blade.phppath. - Javascript code is located at
public/js/pages/page.jspath. - CSS code is located at
public/css/pages/page.csspath. So, for the homepage specifically, you might find files likehome.css, home.js, home.blade.php, etc. You’ll need to back up and replace any of the modified files after each update You can handle most of the branding elements out of the admin, as for the text/strings, you can simply change them out of the translation files.
- Controllers are located in the
- # How can I update my custom modified version of the script? We recommend the following workflow for maintaining custom versions:
- Create your own private repository. Not using a private will get the repo auto-taken down.
- Host your custom code changes on a separate branch.
- Pull or merge new updates from the main branch.
- Resolve any conflicts if necessary.
- Release your (custom) updated version of the script.
- Use the How to update guide for applying final changes.
- # How can I change the PWA app icons? PWA can be configured from Admin > Settings > General > PWA. To override the generated app icon and splash screen assets, replace the files in
assets/pwa/generated, then clear your browser cache. - # How can I generate VAPID keys manually? If the Generate VAPID keys button fails, generate a key pair on your own computer with
npx web-push generate-vapid-keys --json. If needed, install it first withnpm install -g web-push, then runweb-push generate-vapid-keys --json. Copy thepublicKeyandprivateKeyintoAdmin > Settings > Notifications > Web Pushand save. - Assets are not uploading or displaying when using local storage. Why? First, check whether
Admin > Settings > Site urlhas an invalid value. Next, confirm the storage symlink is active. If not, re-create it by:rm -rf public/storageln -s storage/app/public public/storage
- # I’m getting a 500 error after changing the file storage driver. Why? This typically happens if the storage driver credentials are incorrect. If you can’t access the admin panel, reset the driver via a DB query:
UPDATE settings SET value='public' WHERE id=95; - # I am having issues with uploading large files. What can I do? This is usually related to server/web-server/PHP limits. You can tweak:
Admin > Settings > Media > Max file uploads sizeAdmin > Settings > Media > Chunked uploadsIf you still have issues, these PHP settings might help, but other firewall or server configurations can also affect uploads.
- # I am having issues with file uploads when CloudFlare is active Generally speaking, if using (the free tier of) Cloudflare DNS, there are a few issues that might arise:
- Max file upload of 100MB
- Max connection timeout of 100s In order to bypass the first one, you can simply enable
Chunked uploads, while for the second one, you need to either purchase a premium CF account, or use Coconut encoding, as most likely, you are hitting this issue during videos encoding process, on the file upload module.
- # I'm having issues with ffmpeg-encoded videos. Why? This often stems from the server/web-server or the FFMpeg build. Possible causes range from missing encoders to memory errors. The
storage/logs/laravel.logandffmpeg.logfiles usually shows the actual error. If it's audio-encoder or memory-related, try adjusting:Admin > Settings > Media > FFMpeg video conversion quality presetAdmin > Settings > Media > FFMPEG Audio encoderIf problems persist, you may need to reconfigure server settings or upgrade the FFMpeg build.
- # Queue jobs are not running. What should I check? First, open
Admin > Settings > Runtime > Queueand run the queue test.- For worker mode, copy the worker command from the admin panel and keep it running with Supervisor, systemd, or another process manager.
- For Redis or SQS, remember that the remote service stores jobs only. Your app still needs a worker to execute them.
- For spawned mode, confirm your host allows PHP CLI process spawning.
- On shared hosting, use inline mode or a cron worker with
--stop-when-empty.
- # Media moderation scans are stuck or failing. Why? Check
Admin > Settings > Compliance > Media moderationfirst.- Confirm moderation is enabled and the Sightengine API user/secret are correct.
- Check the scan estimate and make sure daily or monthly operation budgets are not exhausted.
- For larger scans, use queue worker mode.
- For asynchronous video checks, the site must be publicly reachable over HTTPS.
- # How do I test payments on the demo website? Depending on your chosen payment provider, these test credentials can be used:
- Stripe: Card: 4242 4242 4242 4242 Date: Any future date CVC: 123
- PayPal: Email: sb-mzdi86428457@business.example.com Password: Dz1d_EP/
- CCBill: VISA: 4111111111111111 MasterCard: 5105105105105100 Discover: 6011111111111117 CVV: 300
- Verotel: Card: 9999996967336390 Date: Any future date CVV: 300
© document.write(new Date().getFullYear()) Qdev Techs - All rights reserved.