πŸš€ Voralis Complete Installation & Configuration Guide

This comprehensive guide covers installation and configuration for both Voralis Web (Next.js) and Voralis App (Expo React Native).

Part 1: Voralis Web Installation

Prerequisites (Voralis Web)

Before starting, ensure you have:

  • βœ… Node.js 18.x or higher installed
  • βœ… npm or yarn package manager
  • βœ… Git installed
  • βœ… A code editor (VS Code recommended)
  • βœ… Access to terminal/command line

Installation Steps (Voralis Web)

Step 1: Clone or Download the Project

# If using Git
git clone <your-repository-url>
cd voralis-web

# Or extract the downloaded ZIP file

Step 2: Install Dependencies

# Using npm
npm install

# Or using yarn
yarn install

Step 3: Create Environment File

# Create .env.local file
touch .env.local

# Or on Windows
type nul > .env.local

Environment Variables Setup (Voralis Web)

Create a .env.local file in the root directory of voralis-web with all the following variables.

# ============================================
# DATABASE CONFIGURATION (REQUIRED)
# ============================================
NEON_DATABASE_URL=postgresql://username:password@host:port/database
DATABASE_URL=postgresql://username:password@host:port/database

# ============================================
# LICENSE VERIFICATION (REQUIRED)
# ============================================
# Brain Server URL (provided by your vendor/developer)
NEXT_PUBLIC_BRAIN_SERVER_URL=https://your-brain-server.vercel.app

# License Key (provided by your vendor/developer)
NEXT_PUBLIC_LICENSE_KEY=your-license-key-here

# ============================================
# AI SERVICES (REQUIRED)
# ============================================
# Grok (xAI) - Primary AI Chat
GROK_API_KEY=your-grok-api-key
GROK4_API_KEY=your-grok-api-key
GROK4_BASE_URL=https://api.x.ai/v1

# OpenAI - For DALL-E and GPT models
OPENAI_API_KEY=sk-your-openai-api-key

# Google Gemini
GEMINI_API_KEY=your-gemini-api-key

# DeepSeek (Optional)
DEEPSEEK_API_KEY=your-deepseek-api-key

# Anthropic Claude (Optional)
ANTHROPIC_API_KEY=your-anthropic-api-key

# ============================================
# VIDEO GENERATION & WORKERS (REQUIRED for Video Ads)
# ============================================
HEYGEN_API_KEY=your-heygen-api-key
RESEND_API_KEY=your-resend-api-key

# Redis (for Job Queue)
UPSTASH_REDIS_REST_URL=https://your-redis-url.upstash.io
UPSTASH_REDIS_REST_TOKEN=your-redis-token

# Firebase (for Push Notifications)
FIREBASE_API_KEY=your-api-key
FIREBASE_AUTH_DOMAIN=your-app.firebaseapp.com
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_STORAGE_BUCKET=your-app.appspot.com
FIREBASE_MESSAGING_SENDER_ID=123456789
FIREBASE_APP_ID=1:123456:web:abcdef
FIREBASE_CLIENT_EMAIL=firebase-adminsdk-xxx@your-project.iam.gserviceaccount.com
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----
..."

# ============================================
# FAL API KEY (REQUIRED)
# ============================================
FAL_API_KEY=your-fal-api-key

# ============================================
# TEXT-TO-SPEECH (REQUIRED)
# ============================================
ELEVENLABS_API_KEY=your-elevenlabs-api-key

# ============================================
# OTHER SERVICES (OPTIONAL)
# ============================================

SERPAPI_KEY=your-serpapi-api-key
TAVILY_API_KEY=your-tavily-api-key
WEATHER_API_KEY=your-weather-api-key

# ============================================
# PAYMENT PROVIDERS (OPTIONAL - Choose one or more)
# ============================================
# Stripe
STRIPE_SECRET_KEY=sk_live_your-stripe-secret-key
STRIPE_PUBLISHABLE_KEY=pk_live_your-stripe-publishable-key
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_your-stripe-publishable-key
STRIPE_WEBHOOK_SECRET=whsec_your-webhook-secret

# PayPal
PAYPAL_CLIENT_ID=your-paypal-client-id
PAYPAL_CLIENT_SECRET=your-paypal-client-secret
PAYPAL_MODE=sandbox
NEXT_PUBLIC_PAYPAL_CLIENT_ID=your-paypal-client-id

# Paystack
PAYSTACK_SECRET_KEY=sk_live_your-paystack-secret-key
PAYSTACK_PUBLIC_KEY=pk_live_your-paystack-public-key
NEXT_PUBLIC_PAYSTACK_PUBLIC_KEY=pk_live_your-paystack-public-key

# Adyen
ADYEN_API_KEY=your-adyen-api-key
ADYEN_MERCHANT_ACCOUNT=your-merchant-account
ADYEN_CLIENT_KEY=your-adyen-client-key
NEXT_PUBLIC_ADYEN_CLIENT_KEY=your-adyen-client-key

# Airwallex
AIRWALLEX_API_KEY=your-airwallex-api-key
AIRWALLEX_CLIENT_ID=your-airwallex-client-id
AIRWALLEX_WEBHOOK_SECRET=your-airwallex-webhook-secret

# Flutterwave
FLUTTERWAVE_SECRET_KEY=FLWSECK_TEST-your-flutterwave-secret-key
FLUTTERWAVE_WEBHOOK_HASH=your-flutterwave-webhook-hash

# NOWPayments
NOWPAYMENTS_API_KEY=your-nowpayments-api-key
NOWPAYMENTS_IPN_SECRET=your-nowpayments-ipn-secret

# Coinbase Commerce
COINBASE_COMMERCE_API_KEY=your-coinbase-commerce-api-key
COINBASE_COMMERCE_WEBHOOK_SECRET=your-coinbase-commerce-webhook-secret

# Cryptomus
CRYPTOMUS_MERCHANT_ID=your-cryptomus-merchant-id
CRYPTOMUS_API_KEY=your-cryptomus-api-key

# Shared app URL for payment callbacks/webhooks
NEXT_PUBLIC_APP_URL=https://your-domain.com

