Documentation

Zuromi - Perzonalized Celebrity Video Platform

Created: 05, July 2024 by Miguel Vasquez

Last update 27, June 2025

Celebrities offer video messages for their fans, whether for birthdays or any special occasion, and their fans also send private messages, to connect with your favorite celebrities.

Requirements:

  • PHP 8.2 or Greater
  • MySQL 5.7
  • 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

Basic PHP configuration

  • max_execution_time minimum 6000
  • memory_limit set to 512M
  • post_max_size set the maximum upload value you want
  • upload_max_filesize must be the same maximum value of post_max_size

  • Setting MySQL

    • 1.) Create a database
    • 2.) Create a user for database
    • 3.) Import the Database
    • Log into your phpMyAdmin and import the zuromi.sql file located in the folder MySQL

    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.

    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.
    • Create Cron Job
    • Click on Cron Jobs
    • Click on Common Settings and select Once Per Minute
    • /usr/local/bin/ea-php82 /home/username/public_html/artisan schedule:run >> /dev/null 2>&1
    • In the image above change ea-php82 for your PHP version, username for yours, and put the path where your project is located, in my case it is in public_html, but if it is in another directory you should put public_html/zuromi/ like this
    • Click on Add New Cron Job and you're done!
    • Plesk - Scheduling Tasks

      Coconut® Settings

      Websockets

      • Go to Pusher dashboard and go to the Channels category.
      • Click on Create app Select a name and cluster region at 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

      Video Call (Agora)

      • Get yourself account Agora.io
      • Go to https://console.agora.io/ and Click on Create a Project and next Configure
      • * Click on the image to see it larger
      • Select Live and add a Project name
      • * Click on the image to see it larger
      • Scroll down and select Project status Enabled and click save.
      • * Click on the image to see it larger
      • Copy App ID and Add on Panel Admin > General Settings > Video Calls
    • Mail Set Up
    • Go to https://yousite.com/panel/admin/settings/email
    • Storage
    • Go to https://yousite.com/panel/admin/storage
    • Push Notifications (OneSignal)

      • Get yourself account Onesignal
      • Step 1: Cick on New App/Website
      • * Click on the image to see it larger
      • Step 2: Add OneSignal App Name, select What organization should it belong to? and select Set up your first channel: Web
      • * Click on the image to see it larger
      • Step 3: Copy OneSignal App ID And click Add Key to create OneSignal Rest API Key
      • * Click on the image to see it larger
      • 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 section of the Stripe dashboard and click on Webhooks. Click on Add 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 secret to reveal the Stripe Webhook Secret that you must place in Dashboard > 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 ID and Secret in Panel 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 URL field paste your webhook URL https://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 ID in Panel 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 URL put https://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 settings and then Payment 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 PRICES on your CCBill account - contact their live support https://support.ccbill.com
    • Creating a FlexForm
    • 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 form box and click save.
    • Copy Flex Form ID in Panel Admin > Payment Settings > CCBill
    • Sub Account
    • If you don't have one, contact CCBill support to get one.
    • Setup Webhooks
    • Go to the Subaccount Manager section, select Webhooks from the menu. Fill in the Webhook URL text box with the URL https://yourwebsite.com/webhook/ccbill
    • In Webhook format select URL Encoded
    • Click in Select All and click on update.
    • Disabling User Management
      • 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 Passwords in the Username Settings section.
      Create Library of URL (Approval)
    • 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.
      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
    • Approval redirect to the Site
    • 1. Click the arrow button to the left of your new flow to view the details. Approval Tile.
      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
    • 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

    Social Login

    • Go to https://yousite.com/panel/admin/social-login

    Customize

    • Path the files
    • Home page: resources > views > index > index.blade.php
    • Explore page: resources > views > index > explore.blade.php
    • Login: resources > views > auth > login.blade.php
    • Register: resources > views > auth > register.blade.php
    • Join as talent: resources > views > default > join-talent.blade.php
    • Enroll: resources > views > verification > enroll.blade.php
    • Profile user: resources > views > users > profile.blade.php
    • Account: resources > views > users > account.blade.php
    • Wallet: resources > views > users > wallet.blade.php
    • Navigation bar: resources > views > includes > navbar.blade.php
    • Navigation bar (Mobile): resources > views > includes > menu-mobile.blade.php
    • Footer: resources > views > includes > footer.blade.php

    • CSS styles: public > css > styles.css
    • Javascript main: public > 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',

    How to add a new language

  • Duplicate the folder lang / en
  • Rename to your language for example es
  • Translate the strings
  • Go panel admin https://yourwebsite.com/panel/admin/languages/create and add you new lenguage

  • Translate Slogan, Description and Keywords (SEO)

  • Go to lang / en / seo.php
  • <?php
    
    return [
    /*
    |--------------------------------------------------------------------------
    | SEO Language Lines
    |--------------------------------------------------------------------------
    |
    */
    "slogan" => "Custom video of your favorite Stars",
    "description" => "Personalized videos from your favorite celebrities",
    "keywords" => "Custom video,video,Stars,actor,actress,content",
    ];

    Translate Categories

  • Create a file called categories.php in the folder of the language to be translated, for example lang / es
  • <?php
    
    return [
    
    	/*
    	|--------------------------------------------------------------------------
    	| Categories Language Lines
    	|--------------------------------------------------------------------------
    	|
    	*/
    	"Animals" => "Animales",
    	"Business" => "Negocios",
    	"Charity" => "Caridad",
    ];
  • The key identifier will be the Slug / URL of the category
  • Translate Video occasions

  • Create a file called occasions.php in the folder of the language to be translated, for example lang / es
  • <?php
    
    return [
    
    /*
    |--------------------------------------------------------------------------
    | Video occasions Language Lines
    |--------------------------------------------------------------------------
    |
    */
    "birthday" => "🎂 Cumpleaños",
    "special_occassion" => "🥂 Ocasión Especial",
    "joke" => "😆 Chiste",
    ];
  • The key identifier will be the Unique ID of the video occasion
  • Translate Pages

  • Just create a page by selecting the new language, remember that you must put the same Slug / URL

  • Sitemap

  • https://yoursite.com/sitemaps.xml

  • FAQ

  • How to edit text on the homepage
  • Go to lang / en / frontend.php
  • How to change logo and favicon
  • Go to Dashboard > Theme
  • How to change upload limits
  • Go to Dashboard > General Settings > Limits
  • How to activate the captcha
  • Go to Dashboard > Google and put the credentials and later go to Dashboard > General Settings
  • Configure Currency Code, Currency Symbol, Fee commission among others
  • Go to Dashboard > Payment Settings > General
  • How to perform a scratch installation
  • Delete the file storage > installed and enter the url https://yousite.com/install
  • How to install on a new server
  • Zip all the files and upload to your new server, copy the new credentials to the .env file, you must create the database and import the one from your old server.
  • DB_HOST=127.0.0.1
    DB_DATABASE=DB
    DB_USERNAME=USER
    DB_PASSWORD="PASS"

    Troubleshooting

  • I can't turn off maintenance mode
  • Go to 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.
  • Error creating an account
  • Make sure you have correctly configured the email in the admin panel (Panel Admin > Email settings)
  • Error 404 in the installer
  • Check that your .htaccess file has not been corrupted when uploading to your server.
  • Error 500 in the installer or on the home page
  • Check that your .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.2
  • Twitter Login Error
  • The app must be created using version 1.0

  • Make sure these folders and files have 0755 permissions

    Files
  • .env
  • Folders
  • bootstrap / cache /
  • public / images /
  • public / temp /
  • public / uploads /
  • storage

  • How to update

  • Go to the 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
    • IcoMoon - http://icomoon.io
    • jquery Form // malsup.com/jquery/form/
    • jqueryTimeago.js // http://timeago.yarp.com/
    • Readmore - http://jedfoster.com/Readmore.js/
    • Fonts - https://www.google.com/fonts
    • Tinymce - http://www.tinymce.com/
    • Ckeditor - https://ckeditor.com/
    • Morris - http://morrisjs.github.io/morris.js/

    Any problem or doubt send me an email to support@miguelvasquez.net
    Do not forget to visit miguelvasquez.net


    Thank you for purchasing my script 😉