Documentation
89vids - Online Video Sharing Platform
Created: 28, November 2025 by Miguel Vasquez
Table of Contents
Requirements:
- PHP 8.2 or Greater
- MySQL 5.7 or Mariadb 10.3.17
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- Ctype PHP Extension
- JSON PHP Extension
- BCMath PHP Extension
- cURL
- GD Library
- allow_url_fopen (PHP.INI) is ON
- Fileinfo PHP Extension
- FFMPEG
IMPORTANT:
Make sure your server has PHP 8.2 or higher and MySQL 5.7 or Mariadb 10.3.17 as a minimum
IMPORTANT:
if you are running Nginx, please follow these instructions Nginx Configuration
Basic PHP configuration
max_execution_time minimum 6000memory_limit set to 512Mpost_max_size set the maximum upload value you wantupload_max_filesize must be the same maximum value of post_max_sizeSetting MySQL
- 1.) Create a database
- 2.) Create a user for database
Uploading Files
- Upload all files inside the folder
"Script"to the"public_html"or"www"folder on your server. You can compress the files or use FTP.
Changing the public directory
- Configure your web server's document / web root to point to the /public directory of the script. For example, if you've uploaded the script in example.com folder, your web directory should be changed to example.com/public folder.
- cPanel - New document root
- Plesk - Defining a custom document root
Installation
- After you have uploaded all files, go to
https://yousite.com/install - This screen will appear, all the boxes must be green to proceed with the installation.
- Next, configure your database, enter the name of your database, username, host and password.
- Next, create the Admin account, enter your name, email and password.
- If everything goes well, a success notice will appear, the installation is now complete.
- Get License key
- Go to https://miguelvasquez.net/account/purchases
- Copy the Purchase Code
- Create Cron Job
- Click on Cron Jobs
- Click on Common Settings and select Once Per Minute
- Create an account from here https://app.coconut.co/signup
- Get your API key from here https://app.coconut.co/api
- Enter the API key and configure in
Panel Admin > Video encoding - Go to Pusher dashboard and go to the Channels category.
- Click on
Create appSelect anameandcluster regionat your preference. - Next up, you should be redirected to your new app page. If not, head over Apps and select your app.
- Enter the API key and cluster region in
Panel Admin > General Settings > Websockets - Mail Set Up
- Go to
https://yousite.com/panel/admin/settings/email - Storage
- Go to
https://yousite.com/panel/admin/storage - Get yourself account Onesignal
- Step 1: Cick on New App/Website
- Step 2: Add OneSignal App Name, select What organization should it belong to? and select Set up your first channel: Web
- Step 3: Copy OneSignal App ID And click Add Key to create OneSignal Rest API Key
- Go to Panel Admin > Push Notifications enable and set the OneSignal App ID and OneSignal Rest API Key
- reCAPTCHA
- Go to
https://yousite.com/panel/admin/google - Get your API keys here https://www.google.com/recaptcha/admin/create
- Stripe Webhook
-
Go to the
Developers sectionof the Stripe dashboard and click onWebhooks. Click onAdd endpoint - 1) Your webhook url is
https://yourwebsite.com/webhook/stripe - 2) The events you should add to your webhook:
- charge.refunded
- checkout.session.completed
- customer.deleted
- customer.updated
- customer.subscription.created
- customer.subscription.deleted
- customer.subscription.updated
- invoice.payment_action_required
- invoice.payment_succeeded
- 3) Click on
Signing secretto reveal the Stripe Webhook Secret that you must place inDashboard > Payment Settings > Stripe -
API Version
2020-08-27 - Stripe Connect
- Set the countries or the country you want to send direct payments to your members at https://dashboard.stripe.com/settings/connect/express
- PayPal
- Login into your PayPal account.
- Go to the My apps & credentials section, click on Live button and then on the Create app button.
- Copy the
Client IDandSecretinPanel Admin > Payments Settings > PayPal. - Go to the My apps & credentials section, click on Live button and then select your app.
- Scroll down to LIVE WEBHOOKS and click on the Add webhook button.
- On the
Webhook URLfield paste your webhook URLhttps://yourwebsite.com/webhook/paypal - Under the Events types select All events and save your changes.
- Go to the My apps & credentials section, click on Live button and then select your app.
- Copy the
Webhook IDinPanel Admin > Payments Settings > PayPal - Paystack
- Get yourself a free Paystack account
- Get your API key from here https://dashboard.paystack.com/#/settings/developer
- Copy the API keys to
Panel Admin > Payment Settings > Paystack - Don't put anything in
Callback URL - In
Webhook URLputhttps://yourwebsite.com/webhook/paystack - Coinpayments
- Get yourself a free Coinpayments account
- Get your Merchant ID from here https://www.coinpayments.net/acct-settings
- Get your IPN Secret Key from
Account Settings -> Merchant Settings -> IPN - Copy the API keys to
Panel Admin > Payment Settings > Coinpayments - Mercadopago
- Get yourself a free Mercado Pago account,
- Get your Access Token from here https://www.mercadopago.com/mlb/account/credentials
- Copy the Access Token to
Panel Admin > Payment Settings > Mercadopago - Mollie
- Get yourself a free Mollie account.
-
Get your API key from here https://www.mollie.com/dashboard/developers/api-keys.
-
To activate the test mode is your dashboard mollie
-
Enable payment methods: click on
settingsand thenPayment methods
-
Then enable what you want, some payment methods work only with certain currencies, USD only accepts Credit Card and PayPal, EUR is accepted by all payment methods.
Here you can see more details https://docs.mollie.com/payments/multicurrency
- Copy the API keys to
Panel Admin > Payment Settings > Mollie - Razorpay
- Get yourself a free Razorpay account
- Get the API Keys from here https://dashboard.razorpay.com/#/app/keys
- Copy the API keys to
Panel Admin > Payment Settings > Razorpay - CCBill (Adult content allowed)
-
The first thing you need to do is enable
DYNAMIC PRICESon your CCBill account - contact their live support https://support.ccbill.com -
Select New Form, as you do not have any existing forms.
-
Enter the name you want in for the form and select the
Allow for dynamic price to be passed to formbox and click save.
-
Copy Flex Form ID in
Panel Admin > Payment Settings > CCBill - If you don't have one, contact CCBill support to get one.
-
Go to the Subaccount Manager section, select Webhooks from the menu. Fill in the
Webhook URLtext box with the URLhttps://yourwebsite.com/webhook/ccbill -
In
Webhook formatselectURL Encoded -
Click in
Select Alland click on update. - On the Account Info megamenu, click Sub Account Admin, then User Management.
- Select Turn off User Management in the top section.
-
Select
Do Not Collect Usernames and Passwordsin theUsername Settingssection. - Click the URLs Library button in the upper-right to create a new URL. The Saved URLs Editor dialog displays. 1. Use the fields under Add New to create a new URL with the following properties.
- Approval redirect to the Site 1. Click the arrow button to the left of your new flow to view the details. Approval Tile.
- OpenPix
- Create a new API/Plugin from here https://app.woovi.com/home/applications/add
- Copy the AppID on
Panel Admin > Payment Settings > OpenPix - The webhook URL would be the following: https://your-website.com/webhook/openpix
- NowPayments (Adult content allowed)
- Login into your NowPayments account, using https://account.nowpayments.io/sign-in
- Go to https://account.nowpayments.io/store-settings
- Add a new API Key
- Copy the key and add it into the Panel Admin into
Panel Admin > Payment Settings > NowPayments. - Go back to your NowPayments account over Store settings and generate an
IPN secret key - Add secret into the Panel Admin, over at
>Panel Admin > Payment Settings > NowPayments - The next step is to add crypto wallets into your NowPayments account.
- Recommendation adding as many wallets as possible with different crypto currencies so the conversion rate will be lower.
- Recommendation adding a payment covering percentage into your NowPayments account representing percentage of the payment that needs to be paid to be considered completed.
- Flutterwave
- Get yourself a free Flutterwave account
- Get your Public Key and Secret Key from here https://dashboard.flutterwave.com/dashboard/settings/apis
- Copy the API keys to
Panel Admin > Payment Settings > Flutterwave - Coinbase
- Get yourself Coinbase Commerce account in https://commerce.coinbase.com/signin
- Go to https://commerce.coinbase.com/dashboard/settings
- Search for API keys
- Click on Create an API key, copy the key and add it into the Panel Admin into
Panel Admin > Payment Settings > Coinbase - Search for Webhook subscriptions
- Click on Add an endpoint and add following url
https://yourwebsite.com/webhook/coinbase - Click on Show shared secret and add that secret into
Panel Admin > Payment Settings > Coinbase - Binance
- Get yourself a free Binance account
- Get the API Keys from here https://merchant.binance.com/en/dashboard/developers/api
- Copy the API keys to
Panel Admin > Payment Settings > Binance
Go to Panel Admin > General Settings > Cron Job and see the command you should place
Plesk - Scheduling TasksCoconutĀ® Settings
Note:
You can use the free plan, but I recommend that you activate the paid plan so that you can encode multiple videos at the same time.
Websockets
Important: If you want to migrate your site to any storage service (Amazon, DigtalOcean or Wasabi), you must upload the following folder located in the public / uploads of your current site.
Important: If your site is new you should upload the folder located in the public / uploads
Push Notifications (OneSignal)
* Click on the image to see it larger
* Click on the image to see it larger
* Click on the image to see it larger
IMPORTANT:
choose reCAPTCHA v2 and Invisible reCAPTCHA
IMPORTANT:
This step is essential, not doing it will not work.
Creating a FlexForm
Sub Account
Setup Webhooks
Disabling User Management
Create Library of URL (Approval)
2. URL Name. Enter a meaningful name for this URL. Forexample: Payment Success
3. URL. Under URL, enter the base URL for your Site store.
https://yourwebsite.com/ccbill/approved
2. Under the green Approve arrow, click the square to modify the action.
3. Approval URL. In the left menu, select A URL. Select Select a Saved URL and select the URL your created earlier (e.g. Payment Success).
4. Redirect Time. Select a redirect time of 1 second using the slider at the bottom and save the form. (e.g. 4 seconds)
If you have any problems or questions contact CCBill support https://support.ccbill.com
Social Login
- Go to
https://yousite.com/panel/admin/social-login
Age Verification
- Yoti Service
- Get yourself Yoti account
- Get API keys https://developers.yoti.com/age-verification/production-keys
- Copy the API keys to
Panel Admin > Age verification - Didit Service
- Get yourself Didit account
- Get API keys on API & Webhooks section
- Get Worflow ID from Workflows section
- Copy the API keys and workflow ID to
Panel Admin > Age verification
Customize
- Path the files
- Home page:
resources > views > index > home.blade.php - Login:
resources > views > auth > login.blade.php - Register:
resources > views > auth > register.blade.php - Become a creator:
resources > views > creator > become-creator.blade.php - Profile user:
resources > views > creator > show.blade.php - Wallet:
resources > views > users > wallet.blade.php - Navigation bar:
resources > views > includes > navbar.blade.php - Sidebar:
resources > views > includes > sidebar.blade.php - Footer:
resources > views > includes > footer.blade.php - CSS styles:
public > assets > css > styles.css - Javascript main:
public > assets > js > app.js
- Language files
- To change the script language go to: lang / en / Edit the text strings of all the files in are in that folder.
/*
|--------------------------------------------------------------------------
| Admin Language Lines
|--------------------------------------------------------------------------
|
*/
'admin' => 'Panel Admin',
'role_admin' => 'Admin',
'dashboard' => 'Dashboard',
Note:
You should only edit the right string, i.e .: 'role_admin' => 'Edit this...',
How to add a new language
Translate Slogan, Description and Keywords (SEO)
<?php
return [
/*
|--------------------------------------------------------------------------
| SEO Language Lines
|--------------------------------------------------------------------------
|
*/
'slogan' => 'Online Video Sharing Platform',
'description' => 'Discover the best free and premium videos created by talented creators worldwide.',
'keywords' => 'videos,video,Stars,creators,content',
];
IMPORTANT:
You will need to change in lang/es/seo.php if you want to use that language or if you have created another one.
Translate Categories
<?php
return [
/*
|--------------------------------------------------------------------------
| Categories Language Lines
|--------------------------------------------------------------------------
|
*/
"Animals" => "Animales",
"Business" => "Negocios",
"Charity" => "Caridad",
];
Translate Pages
Sitemap
https://yoursite.com/sitemaps.xmlFAQ
lang / en / app.phpDashboard > ThemeDashboard > General Settings > LimitsDashboard > Google and put the credentials and later go to Dashboard > General SettingsDashboard > Payment Settings > Generalstorage > installed and enter the url https://yousite.com/installDB_HOST=127.0.0.1
DB_DATABASE=DB
DB_USERNAME=USER
DB_PASSWORD="PASS"
Troubleshooting
storage / framework and delete the file named down and file maintenance.php go back to Panel Admin > Maintenance mode put "off" and then "on" again, whenever you want to have your site in mode maintenance.Panel Admin > Email settings).htaccess file has not been corrupted when uploading to your server..env file has not been corrupted when uploading to your server. It must have a dot before the name, and you must have at least PHP 8.2Make sure these folders and files have 0755 permissions
FilesHow to update
Upgrades folder, select the version you want, click on the README.html file and follow the steps.Sources and Credits
- Laravel - https://laravel.com/
- jQuery - https://jquery.com/
- Bootstrap - https://getbootstrap.com/
- Font Awesome - https://fontawesome.com
- jquery Form // malsup.com/jquery/form/
- jqueryTimeago.js // http://timeago.yarp.com/
- Fonts - https://www.google.com/fonts
- Tinymce - http://www.tinymce.com/
- Ckeditor - https://ckeditor.com/