# ============================================
# STORAGE SERVICES (REQUIRED - Choose one)
# ============================================
# Cloudflare R2 (Recommended)
R2_ACCOUNT_ID=your-r2-account-id
R2_ACCESS_KEY_ID=your-r2-access-key-id
R2_SECRET_ACCESS_KEY=your-r2-secret-access-key
R2_BUCKET_NAME=your-bucket-name
R2_PUBLIC_URL_PREFIX=https://pub-xxx.r2.dev


# ============================================
# EMAIL SERVICE (REQUIRED)
# ============================================
# SendGrid (Bulk emails Recommended)
SENDGRID_API_KEY=SG.your-sendgrid-api-key
SENDGRID_FROM_EMAIL=noreply@yourdomain.com

# AWS SES (Bulk emails Alternative)
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_aws_key
AWS_SECRET_ACCESS_KEY=your_aws_secret

# Nodemailer (for transactional emails)
NODEMAILER_HOST=smtp.hostinger.com
NODEMAILER_PORT=587
NODEMAILER_SECURE=false # or true for port 465
NODEMAILER_USER=support@byourdomain.com
NODEMAILER_PASS=password

# Mailtrap (Alternative)
MAILTRAP_USER="api"
MAILTRAP_PASS= # api token key
MAILTRAP_API_KEY= #api token key
MAILTRAP_USE_SANDBOX=true       # true/false toggle
MAILTRAP_INBOX_ID=123456        # Only needed for sandbox 2682584

# Or Nodemailer (Alternative)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password

# ============================================
# SECURITY (REQUIRED)
# ============================================
# JWT Secret (Generate with: openssl rand -base64 32)
JWT_SECRET=your-jwt-secret-key

# Admin Secret (Generate with: openssl rand -base64 32)
ADMIN_SECRET_KEY=your-admin-secret-key

# reCAPTCHA (Optional)
NEXT_PUBLIC_RECAPTCHA_SITE_KEY=your-recaptcha-site-key
RECAPTCHA_SECRET_KEY=your-recaptcha-secret-key


# ============================================
# MUSIC GENERATION (OPTIONAL)
# ============================================
# Suno AI
SUNO_API_KEY=your-suno-api-key

# ============================================
# YOUTUBE PUBLISHING (OPTIONAL)
# ============================================
# Google OAuth Credentials (required for YouTube publishing)
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_REDIRECT_URI=http://localhost:3000/api/mail/auth/gmail/callback

# Google Pub/Sub (for Gmail push notifications)
GOOGLE_PUBSUB_TOPIC=projects/your-project/topics/gmail-notifications
GOOGLE_PUBSUB_SUBSCRIPTION=projects/your-project/subscriptions/gmail-notifications-sub
YOUTUBE_REDIRECT_URI=http://localhost:3000/api/youtube/callback

# ============================================
# REMOTION AWS
# ============================================
# AWS Credentials (required for Remotion AWS)
REMOTION_AWS_ACCESS_KEY_ID=your-aws-access-key-id
REMOTION_AWS_SECRET_ACCESS_KEY=your-aws-secret-access-key
REMOTION_AWS_REGION=your-aws-region

# ============================================
# CLAID API
# ============================================
#Needed for fashion studio
CLAID_API_KEY=0426076250e04526aa44a13ba5a51ba6
CLAID_BASE=https://api.claid.ai

# ============================================
# VIRAL VIDEO CLIP GENERATION
#===========================================
#Needed for viral video clip generation
ASSEMBLYAI_API_KEY=your-assemblyai-api-key
OPENAI_API_KEY=your-openai-api-key


# Base URL
NEXT_PUBLIC_BASE_URL=http://localhost:3000

# Environment
NODE_ENV=development

Database Configuration (NeonDB)

Step 1: Create NeonDB Account

  1. Go to Neon Console
  2. Sign up for a free account (or log in)
  3. Click Create Project
  4. Enter a project name (e.g., Voralis Production)
  5. Select a region closest to your users
  6. Click Create Project

Step 2: Get Database Connection String

  1. In your Neon project dashboard, click on Connection Details
  2. You'll see a connection string like:
postgresql://username:password@ep-xxx.us-east-2.aws.neon.tech/neondb?sslmode=require

3. Copy this entire string

Step 3: Configure in .env.local

NEON_DATABASE_URL=postgresql://username:password@ep-xxx.us-east-2.aws.neon.tech/neondb?sslmode=require
DATABASE_URL=postgresql://username:password@ep-xxx.us-east-2.aws.neon.tech/neondb?sslmode=require

Step 4: Initialize Database Schema

  1. In Neon Console, go to SQL Editor
  2. Open the file: voralis-web/database/database-schema.sql
  3. Copy all SQL statements
  4. Paste into Neon SQL Editor
  5. Click Run to execute

Step 5: Install Prisma (Optional but Recommended)

If you want Prisma models/migrations on top of NeonDB, run these commands inside voralis-web:

# Install Prisma
npm install prisma @prisma/client

# Initialize Prisma config
npx prisma init --datasource-provider postgresql

# Pull models from your live NeonDB schema
npm run prisma:pull

# Generate Prisma client
npm run prisma:generate

Ensure this exists in .env.local:

NEON_DATABASE_URL=postgresql://username:password@ep-xxx.region.aws.neon.tech/neondb?sslmode=require

Step 6: Baseline & Run Prisma Migrations Safely

If your database already exists (common for Voralis), create a baseline first to avoid migration drift:

# Create baseline migration from current Prisma datamodel
mkdir -p prisma/migrations/0000_baseline
npx prisma migrate diff --from-empty --to-schema-datamodel prisma/schema.prisma --script > prisma/migrations/0000_baseline/migration.sql

# Mark baseline as already applied in NeonDB
npm run prisma:migrate:resolve:baseline

# Check migration status
npm run prisma:migrate:status

# Create/apply new migrations going forward
npm run prisma:migrate:dev

# Deploy migrations in production
npm run prisma:migrate:deploy

License Verification Setup

The license verification is handled automatically by the system. You only need to configure the license key provided by your vendor/developer.

Step 1: Get Your License Key

Your license key will be provided by:

  • CodeCanyon: Purchase code from your purchase receipt
  • Gumroad: License key from your purchase email
  • Lemon Squeezy: License key from your subscription email

Step 2: Configure License Key

Add your license key to .env.local:

# License Key (provided by your vendor/developer)
NEXT_PUBLIC_LICENSE_KEY=your-license-key-here

