MelodAI Documentation

MelodAI Installation Guide

Laravel 13 + Inertia web platform and Expo 56 React Native mobile app. Local development, cPanel shared hosting, VPS, API keys, PHP extensions, queues, and production APK builds.

Overview

MelodAI is an AI music and media SaaS platform built with Laravel 13, Inertia.js, and a companion mobile app (melodai-app) using Expo SDK 56 and React Native.

The web app includes an installation wizard at /install, a shared login at /login (admins and users), and an admin panel at /admin for users with the admin role. It supports HTTP cron endpoints, database queue workers, and integrations for Suno, OpenAI, xAI, FAL, Stripe, Flutterwave, Revolut, Cryptomus, Cloudflare R2, YouTube OAuth, and more.

Technology stack

  • Backend: PHP 8.3+, Laravel 13, MySQL/MariaDB, database queues (Horizon optional on Linux VPS)
  • Frontend: Inertia.js, Vite, Tailwind CSS v4
  • Mobile: Expo 56, React Native 0.85, Expo Router, TypeScript
  • Media: FFmpeg (lyrics video and audio processing)
  • Storage: Local disk or Cloudflare R2 (recommended for production)

Documentation guides

Quick start (local)

  1. Install PHP 8.3+, Composer 2, Node.js 20 LTS, MySQL, and FFmpeg.
  2. Clone the project, copy .env.example to .env, enable required PHP extensions.
  3. Run composer install, npm install, npm run build, and migrations.
  4. Start dev stack: composer run dev (app, queue worker, and Vite).
  5. Complete the /install wizard.
  6. Mobile: set EXPO_PUBLIC_API_URL in melodai-app/.env and run npx expo start.

Pre-launch checklist

Application

  • APP_ENV=production, APP_DEBUG=false, APP_URL=https://yourdomain.com
  • Admin → Settings → General → Site URL matches production HTTPS (used for cron URLs)
  • APP_KEY is set; never commit .env
  • Suno, R2 storage, and payment keys configured and tested

Operations

  • HTTP cron jobs copied from Admin → Cron & Queue
  • Queue workers running (Supervisor on VPS or cPanel PHP cron)
  • php artisan storage:link; writable storage and bootstrap/cache
  • Mobile app built with production EXPO_PUBLIC_API_URL

Post-launch verification

  • Homepage, login, registration, and admin panel load over HTTPS
  • Music generation end-to-end (queue processes job, user notified)
  • Stripe, Flutterwave, Revolut (sandbox), and/or Cryptomus test payment, then one live payment per enabled provider
  • Mobile app login against production API; YouTube connect if enabled
  • Review storage/logs/laravel.log and Admin → Queue Monitor