Introduction

  • Thank you for choosing the Funbun app. We are pleased to have you with us. Enclosed is the documentation to help you set up and launch the app easily. Please read it carefully, as it contains important information. If you need any assistance or have questions, our support team is just a message away.

Extract Project Zip

  • All setup is performed using Terminal (SSH).
  • Connect to your AWS server using:
ssh ubuntu@YOUR_SERVER_IP
  • Upload the backend zip file using WinSCP or SCP.
  • Navigate to your project directory and extract:
cd /home/ubuntu/funbun unzip backend.zip -d backend

Create Instance In AWS

  • Launch an AWS EC2 Instance.
  • Instance Type: t3a.medium
  • Operating System: Ubuntu 24.04 LTS
  • Enable ports in Security Group:
    • 22 – SSH
    • 80 – HTTP
    • 443 – HTTPS
  • Attach key pair and launch the instance.
  • Setup MariaDB (MySQL)

    • Update system packages:
    sudo apt update && sudo apt upgrade -y
    • Install MariaDB (MySQL compatible):
    sudo apt install -y curl software-properties-common sudo apt install -y mariadb-server mariadb-client
    • Start MariaDB:
    sudo systemctl start mariadb
    • Enable MariaDB Service at Server Startup:
    sudo systemctl enable mariadb
    • Verify version:
    mysql --version mysql Ver 15.1 Distrib 10.6.22-MariaDB
    • Secure the database:
    sudo mysql_secure_installation
  • Setup Nginx

    • Install Nginx:
    sudo apt install nginx -y
    • Check Nginx version:
    nginx -v nginx/1.18.0 (Ubuntu)
    • Start and enable Nginx:
    sudo systemctl start nginx sudo systemctl enable nginx
  • Setup Node.js And PM2

    • Update Existing Pacakages
    sudo apt update && sudo apt upgrade -y
    • Install Required Dependencies:
    sudo apt install -y curl ca-certificates build-essential
    • Install NVM (Node Version Manager):
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    • Reload terminal:
    source ~/.bashrc
    • Check NVM version:
    nvm -v
    • Install Node.js version v20.19.4:
    nvm install 20.19.4 nvm use 20.19.4 nvm alias default 20.19.4
    • Verify Node and npm:
    node -v v20.19.4 npm -v 10.8.2
    • Move Node and NPM to /usr/bin:
    sudo ln -s ~/.nvm/versions/node/v20.19.4/bin/node /usr/bin/node sudo ln -s ~/.nvm/versions/node/v20.19.4/bin/npm /usr/bin/npm
    • Install PM2 globally:
    npm install -g pm2
  • Setup Database In MariaDB

    • Login to MariaDB:
    sudo mysql
    • Create database and user:
    CREATE DATABASE funbun; CREATE USER 'funbun_user'@'localhost' IDENTIFIED BY 'StrongPassword@123'; GRANT ALL PRIVILEGES ON funbun.* TO 'funbun_user'@'localhost'; FLUSH PRIVILEGES;
    • copy schema.sql file from database folder into /home/ubuntu folder in server
    • Import the database schema:
    mysql -u funbun_user -p funbun < /home/ubuntu/schema.sql
  • Setup Project In Server

    • Navigate to project directory:
    cd /home/ubuntu/funbun/backend
    • Setup and configure the .env file:
    mv .env.example .env
    • Edit the .env file and update database, server, and app settings.
    • Install project dependencies:
    npm install
    • Notification Setup (Firebase)
    • Go to Firebase Console → Project Settings → Service Accounts.
    • Click Generate new private key and download the JSON file.
    • Upload the downloaded file to the backend config folder:
    /home/ubuntu/funbun/backend/config
    • Rename the downloaded file to firebase.json:
    mv firebase-adminsdk-xxxxx.json firebase.json
    • Start backend using PM2:
    pm2 start index.js --name funbun pm2 save pm2 startup
    • Restart backend after Firebase setup:
    pm2 restart funbun

    Env file explain

    • PORT: The port number where your Node.js project runs. Commonly, 3000 or 5000.
    • TOKEN_KEY: A secret key used for JWT encryption and authentication for API requests.
    • DATABASE_HOST: The SQL database hostname. Usually set to "localhost" for local development.
    • DATABASE_NAME: The name of your SQL database.
    • DATABASE_USERNAME: The username used to connect to your database.
    • DATABASE_PASSWORD: The password associated with your database username.
    • DATABASE_PORT: The database port number. For MySQL/MariaDB, the default is 3306.
    • APP_URL: The base URL of your backend server that your frontend or mobile app will call.
    • SERVER: Environment mode. Use development for local testing or production for a live server.
    • REVENUE_CAT_PLAY_STORE_V1_API_KEY: RevenueCat API Key for handling Google Play Store subscriptions.
    • REVENUE_CAT_APP_STORE_V1_API_KEY: RevenueCat API Key for handling Apple App Store subscriptions.
    • FIREBASE_WEB_APP_KEY: Firebase Web API Key, used for dynamic links or Firebase Web SDK integrations.
    • CURRENCY_API: Your currency API key (e.g., from CurrencyAPI) used for fetching exchange rates.

    Configure Nginx Reverse Proxy (Without SSL)

    • All steps are performed using Terminal (SSH).
    • Create a new Nginx configuration file for your domain:
    sudo nano /etc/nginx/sites-available/funbundev.yourdworld.com
    • Paste the following configuration (WITHOUT SSL):
    
                server {
                listen 80;
                server_name funbundev.yourdworld.com;
    
                access_log /var/log/nginx/funbundev.access.log;
                error_log /var/log/nginx/funbundev.error.log;
    
                # Main application proxy
                location / {
                    proxy_pass http://127.0.0.1:9000;
                    proxy_http_version 1.1;
    
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "Upgrade";
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
                    access_log off;
                }
    
                # Socket.IO proxy
                location /socket.io/ {
                    proxy_pass http://127.0.0.1:9000;
                    proxy_http_version 1.1;
    
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "Upgrade";
                    proxy_set_header Host $host;
                }
            }
    
              
    • Save and close the file:
    • Press CTRL + O → press Enter (to save)
    • Press CTRL + X (to exit nano)
    • Enable the site:
    sudo ln -s /etc/nginx/sites-available/funbundev.yourdworld.com /etc/nginx/sites-enabled/
    • Test Nginx configuration:
    sudo nginx -t
    • Expected output:
    
              nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
              nginx: configuration file /etc/nginx/nginx.conf test is successful
              
    • If you see the above message, your configuration is valid.
    • Restart Nginx:
    sudo systemctl restart nginx
    • Verify your application is accessible at:
    http://funbundev.yourdworld.com
  • SSL Certificate Setup (Let’s Encrypt + Certbot)

    Step 1: Install Certbot

    • Update package list:
    sudo apt update
    • Install Certbot with Nginx plugin:
    sudo apt install certbot python3-certbot-nginx -y

    Step 2: Generate SSL Certificate (Let’s Encrypt)

    • Run the following command to generate SSL for your domain:
    sudo certbot --nginx -d funbundev.yourdworld.com
    • During the process:
      • Enter your email address for renewal notifications
      • Agree to the Let’s Encrypt terms
      • Select the option to redirect HTTP to HTTPS

    Step 3: Locate Generated Certificate Files

    • After successful installation, Let’s Encrypt generates certificate files at:
    /etc/letsencrypt/live/funbundev.yourdworld.com/
    • Main files:
      • fullchain.pem – SSL Certificate (contains -----BEGIN CERTIFICATE-----)
      • privkey.pem – Private Key (contains -----BEGIN PRIVATE KEY-----)

    Step 4: Use Certificate in Your Backend (If Required)

    • If your Node.js backend requires manual certificate files:
    • Open your backend config directory.
    • Copy content of:
      • /etc/letsencrypt/live/funbundev.yourdworld.com/fullchain.pem → paste into production.funbun.crt SSL Certificate Location
      • /etc/letsencrypt/live/funbundev.yourdworld.com/privkey.pem → paste into production.funbun.key SSL Certificate Usage
    • Restart your Node.js server after updating files.

    Step 5: Verify Auto-Renewal

    • Test automatic renewal:
    sudo certbot renew --dry-run

    Final Access URL

    https://funbundev.yourdworld.com

    Admin Panel Setup

    • Open Admin Code in Vs studio code
    • Rename .env.example to .env
    • Edit env file in admin
    • update backend url to https://funbundev.yourdworld.com
    • Server URL Setup
    • install Node modules
    npm i
    • Create production build:
    npm run build
    • Upload build files into backend admin directory.
    • Upload Build to Server
    • Access admin panel via configured domain.
  • SetUp Agora

    • How to setup project at agora and getting credentials
    1. Sign up at theAgora Console.
    2. Navigate to the sidebar and click on "Project Management."
    3. Select "Create New Project."
    4. Fill in all the required information.
    5. Click on "Submit" to finalize the creation of your new project.
    6. Once your project is created, copy the Agora App ID for future use.
    7. Click on the "Configure" button. This will display the configuration page as shown below.
    8. On the configuration page, copy the Agora App Certificate for future use.
    9. This process allows you to obtain the App ID and App Certificate for your Agora project from the console.
    10. Enter the Agora Key and Agora Certificate In details in the admin panel under the plugin section In VideoCall plugin.

    RevenueCat Configuration

    1. Navigate to https://www.revenuecat.com/.
    2. Log in using your RevenueCat credentials.
    3. Next, you need to add the App Store Key and Play Store Key to code. You can get these keys by going to the RevenueCat dashboard > API Keys > Secret Api Keys. Copy and paste these keys into the respective fields of code.
    4. Copied key paste to config > .env.
    5. in backend env key name is REVENUE_CAT_APP_STORE_V1_API_KEY and REVENUE_CAT_PLAY_STORE_V1_API_KEY

    SMTP Configuration

    • The first step of the process is to create an email account on your hosting package.
    • Once you have your email account created, you can proceed with the actual configuration of your Funbun website. You need to access your website as administrator and go to SMTP settings from Admin Panel -> Plugin -> SMTP config
    • Edit the following options:
      1. SMTP Host -mail.example.com (change example.com to your actual domain)
      2. SMTP Username - Enter the email account created in the previous chapter
      3. SMTP Password - Enter the password for your email account
      4. SMTP Port - server port, most used 587 for TLS, and 465 for SSL encryption
    • I made the changes above but my website is not sending any emails, what I can do?
    • Please test your SMTP credentials at SMTPER, if the same config worked by the test, please contact us.

    General Settings

    • The General Settings section allows the administrator to control core application behavior such as user verification, authentication methods, app purchases, and maintenance mode.
    • To access this section, go to Admin Panel → Plugins → General Settings.
    • Configure the following options:
      1. Force users to verify their email – When enabled, users must verify their email address before accessing the platform. This option requires a properly configured SMTP plugin.
      2. Force users to verify their Mobile No – Enables or disables mobile number verification during user onboarding.
      3. Force Set to Maintenance – When enabled, the website or application will be placed into maintenance mode and normal users will not be able to access the platform.
      4. Enable Google Login – Enables or disables Google social login on the authentication screen.
      5. Enable Apple Login – Enables or disables Apple login button for supported devices.
      6. Enable Guest Checkout – Allows users to access certain features or purchases without creating an account.
      7. Enable Email Login – Enables standard email and password-based login for users.
      8. App Purchase Enabled – Enables or disables in-app purchases within the application.
      9. Is Profile Photo Is Required – Forces users to upload a profile photo during onboarding.
      10. Is Include Tax – Enables or disables tax inclusion in pricing calculations across the platform.

    Folder Structure Settings

    • The Folder Structure Settings section allows the administrator to control how uploaded files are organized and stored on the server.
    • To access this section, navigate to Admin Panel → Plugins → Folder Structure Settings.
    • Configure the following option:
      1. New Folder Size – Defines the maximum number of files or size limit (as configured by the system) for each newly created upload folder. Once the limit is reached, a new folder will be created automatically.
    • This setting helps improve file management, prevents large directory overload, and ensures better performance when handling user uploads.
    • After updating the folder size value, make sure to save the changes so the new structure is applied to future uploads.

    Storage and Backup Settings

    • The Storage and Backup Settings section allows the administrator to configure where user uploads and media files are stored, such as local storage or cloud storage providers like AWS.
    • To access this section, go to Admin Panel → Plugins → Storage and Backup Settings.
    • Important Note:
      If you change the storage type, you must manually move your existing upload folders from the source storage to the destination storage.
    • Configure the following options:
      1. Storage Type – Select the storage provider to be used for file uploads (Example: AWS, Local, or other supported providers).
      2. AWS EndPoint – Enter the AWS S3 endpoint URL associated with your storage service.
      3. AWS CDN URL – Specify the CDN URL used to serve files faster via a content delivery network.
      4. AWS Region – Enter the AWS region where your S3 bucket is hosted (e.g. us-east-1, ap-south-1).
      5. AWS Access Key – Provide your AWS access key ID with permission to access the bucket.
      6. AWS Secret Key – Enter the secret key associated with the AWS access key. This value should be kept secure.
      7. AWS Bucket Name – Specify the name of the S3 bucket where files will be stored.
    • Use the Test AWS Connection button to verify that the provided credentials and configuration are working correctly before saving the settings.
    • How to Create an AWS S3 Bucket:

    Site Pricing

    • The Site Pricing section allows the administrator to manage credit packages and premium subscription plans available for users to purchase.
    • To access this section, navigate to Admin Panel → Plugins → Site Pricing.
    • This section is divided into two parts:
      1. Price in INR to buy credits – Used to configure coin-based credit packages that users can purchase.
      2. Price in INR to buy Premium – Used to configure premium subscription plans such as monthly or yearly access.
    • Credit Packages Configuration:
      1. Package Name – The name of the credit package displayed to users.
      2. Coins – The number of credits included in the package.
      3. Total Price (INR) – The final amount including all applicable charges.
      4. Price (INR) – The base price of the credit package.
      5. Use the Add Plan button to create additional credit packages.
    • Premium Subscription Configuration:
      1. Package Name – The name of the premium plan (e.g., Monthly, Yearly).
      2. Days – The duration of the premium plan in days.
      3. Total Price (INR) – The total price charged to the user.
      4. Price (INR) – The base price of the premium subscription.
      5. Use the Add Plan button to add new premium plans.
    • After updating or adding pricing plans, ensure the changes are saved so they are reflected across the platform for users.

    PhonePe Payment Gateway

    • The PhonePe Payment Gateway section allows the administrator to configure and manage PhonePe as a payment option for users to make purchases on the platform.
    • To access this section, navigate to Admin Panel → Plugins → PhonePe Payment Gateway.
    • Configure the following options:
      1. Enable PhonePe Plugin – Enables or disables the PhonePe payment gateway across the platform.
      2. Live API Key – Enter the live API key provided by PhonePe. This key is used to authenticate payment requests.
      3. Merchant ID – Enter your PhonePe merchant ID assigned to your account.
      4. Enable Test Mode – Enables or disables PhonePe test mode. When enabled, only the PhonePe verification URL is changed. You must manually update the test API key and ensure the domain is correctly configured for testing.
    • Make sure the PhonePe plugin is enabled and valid credentials are provided before allowing users to make payments.
    • After updating the configuration, save the settings to apply the PhonePe payment gateway across the platform.

    Razorpay Payment Gateway

    • The Razorpay Payment Gateway section allows the administrator to configure Razorpay as a payment option for users on the platform.
    • To access this section, navigate to Admin Panel → Plugins → Razorpay Payment Gateway.
    • Configure the following options:
      1. Enable Razorpay Plugin – Enables or disables the Razorpay payment gateway across the platform.
      2. Live API Key – Enter the live API key provided by Razorpay. This key is used to authenticate payment requests.
      3. Live Secret Key – Enter the live secret key associated with your Razorpay account. This value should be kept confidential.
    • Ensure the Razorpay plugin is enabled and valid credentials are entered before allowing users to make payments.
    • After updating the configuration, save the settings to apply Razorpay as an active payment gateway on the platform.

    Profile Questions & Interests

    • The Profile Questions & Interests section allows the administrator to manage onboarding questions and user interests that are displayed during user registration or profile setup.
    • To access this section, navigate to Admin Panel → Plugins → Questions and Answers.
    • This section is divided into two main parts:
      1. Interest – Used to define and manage user interest tags. Click the Add Interest button to create new interests.
      2. Questions – Used to configure profile questions shown to users.
    • Configure the following fields for each question:
      1. Question – Enter the question text that will be displayed to users.
      2. Type – Select the answer type (e.g., text, select, multiple choice, etc.).
      3. Gender – Choose the gender for which the question applies (All Genders or specific gender).
      4. Order – Define the display order of the question during onboarding.
      5. Action – Use the save button to apply changes or the delete button to remove a question.
    • Properly configuring questions and interests helps improve user profiling, personalization, and matchmaking within the platform.
    • Ensure all changes are saved so they are reflected in the user onboarding flow.

    Chat Settings

    • The Chat Settings section allows the administrator to control chat monetization, coin deductions, media charges, and coin transfers between users.
    • To access this section, navigate to Admin Panel → Plugins → Chat Settings.
    • Configure the following options:
      1. Enable Coins Deduction – Enables or disables coin deduction for chat activities. If disabled, users can chat without spending coins.
      2. Charge Coins per Message – Defines the number of coins deducted for each text message sent.
      3. Charge Coins per Media – Sets the coin cost for sending media files such as images or videos in chat.
      4. Transfer Media Coins Percentage – Specifies the percentage of media coins that will be transferred to the receiver.
      5. Charge Coins to Specific Gender – Allows charging coins for messages only when sent to a selected gender.
      6. Transfer Coins of Message to Receiver – When enabled, the coins deducted for sending a message are transferred to the message receiver.
      7. Transfer Coins of Gifts to Receiver – When enabled, gift coins are transferred to the receiver of the gift.
      8. Transfer Gift Coins Percentage – Defines the percentage of gift coins transferred to the receiver.
      9. Charge Coins to Specific Gender for Gift – Charges gift coins only when the gift is sent to the selected gender.
    • These settings help control revenue distribution, user incentives, and fair monetization within the chat system.
    • After making changes, save the settings to apply them across all chat interactions.

    Gift Settings

    • The Gift Settings section allows the administrator to manage virtual gifts, gift categories, and coin values used within chats and interactions.
    • To access this section, navigate to Admin Panel → Plugins → Gifts.
    • Configure the following options:
      1. Gift Categories – Create and manage gift categories to organize gifts effectively. Use the Add Gift Category button to add new categories.
      2. Gifts – Upload and manage gift images displayed to users during chat. Each gift can be assigned a coin value.
      3. Coin Value – Defines the number of coins required for a user to send a particular gift.
      4. Category Filter – Allows filtering gifts based on selected categories such as Hello, All, or custom categories.
    • Gifts are used as a monetization feature and can be transferred between users based on the chat and gift transfer settings.
    • After adding or modifying gifts and categories, ensure the changes are saved so they are reflected in the user chat interface.

    Reward Settings

    • The Reward Settings section allows the administrator to configure user reward mechanisms, including signup rewards, profile completion rewards, and referral bonuses.
    • To access this section, navigate to Admin Panel → Plugins → Reward Settings.
    • Configure the following options:
      1. Enable Rewards Plugin – Enables or disables the rewards system across the platform.
      2. Enable Multi Account Reward – Allows or prevents multiple accounts from receiving rewards, helping reduce reward abuse.
      3. New Accounts Free Credits – Specifies the number of free coins given to newly registered users.
      4. Give Profile Complete Coins – Defines the number of coins awarded when a user completes their profile.
      5. Enable Referral Rewards Plugin – Enables or disables the referral reward system.
      6. Give Referral Reward Coins – Specifies the number of coins awarded to a user when a referral successfully registers.
    • Reward settings are used to encourage user engagement, profile completion, and organic platform growth through referrals.
    • After making changes, save the settings to ensure rewards are applied correctly to user accounts.

    Global Online Settings

    • The Global Online Settings section allows the administrator to control how user proximity and location-based searches are handled across the platform.
    • To access this section, navigate to Admin Panel → Plugins → Global Online Settings.
    • Configure the following option:
      1. Filter Proximity Range – Select which proximity range should be used when searching for users.
        Country – Matches users based on country-level location.
        State – Matches users based on state-level location.
        City / Distance – Matches users based on more precise geographic proximity.
    • This setting helps optimize user discovery and matching based on location preferences.
    • After updating the proximity range, save the settings to apply the changes across the platform.

    Spotlight Settings

    • The Spotlight Settings section allows the administrator to configure how the spotlight feature works, including duration, cost, and visibility rules.
    • To access this section, navigate to Admin Panel → Plugins → Spotlight Settings.
    • Configure the following options:
      1. Duration for Photo in Spotlight – Defines how many days a user’s photo will remain visible in the spotlight section.
      2. Spotlight Coins – Specifies the number of coins required to activate spotlight for a user profile.
      3. Worldwide Spotlight – When enabled, if no users are found based on the selected city or country, the spotlight will automatically switch to worldwide visibility.
      4. Filter Proximity Range – Select which proximity range should be used to display popular or spotlight users (Country, City, or distance-based).
    • Spotlight settings help increase profile visibility and provide a premium exposure feature for users.
    • After making changes, save the settings to ensure the spotlight feature functions correctly across the platform.

    Verification System

    • The Verification System section allows the administrator to enable and manage manual profile verification for users to improve trust and authenticity on the platform.
    • To access this section, navigate to Admin Panel → Plugins → Verification System.
    • Configure the following options:
      1. Profile Verification – When enabled, users are allowed to upload a verification photo by copying a specific gesture. These requests can then be manually reviewed and approved by an admin or moderator.
      2. Gesture Image as Example – Upload an example image showing the gesture that users must replicate while taking their verification photo. This helps users understand the verification requirement clearly.
    • Verified profiles increase credibility and help reduce fake or duplicate accounts within the platform.
    • After configuring the verification settings, save the changes to ensure the verification system works correctly for new verification requests.

    Withdrawal Settings

    • The Withdrawal Settings section allows the administrator to control how users can exchange in-app credits or diamonds for real money.
    • To access this section, navigate to Admin Panel → Plugins → Withdrawal Plugin.
    • Configure the following options:
      1. Withdrawal System – Enables or disables the withdrawal feature. When enabled, users can request withdrawals by converting their credits or diamonds into real money.
      2. Withdrawal Diamonds – Defines the minimum number of diamonds required before a user becomes eligible to request a withdrawal.
      3. Withdrawal Required Amount – Sets the minimum monetary amount that can be requested for withdrawal.
      4. Give Withdrawal Access to Selected Gender – Restricts withdrawal access to a specific gender (e.g., Female, Male, or All), based on platform policy.
    • Withdrawal settings help control payout eligibility, prevent misuse, and manage platform financial operations.
    • After updating the withdrawal configuration, save the settings to apply the rules across all user accounts.

    Story Settings

    • The Story Settings section allows the administrator to manage story uploads, pricing limits, coin transfers, and visibility rules.
    • To access this section, navigate to Admin Panel → Plugins → Story Plugin.
    • Configure the following options:
      1. Story Price Limit – Sets the maximum number of credits a user can spend when uploading a story.
      2. Transfer Coins Are Enabled – Enables or disables the transfer of coins generated from story interactions.
      3. Transfer Coins Percentage – Defines the percentage of coins transferred to the story owner.
      4. Filter Proximity Range – Selects which proximity range should be used when displaying stories to users (Country, City, or distance-based).
    • Story settings help control monetization, revenue sharing, and story discovery within the platform.
    • After updating the story configuration, save the settings to apply the changes across the story feature.

    Notification Settings

    • The Notification Settings section allows the administrator to create, schedule, and send push notifications to users directly from the admin panel.
    • To access this section, navigate to Admin Panel → Plugins → Notification Plugin.
    • Configure the following options:
      1. Title – Enter the notification title that will be displayed to users.
      2. Message – Enter the notification message content. This text will appear in the push notification body.
      3. Type – Select when the notification should be sent:
        • Now – Send the notification immediately.
        • Today – Send the notification later on the same day.
        • EveryDay – Send the notification daily.
        • Custom – Schedule the notification for a specific date and time.
      4. Upload Image – Upload an optional image to be included in the notification.
    • The Scheduled Notifications section displays all upcoming and previously scheduled notifications.
    • After filling in all required fields, click the Save button to send or schedule the notification.

    Video Call Settings

    • The Video Call Settings section allows the administrator to control video calling availability, monetization rules, credit transfers, and Agora video call configuration.
    • To access this section, navigate to Admin Panel → Plugins → Video Call Settings.
    • Configure the following options:
      1. Enable Video Calling – Enables or disables video calling for the entire platform.
      2. Verified User Can Only Video Call – When enabled, only verified users are allowed to initiate video calls.
      3. Enable Credits Per Minute – Enables charging credits for video calls on a per-minute basis.
      4. Charge Credits Per Minute – Defines the number of credits deducted per minute of video calling. Credits are charged only to the caller.
      5. Charge Credits to Specific Gender – Restricts credit charging to a selected gender based on platform rules.
      6. Transfer Video Call Credits – When enabled, the credits spent by the caller are transferred to the called user.
      7. Transfer Coins Percentage – Specifies the percentage of video call credits that will be transferred to the called user.
      8. Agora App ID – Enter the Agora App ID used for enabling real-time video calling functionality.
      9. Agora App Certificate – Enter the Agora App Certificate required for generating secure video call tokens.
      10. Agora App Token Expire – Define the token expiration time in seconds. After this time, the video call token becomes invalid.
    • Proper configuration of Agora credentials is mandatory for video calling to function correctly.
    • These settings help control premium video interactions, revenue sharing, and secure real-time communication.
    • After updating the video call settings, save the changes to apply them across all video call features.