# Brain Server URL (provided by your vendor/developer)
NEXT_PUBLIC_BRAIN_SERVER_URL=https://your-brain-server.vercel.app

Step 3: License Activation

  1. Start your development server: npm run dev
  2. Visit http://localhost:3000
  3. The license setup wizard will appear automatically
  4. Enter your license key when prompted
  5. The system will automatically verify and activate your license

Note: The license key format varies by provider:

  • CodeCanyon: UUID format (e.g., 8392af4b-1a2c-4d5e-9f0a-1234567890ab)
  • Gumroad: Four blocks format (e.g., XXXX-XXXX-XXXX-XXXX)
  • Lemon Squeezy: Variable format (provided in email)

AI Services Configuration

Grok (xAI) - Primary AI Chat

Step 1: Create xAI Account
  1. Go to xAI Console
  2. Sign up or log in
  3. Complete account verification
Step 2: Generate API Key
  1. Navigate to API Keys section
  2. Click Create API Key
  3. Give it a name: Voralis Web
  4. Copy the API key
Step 3: Configure in .env.local
GROK_API_KEY=xai-your-api-key-here
GROK4_API_KEY=xai-your-api-key-here
GROK4_BASE_URL=https://api.x.ai/v1

OpenAI - DALL-E and GPT Models

Step 1: Create OpenAI Account
  1. Go to OpenAI Platform
  2. Sign up or log in
  3. Add payment method (required for API access)
Step 2: Generate API Key
  1. Go to API Keys section
  2. Click Create new secret key
  3. Give it a name: Voralis Web
  4. Copy the key immediately (starts with sk-)
Step 3: Configure in .env.local
OPENAI_API_KEY=sk-your-openai-api-key-here

Google Gemini

Step 1: Get Gemini API Key
  1. Go to Google AI Studio
  2. Sign in with your Google account
  3. Click Create API Key
  4. Select or create a Google Cloud project
  5. Copy the API key
Step 2: Configure in .env.local
GEMINI_API_KEY=your-gemini-api-key-here

ElevenLabs - Text-to-Speech

Step 1: Create ElevenLabs Account
  1. Go to ElevenLabs
  2. Sign up or log in
  3. Choose a subscription plan (free tier available)
Step 2: Get API Key
  1. Go to Profile β†’ API Keys
  2. Click Generate API Key
  3. Give it a name: Voralis Web
  4. Copy the API key
Step 3: Configure in .env.local
ELEVENLABS_API_KEY=your-elevenlabs-api-key-here

Video Generation AI Services

🎬

Fal.ai β€” Required for Seedance & Kling Video Generation

Voralis uses Fal.ai as the unified API gateway for all video generation models, including Seedance (ByteDance) and Kling (Kuaishou). A single FAL_KEY powers all video features β€” no separate accounts for each model provider are needed.

🌱
Seedance (ByteDance)

High-quality text-to-video and image-to-video generation from ByteDance. Optimised for smooth motion, realistic scenes, and fast inference.

  • β€’ Model ID: fal-ai/bytedance/seedance-1-lite
  • β€’ Supports: text-to-video, image-to-video
  • β€’ Output: up to 1080p, 5–10 s clips
  • β€’ Best for: product demos, cinematic content
🎭
Kling (Kuaishou)

State-of-the-art video generation from Kuaishou. Delivers highly realistic motion with excellent prompt adherence and subject consistency.

  • β€’ Model ID: fal-ai/kling-video/v1.6/pro/text-to-video
  • β€’ Supports: text-to-video, image-to-video
  • β€’ Output: up to 1080p, 5–10 s clips
  • β€’ Best for: social media, creative campaigns
Step 1: Create a Fal.ai Account
  1. Go to fal.ai and click Sign Up
  2. Sign up using GitHub, Google, or your email address
  3. Verify your email if prompted
  4. You will land on the Fal.ai dashboard automatically
Step 2: Add Billing / Credits
⚠️ Required: Fal.ai requires a payment method before the API key can be used for Seedance or Kling. New accounts receive a small free credit to test with.
  1. Open the Fal.ai Billing page
  2. Click Add Payment Method and enter your credit card
  3. Optionally purchase a credit bundle β€” recommended starting amounts:
    • $10–$20 for testing (covers ~50–100 short video generations)
    • $50+ for production use
  4. Enable Auto top-up if you want uninterrupted service
Step 3: Generate Your API Key
  1. In the dashboard sidebar, click API Keys
  2. Click Add key (top-right)
  3. Give it a name, e.g. voralis-production
  4. Click Create β€” the key is shown only once, copy it immediately
  5. Store it securely; it starts with fal-key-…
Step 4: Add to Your Environment Variables

Add the following to your .env.local (Voralis Web) file:

# Fal.ai β€” powers Seedance, Kling, and all other video generation models
FAL_KEY=fal-key-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Step 5: Verify Model Access

You can confirm Seedance and Kling are accessible from your account on the Fal.ai model pages:

Both model pages show a live playground β€” paste your API key there to run a test generation before deploying.

πŸ’‘ Approximate Pricing (as of 2025)

  • Seedance 1 Lite: ~$0.08–$0.15 per second of video generated
  • Kling 1.6 Pro: ~$0.10–$0.20 per second of video generated
  • Prices may vary β€” always check the Fal.ai pricing page for current rates.

HeyGen (Avatar Video Generation)

Step 1: Create HeyGen Account
  1. Go to HeyGen
  2. Sign up or log in
  3. Subscribe to a plan that supports API access (Creator/Team)
Step 2: Get API Key
  1. Go to Settings β†’ API
  2. Generate a new API Key
  3. Copy the key
Step 3: Configure in .env.local
HEYGEN_API_KEY=your-heygen-api-key

Payment Providers Setup

Stripe Setup

Step 1: Create Stripe Account
  1. Go to Stripe
  2. Sign up or log in
  3. Complete business verification
Step 2: Get API Keys
  1. Go to Developers β†’ API Keys
  2. Copy Publishable key (starts with pk_)
  3. Click Reveal test key or Reveal live key for Secret key (starts with sk_)
Step 3: Configure Webhook
  1. Go to Developers β†’ Webhooks
  2. Click Add endpoint
  3. Endpoint URL: https://your-domain.com/api/payments/stripe/webhook
  4. Select events:
    • checkout.session.completed
    • customer.subscription.updated
    • customer.subscription.deleted
    • invoice.payment_succeeded
    • invoice.payment_failed
  5. Copy the Webhook signing secret (starts with whsec_)
Step 4: Configure in .env.local
STRIPE_SECRET_KEY=sk_live_your-stripe-secret-key
STRIPE_PUBLISHABLE_KEY=pk_live_your-stripe-publishable-key
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_your-stripe-publishable-key
STRIPE_WEBHOOK_SECRET=whsec_your-webhook-secret

PayPal Setup

Step 1: Create PayPal Business Account
  1. Go to PayPal Developer
  2. Sign up or log in
  3. Create a new app
Step 2: Get API Credentials
  1. Go to Dashboard β†’ My Apps & Credentials
  2. Create a new app or use existing
  3. Copy Client ID and Secret
Step 3: Configure in .env.local
PAYPAL_CLIENT_ID=your-paypal-client-id
PAYPAL_CLIENT_SECRET=your-paypal-client-secret
PAYPAL_MODE=live  # or 'sandbox' for testing
NEXT_PUBLIC_PAYPAL_CLIENT_ID=your-paypal-client-id

Paystack Setup

Step 1: Create Paystack Account
  1. Go to Paystack
  2. Sign up for a business account
  3. Complete business verification
Step 2: Get API Keys
  1. Go to Settings β†’ API Keys & Webhooks
  2. Copy Public key (starts with pk_)
  3. Copy Secret key (starts with sk_)
Step 3: Configure in .env.local
PAYSTACK_SECRET_KEY=sk_live_your-paystack-secret-key
PAYSTACK_PUBLIC_KEY=pk_live_your-paystack-public-key
NEXT_PUBLIC_PAYSTACK_PUBLIC_KEY=pk_live_your-paystack-public-key

Adyen Setup

Step 1: Create Adyen Account
  1. Go to Adyen
  2. Sign up for a business account
  3. Complete business verification
Step 2: Get API Credentials
  1. Log in to Adyen Customer Area
  2. Go to Developers β†’ API credentials
  3. Create or select a credential
  4. Copy API key
  5. Copy Client key
  6. Note your Merchant Account name
Step 3: Configure in .env.local
ADYEN_API_KEY=your-adyen-api-key
ADYEN_MERCHANT_ACCOUNT=your-merchant-account
ADYEN_CLIENT_KEY=your-adyen-client-key
NEXT_PUBLIC_ADYEN_CLIENT_KEY=your-adyen-client-key

Airwallex Setup

Step 1: Create Airwallex Account
  1. Go to Airwallex
  2. Sign up for a business account
  3. Complete business verification (KYB)
Step 2: Get API Credentials
  1. Log in to Airwallex Dashboard
  2. Go to Settings β†’ Developer β†’ API Keys
  3. Create a new API key
  4. Copy API Key
  5. Copy Client ID
Step 3: Configure Webhook
  1. In Airwallex Dashboard, go to Settings β†’ Webhooks
  2. Add endpoint URL: https://your-domain.com/api/payments/airwallex/webhook
  3. Select relevant events (payment success, payment failed)
  4. Copy the Webhook Secret
Step 4: Configure in .env.local
AIRWALLEX_API_KEY=your-airwallex-api-key
AIRWALLEX_CLIENT_ID=your-airwallex-client-id
AIRWALLEX_WEBHOOK_SECRET=your-airwallex-webhook-secret

Flutterwave Setup (USD, NGN, GHS)

Step 1: Create Flutterwave Account
  1. Go to Flutterwave Developer
  2. Create or sign in to your Flutterwave business account
  3. Complete business/KYC verification and enable live mode when ready
Step 2: Get API Key and Webhook Hash
  1. Open Dashboard β†’ Settings β†’ API
  2. Copy your Secret Key (test/live)
  3. Set webhook URL to https://your-domain.com/api/payments/flutterwave/webhook
  4. Copy the Webhook Hash used for request verification
Step 3: Configure in .env.local (voralis-web)
FLUTTERWAVE_SECRET_KEY=FLWSECK_TEST-your-flutterwave-secret-key
FLUTTERWAVE_WEBHOOK_HASH=your-flutterwave-webhook-hash
NEXT_PUBLIC_APP_URL=https://your-domain.com

NOWPayments Setup

Step 1: Create NOWPayments Account
  1. Go to NOWPayments
  2. Create your merchant account and complete required verification
  3. Enable the coins/networks you want to accept (e.g. USDT TRC20, BTC, ETH)
Step 2: Get API Key and IPN Secret
  1. Open Dashboard β†’ API Keys
  2. Generate and copy your API Key
  3. Open IPN/Webhook settings and set callback URL to https://your-domain.com/api/payments/nowpayments/webhook
  4. Copy the IPN Secret
Step 3: Configure in .env.local (voralis-web)
NOWPAYMENTS_API_KEY=your-nowpayments-api-key
NOWPAYMENTS_IPN_SECRET=your-nowpayments-ipn-secret
NEXT_PUBLIC_APP_URL=https://your-domain.com

Coinbase Commerce Setup

Step 1: Create Coinbase Commerce Account
  1. Go to Coinbase Commerce
  2. Sign in / register your merchant account
  3. Complete onboarding and business profile setup
Step 2: Get API Key and Webhook Secret
  1. Open Settings β†’ Security / API Keys
  2. Create and copy your API Key
  3. Create a webhook endpoint: https://your-domain.com/api/payments/coinbase/webhook
  4. Copy webhook shared secret
Step 3: Configure in .env.local (voralis-web)
COINBASE_COMMERCE_API_KEY=your-coinbase-commerce-api-key
COINBASE_COMMERCE_WEBHOOK_SECRET=your-coinbase-commerce-webhook-secret
NEXT_PUBLIC_APP_URL=https://your-domain.com

Cryptomus Setup

Step 1: Create Cryptomus Account
  1. Go to Cryptomus
  2. Create or sign in to your merchant account
  3. Complete verification and enable payment methods you want to accept
Step 2: Get Merchant ID and API Key
  1. Open Dashboard β†’ Merchant / API
  2. Copy your Merchant ID
  3. Generate and copy your API Key
  4. Set callback URL to https://your-domain.com/api/payments/cryptomus/webhook
Step 3: Configure in .env.local (voralis-web)
CRYPTOMUS_MERCHANT_ID=your-cryptomus-merchant-id
CRYPTOMUS_API_KEY=your-cryptomus-api-key
NEXT_PUBLIC_APP_URL=https://your-domain.com

Storage Services Setup

Cloudflare R2 (Recommended)

Step 1: Create Cloudflare Account
  1. Go to Cloudflare
  2. Sign up or log in
  3. Add payment method (R2 requires paid plan)
Step 2: Create R2 Bucket
  1. Go to R2 β†’ Create bucket
  2. Enter bucket name (e.g., voralis-media)
  3. Select location
  4. Click Create bucket
Step 3: Create API Token
  1. Go to Manage R2 API Tokens
  2. Click Create API Token
  3. Permissions: Object Read & Write
  4. Copy Access Key ID and Secret Access Key
Step 4: Get Public URL
  1. In your bucket settings, enable Public Access
  2. Copy the public URL (format: https://pub-xxx.r2.dev)
Step 5: Configure in .env.local
R2_ACCOUNT_ID=your-cloudflare-account-id
R2_ACCESS_KEY_ID=your-r2-access-key-id
R2_SECRET_ACCESS_KEY=your-r2-secret-access-key
R2_BUCKET_NAME=your-bucket-name
R2_PUBLIC_URL_PREFIX=https://pub-xxx.r2.dev

Additional Services (Email Configuration)

Configure at least one email service for sending transactional emails, notifications, and bulk emails. You can use multiple services for different purposes.

Resend (Recommended for Modern Stack)

Step 1: Create Resend Account
  1. Go to Resend
  2. Sign up with GitHub or Email
Step 2: Add and Verify Domain
  1. Go to Domains β†’ Add Domain
  2. Enter your domain (e.g., yourdomain.com)
  3. Add the provided DNS records (DKIM, SPF, DMARC) to your DNS provider (Cloudflare, GoDaddy, etc.)
  4. Wait for verification (usually minutes)
Step 3: Generate API Key
  1. Go to API Keys
  2. Create a new API Key with "Sending" permission
  3. Copy the key (starts with re_)
Step 4: Configure in .env.local
RESEND_API_KEY=re_your_resend_api_key

SendGrid (Recommended for Bulk Emails)

Step 1: Create SendGrid Account
  1. Go to SendGrid
  2. Sign up for free account (includes 100 emails/day free)
  3. Verify your email address
Step 2: Create API Key
  1. Go to Settings β†’ API Keys
  2. Click Create API Key
  3. Name: Voralis Web
  4. Permissions: Full Access or Mail Send
  5. Copy the API key (starts with SG.)
Step 3: Verify Sender
  1. Go to Settings β†’ Sender Authentication
  2. Verify a single sender or authenticate entire domain
  3. Use verified email as SENDGRID_FROM_EMAIL
Step 4: Configure in .env.local
SENDGRID_API_KEY=SG.your-sendgrid-api-key
SENDGRID_FROM_EMAIL=noreply@yourdomain.com

AWS SES (Alternative for Bulk Emails)

Step 1: Create AWS Account
  1. Go to AWS
  2. Sign up for an AWS account
  3. Complete payment setup (SES has a free tier)
Step 2: Set Up SES
  1. Go to AWS Console β†’ SES (Simple Email Service)
  2. Select your preferred region (e.g., us-east-1)
  3. Verify your email address or domain
  4. Request production access (required to send to non-verified emails)
Step 3: Create IAM User for SES
  1. Go to IAM β†’ Users β†’ Add users
  2. Username: voralis-ses-user
  3. Access type: Programmatic access
  4. Attach policy: AmazonSESFullAccess
  5. Copy Access Key ID and Secret Access Key
Step 4: Configure in .env.local
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_aws_access_key_id
AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key

Note: AWS SES starts in sandbox mode. You can only send to verified email addresses until you request production access.

Mailtrap (Testing & Production)

Step 1: Create Mailtrap Account
  1. Go to Mailtrap
  2. Sign up for free account
  3. Verify your email
Step 2: Get API Token
  1. Go to Settings β†’ API Tokens
  2. Click Create Token
  3. Copy the API token
Step 3: Set Up Inbox (Sandbox Mode)
  1. Go to Email Testing β†’ Inboxes
  2. Select or create an inbox
  3. Note the Inbox ID (shown in URL or inbox settings)
  4. Get SMTP credentials from inbox settings
Step 4: Configure in .env.local
# Mailtrap Configuration
MAILTRAP_USER="api"
MAILTRAP_PASS=your-api-token-key
MAILTRAP_API_KEY=your-api-token-key
MAILTRAP_USE_SANDBOX=true       # true for testing, false for production
MAILTRAP_INBOX_ID=123456        # Only needed for sandbox mode

Sandbox vs Production:

  • Sandbox (MAILTRAP_USE_SANDBOX=true): Emails are caught by Mailtrap, not delivered to real recipients. Perfect for testing.
  • Production (MAILTRAP_USE_SANDBOX=false): Emails are actually delivered. Requires verified sending domain.

Nodemailer (SMTP - Any Email Provider)

Overview

Nodemailer allows you to send emails using any SMTP server. This is useful for custom email hosting or using your existing email provider.

Option 1: Gmail SMTP
  1. Go to your Google Account
  2. Enable 2-Step Verification
  3. Go to Security β†’ App passwords
  4. Select app: Mail, Select device: Other
  5. Name it: Voralis Web
  6. Copy the generated 16-character password
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-16-char-app-password
Option 2: Hostinger SMTP
  1. Log in to your Hostinger account
  2. Go to Email Accounts
  3. Create or use existing email account
  4. Get SMTP settings from Hostinger
NODEMAILER_HOST=smtp.hostinger.com
NODEMAILER_PORT=587
NODEMAILER_SECURE=false        # true for port 465, false for 587
NODEMAILER_USER=support@yourdomain.com
NODEMAILER_PASS=your-email-password
Option 3: Other SMTP Providers

You can use any SMTP server. Common providers:

  • Outlook/Office365: smtp.office365.com (Port 587)
  • Yahoo: smtp.mail.yahoo.com (Port 587)
  • Zoho: smtp.zoho.com (Port 587)
  • Custom hosting: Check your hosting provider's documentation

Port Information:

  • Port 587: TLS/STARTTLS (recommended, set NODEMAILER_SECURE=false)
  • Port 465: SSL (set NODEMAILER_SECURE=true)
  • Port 25: Usually blocked by hosting providers

πŸ“Š Which Email Service Should You Use?

For Development/Testing:
  • βœ… Mailtrap (Sandbox) - Best for testing without sending real emails
  • βœ… Nodemailer (Gmail) - Quick setup for small-scale testing
For Production (Low Volume < 1000 emails/day):
  • βœ… SendGrid Free Tier - 100 emails/day free
  • βœ… Nodemailer (Custom SMTP) - If you have email hosting
For Production (High Volume):
  • βœ… SendGrid - Reliable, good deliverability, easy setup
  • βœ… AWS SES - Very cost-effective for high volume ($0.10 per 1000 emails)
  • βœ… Mailtrap (Production) - Testing tools + production sending

πŸ’‘ Pro Tip: You can configure multiple email services and use different ones for different purposes:

  • Transactional emails (password resets, verifications): Nodemailer or AWS SES
  • Marketing/Bulk emails: SendGrid or AWS SES
  • Testing/Development: Mailtrap Sandbox

Third-Party APIs & Tool Integrations

The following services power job search, image enhancement, and programmatic video rendering. Each requires its own account and API key.

πŸ”

RapidAPI β€” JSearch (Job Search)

Voralis uses the JSearch API (hosted on RapidAPI) to power the job search feature. A single RapidAPI account gives you access to the key. The free tier includes 200 requests / month.

Step 1: Create a RapidAPI Account
  1. Go to rapidapi.com and click Sign Up
  2. Register with GitHub, Google, or email + password
  3. Verify your email address when prompted
  4. You will land on the RapidAPI Hub dashboard
Step 2: Subscribe to the JSearch API
  1. Open the JSearch API page on RapidAPI Hub
  2. Click Subscribe to Test (or Pricing to see plans)
  3. Select the Free plan to start β€” includes:
    • 200 requests / month at no cost
    • Upgrade to Basic ($10/mo, 4 000 req) or Pro as needed
  4. Click Subscribe to confirm
Step 3: Copy Your RapidAPI Key
  1. In the JSearch API page, click the Code Snippets tab (any language)
  2. Look for the X-RapidAPI-Key header value β€” that is your key
  3. Alternatively, go to rapidapi.com/developer/apps β†’ select your default app β†’ copy the key from Security
Step 4: Configure in .env.local
# RapidAPI key β€” used for JSearch job search
JSEARCH_RAPIDAPI_KEY=your-rapidapi-key-here
RAPIDAPI_KEY=your-rapidapi-key-here

Both variables use the same key. RAPIDAPI_KEY is a generic fallback used by other RapidAPI integrations.

πŸ–ΌοΈ

Claid.ai β€” Image Enhancement API

Claid is used for automated image upscaling, background removal, and enhancement inside Voralis. A free trial is available; paid plans start at $9/month.

Step 1: Create a Claid Account
  1. Go to claid.ai and click Get Started Free
  2. Sign up with Google or email
  3. Complete the short onboarding survey (optional)
  4. Your account is created with a free trial credit
Step 2: Generate an API Key
  1. Log in and open the API Keys page (Dashboard β†’ API Keys)
  2. Click Generate New API Key
  3. Give it a name, e.g. voralis-production
  4. Copy the key β€” it is shown only once
Step 3: Configure in .env.local
CLAID_API_KEY=your-claid-api-key-here
CLAID_BASE=https://api.claid.ai
Free tier: Includes 50 free image-processing credits. Upgrade to a paid plan for higher volume. Check claid.ai/pricing for current rates.
☁️

AWS + Remotion β€” Programmatic Video Rendering

Voralis uses Remotion Lambda to render React-based videos at scale on AWS. You need an AWS account with an IAM user that has the correct permissions, then deploy the Remotion Lambda function.

ACreate an AWS Account & IAM User

1. Create an AWS Account

  1. Go to aws.amazon.com and click Create an AWS Account
  2. Enter your email, account name, and a strong root password
  3. Add a payment method (credit card required; free tier available)
  4. Complete identity verification (phone or credit card)
  5. Choose the Basic (Free) support plan
  6. Sign in to the AWS Management Console

2. Create a Dedicated IAM User for Remotion

⚠️ Never use root account credentials in your app. Always create a dedicated IAM user.
  1. In the AWS Console, search for IAM and open it
  2. Go to Users β†’ Create user
  3. Username: remotion-user
  4. Select Provide user access to the AWS Management Console β†’ skip (not needed)
  5. Click Next β†’ Attach policies directly
  6. Search for and attach these policies:
    • AmazonS3FullAccess
    • AWSLambda_FullAccess
    • CloudWatchLogsFullAccess
    • IAMReadOnlyAccess

    For a minimal permission set, see the official Remotion permissions guide.

  7. Click Create user

3. Generate Access Keys

  1. Open the newly created remotion-user
  2. Click the Security credentials tab
  3. Scroll to Access keys β†’ Create access key
  4. Use case: Application running outside AWS
  5. Click Next, then Create access key
  6. Copy both values immediately β€” they are shown only once:
    • Access Key ID β€” starts with AKIA…
    • Secret Access Key β€” long random string
BDeploy the Remotion Lambda Function

1. Install the Remotion CLI

npm install -g @remotion/lambda

2. Set AWS credentials in your terminal

export AWS_ACCESS_KEY_ID=AKIA...your-key-id
export AWS_SECRET_ACCESS_KEY=your-secret-access-key
export AWS_DEFAULT_REGION=us-east-1

Choose a region close to your users. us-east-1 (N. Virginia) is the most widely supported for Lambda.

3. Deploy the Remotion Lambda function

# Deploy Lambda + site bundle in one command
npx remotion lambda functions deploy
npx remotion lambda sites create --site-name=voralis

After deployment, note the Function ARN and Site URL printed to the console.

4. Grant Remotion the correct S3 / Lambda permissions

Remotion provides a one-command policy setup β€” run this once per AWS account:

npx remotion lambda policies validate

This checks your IAM permissions and tells you exactly which policies are missing.

CConfigure Environment Variables
# ── AWS credentials (IAM user created above) ──────────────────────────
AWS_ACCESS_KEY_ID=AKIA...your-access-key-id
AWS_SECRET_ACCESS_KEY=your-secret-access-key
AWS_REGION=us-east-1

# ── Remotion-specific (uses the same IAM credentials) ─────────────────
REMOTION_AWS_ACCESS_KEY_ID=AKIA...your-access-key-id
REMOTION_AWS_SECRET_ACCESS_KEY=your-secret-access-key
REMOTION_AWS_REGION=us-east-1

Notes

  • AWS_* variables are used for SES (email) and S3 general operations.
  • REMOTION_AWS_* variables are used exclusively by the Remotion rendering pipeline.
  • Both sets can point to the same IAM user unless you want separate permission scopes.
  • Full Remotion Lambda docs: remotion.dev/docs/lambda

Feature: Content Templates System

The Content Templates System allows users to generate content using 72+ pre-built templates across 8 categories (Blog, Email, Social Media, etc.) using OpenAI or Grok.

Step 1: Database Migrations (Required)

Run the following SQL files in your NeonDB SQL Editor to create the necessary tables:

  1. voralis-web/migrations/create_content_templates.sql
  2. voralis-web/migrations/insert_remaining_templates.sql

Step 2: Configuration

Ensure these variables are in your .env.local:

# AI Service (Choose one or both)
OPENAI_API_KEY=sk-your-key
GROK_API_KEY=xai-your-key

# Optional: Use Grok for content generation
USE_GROK_FOR_CONTENT=false

Feature: URL to Video Ads

Automatically convert product URLs (Amazon, Shopify, etc.) into video ads using HeyGen avatars and AI script generation.

Step 1: Background Worker

This feature requires a background worker to process long-running video generation tasks. In development, run:

npm run worker

Production: Deploy scripts/worker.ts as a separate worker service (e.g., on Render or Heroku) to ensure continuous processing.

Step 2: Queue System (Redis)

The worker uses Upstash Redis (or any Redis instance). Ensure UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN are set.

Step 3: Required API Keys

# HeyGen (Video Generation)
HEYGEN_API_KEY=your-heygen-api-key

# Notifications
RESEND_API_KEY=re_your_resend_key
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY... (with proper escaping)"
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_CLIENT_EMAIL=your-client-email

# Storage (Video Hosting)
R2_ACCOUNT_ID=...
R2_ACCESS_KEY_ID=...
R2_SECRET_ACCESS_KEY=...
R2_BUCKET_NAME=...

Feature: AI Presentation Maker

Create multi-slide presentations from a simple topic description using OpenAI.

Configuration

This feature primarily uses the standard OpenAI configuration. No additional specialized keys are required beyond what is listed in the AI Services section.

# Required for presentation generation
OPENAI_API_KEY=sk-your-openai-key

Database Schema

Ensure you have run the main database schema migration (database-schema.sql), which includes the presentations and presentation_slides tables.

Final Configuration (Voralis Web)

Step 1: Generate Security Secrets

# Generate JWT Secret
openssl rand -base64 32

# Generate Admin Secret
openssl rand -base64 32

Add to .env.local:

JWT_SECRET=your-generated-jwt-secret
ADMIN_SECRET_KEY=your-generated-admin-secret

Step 2: Set Base URL

# Development
NEXT_PUBLIC_BASE_URL=http://localhost:3000

# Production (update after deployment)
NEXT_PUBLIC_BASE_URL=https://your-domain.com

Step 3: Configure License Settings

# Brain Server URL (provided by your vendor/developer)
NEXT_PUBLIC_BRAIN_SERVER_URL=https://your-brain-server.vercel.app

# License Key (provided by your vendor/developer)
NEXT_PUBLIC_LICENSE_KEY=your-license-key-here

Step 4: Test Configuration

# Start development server
npm run dev

# Or
yarn dev

Visit http://localhost:3000 and check:

  • βœ… License setup wizard appears if no license
  • βœ… Database connection works
  • βœ… No console errors

Troubleshooting (Voralis Web)

1. Database Connection Failed

Error: Database not configured - missing NEON_DATABASE_URL

Solution:

  • Verify NEON_DATABASE_URL is set correctly
  • Check connection string format
  • Ensure database schema is initialized
  • Test connection in Neon Console

2. License Verification Failed

Error: License verification failed

Solution:

  • Verify NEXT_PUBLIC_BRAIN_SERVER_URL is correct (contact your vendor/developer)
  • Verify NEXT_PUBLIC_LICENSE_KEY is correct
  • Check license key format matches your purchase
  • Ensure you're using the license key from your purchase receipt/email
  • Contact support if the issue persists

3. API Key Errors

Error: API key not configured

Solution:

  • Verify API key is in .env.local (not .env)
  • Check for typos or extra spaces
  • Restart development server after adding keys
  • Verify API key is active in provider dashboard

Part 2: Voralis App Installation

Prerequisites (Voralis App)

  • Node.js 18+ installed
  • npm or yarn
  • Git (if using version control)
  • Expo CLI (optional but recommended):
    npm install -g expo-cli
  • EAS CLI (for cloud builds):
    npm install -g eas-cli
  • Android:
    • Android Studio with Android SDK and at least one Android Virtual Device (AVD), or a physical Android device with USB debugging enabled.
  • iOS (on macOS only):
    • Xcode installed
    • iOS Simulator or physical device with Apple developer account (for builds).

Project Structure (Voralis App)

Key files and folders:

  • package.json – scripts and dependencies
  • app.json – Expo app configuration (name, icons, bundle IDs, etc.)
  • eas.json – EAS build profiles (development/production/app1/app2)
  • App.tsx – main app entry
  • src/ – app source (screens, components, services, contexts, etc.)

Install Dependencies (Voralis App)

From the voralis-app directory:

cd voralis-app
npm install
# or
yarn install

Environment Variables (Voralis App)

Expo uses EXPO_PUBLIC_ prefix for variables that should be available on the client.

Create .env (or .env.local)

In voralis-app/:

touch .env

Example content:

# License
EXPO_PUBLIC_LICENSE_KEY=your-mobile-license-key-here

# Brain Server URL (provided by your vendor/developer)
EXPO_PUBLIC_BRAIN_SERVER_URL=https://your-brain-server.vercel.app

# API base URLs (for calling voralis-web backend)
EXPO_PUBLIC_API_BASE_URL=https://www.voralisai.com
EXPO_PUBLIC_API_URL=https://www.voralisai.com

Note: For EAS builds, you typically configure env vars via EAS secrets or eas.json profiles, not by committing .env to git.

Where They Are Used

  • EXPO_PUBLIC_LICENSE_KEY - Used in HomeScreen.tsx, LoginScreen.tsx, RegisterScreen.tsx, ChatScreen.tsx to pass a default license key to useLicense.
  • EXPO_PUBLIC_BRAIN_SERVER_URL - Used in src/services/licenseVerification.ts for license verification.
  • EXPO_PUBLIC_API_URL - Used in src/api/speech-to-text.ts as base URL for speech-to-text API.

Running the App (Development)

From voralis-app/:

Start Metro Bundler

npm start
# or
expo start

You will see a QR code and options for Android, iOS, and Web.

Run on Android

With an emulator:

npm run android
# or
expo run:android

With a physical device:

  • Install Expo Go from Play Store.
  • Ensure device and dev machine are on same network.
  • Scan QR from the terminal (or web UI opened by expo start).

Run on iOS (macOS only)

With Simulator:

npm run ios
# or
expo run:ios

With physical device:

Requires Apple developer account and proper provisioning via Xcode / EAS.

Run on Web

npm run web

app.json Configuration

File: voralis-app/app.json

Basic Info

{
  "expo": {
    "name": "Voralis AI",
    "slug": "voralis-ai",
    "version": "1.0.0",
    "description": "Advanced AI-powered assistant...",
    "userInterfaceStyle": "automatic",
    "sdkVersion": "54.0.0",
    ...
  }
}

Icons & Splash

"icon": "./assets/logo.png",
"splash": {
  "image": "./assets/logo.png",
  "resizeMode": "contain",
  "backgroundColor": "#ffffff"
}

To customize branding:

  • Replace ./assets/logo.png, ic_launcher.png, and adaptive-icon.png with your assets.
  • Update backgroundColor to match your theme.

Platforms

"platforms": ["ios", "android", "web"]

Extra Config

"extra": {
  "googleClientId": "your-google-client-id",
  "eas": {
    "projectId": "20acf715-d397-4002-ab97-233acd09fea4"
  },
  "apiUrl": "https://www.voralisai.com"
}

You can access extra via expo-constants in code if needed.

iOS

"ios": {
  "icon": "./assets/ic_launcher.png",
  "bundleIdentifier": "com.yourcompany.yourapp"
}

Change bundleIdentifier to your own reverse-DNS string before App Store submission.

Android

"android": {
  "package": "com.yourcompany.yourapp",
  "permissions": [
    "android.permission.READ_EXTERNAL_STORAGE",
    "android.permission.WRITE_EXTERNAL_STORAGE",
    "android.permission.INTERNET",
    ...
  ]
}

Change package to your own (must be unique on Play Store). Adjust permissions if you add/remove features.

eas.json Configuration

File: voralis-app/eas.json

This file defines multiple build profiles:

  • app1-development, app2-development – internal dev builds for two app variants.
  • app1-production, app2-production – production builds per variant.
  • development, preview, release, production – generic profiles.

Example Profile

{
  "build": {
    "app1-development": {
      "developmentClient": true,
      "environment": "development",
      "distribution": "internal",
      "android": {
        "buildType": "apk",
        "gradleCommand": ":app:assembleDebug"
      },
      "ios": {
        "buildConfiguration": "Debug",
        "image": "latest"
      },
      "env": {
        "NODE_ENV": "development",
        "APP": "app1"
      }
    },
    ...
  }
}

Using Build Profiles

From voralis-app/:

# App 1 production build (Android)
npx eas build --platform android --profile app1-production

# App 1 production build (iOS)
npx eas build --platform ios --profile app1-production

# Generic production build
npx eas build --platform android --profile production

The APP env var is used by scripts/set-project-id.js to swap project IDs or configs between variants.

Adding Environment Variables per Profile

You can add additional env keys under each profile:

"env": {
  "NODE_ENV": "production",
  "EXPO_PUBLIC_API_BASE_URL": "https://api.yourdomain.com",
}

These are injected at build time on EAS.

Android Configuration (Native)

If you eject or use expo run:android, Android native project is under android/.

Key files:

  • android/app/build.gradle – app-level Gradle config
  • android/app/src/main/AndroidManifest.xml – permissions and intents
  • android/app/src/main/res/ – icons, adaptive icons, splash images

Most configuration can be handled via app.json + EAS, but for advanced changes (custom permissions, deep links) you may need to edit these files.

iOS Configuration (Native)

If you run expo run:ios or build with EAS, the iOS project lives under ios/.

Key files:

  • ios/VoralisAI/Info.plist – app metadata, permissions (camera, microphone, photo library)
  • ios/VoralisAI/AppDelegate.swift – app entry
  • ios/VoralisAI/Images.xcassets/ – icons, splash images
  • ios/VoralisAI.entitlements – capabilities (Push, iCloud, etc.)

You generally:

  • Use app.json for bundle ID and display name.
  • Use EAS for signing and distribution.
  • Only modify native files for special cases (e.g., custom URL schemes).

License System (Voralis App)

The mobile app uses the same unified licensing system as the web:

  • EXPO_PUBLIC_LICENSE_KEY (or per-user key) is used.
  • License Setup Wizard equivalent exists on web; in mobile, screens like HomeScreen, LoginScreen, RegisterScreen, and ChatScreen check isLicensed and block access until license is valid.

As an integrator:

  • You only need to provide license keys.
  • Do not modify license verification logic.

Typical Setup Workflow Summary

  1. Clone voralis-app or download and install dependencies.
  2. Create .env with:
    • license key
    • Brain server URL
    • API base URLs
    • OpenAI / other model keys (optional)
    • R2 storage keys (if used)
  3. Adjust app.json:
    • App name, slug, icons, splash
    • iOS bundle ID and Android package name
  4. (Optional) Tweak eas.json profiles and env vars.
  5. Run npm start and test on device/emulator.
  6. Use eas build for production Android/iOS binaries.

Support

For additional help:

  • πŸ“§ Email: support@somatechglobalventures.com

License

This installation guide is part of the Voralis project. All rights reserved.

Last Updated: January 2026
Version: 1.0.0