Prepared: September 12, 2026 ยท From: Hans (Iceberg Media)

โœ… What's Already Done

DONE Cloudflare DNS

staging3.fansfollowme.com โ†’ CNAME to laravel.cloud (proxied, SSL automatic)

DONE Laravel Cloud Environment

Project: ffm-staging2 on Laravel Cloud

Dashboard: cloud.laravel.com/hans-al-koch/ffm-staging2

DONE GitHub Repository

FansFollow-me/staging.fansfollowme.com (main branch)

Sponzy v7.9.2 โ€” Laravel 12, PHP 8.3/8.5, MySQL 8.4

๐Ÿ”‘ Credentials You Need

Get these from the Laravel Cloud dashboard:
https://cloud.laravel.com/hans-al-koch/ffm-staging2/production

Go to Database section and copy:

๐Ÿ“ R2 Storage (File Uploads)

Use these R2 credentials for file uploads (avatars, posts, media):

FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=1386f45b43a484d2fb4bc3bda0f7a713
AWS_SECRET_ACCESS_KEY=4bf8ca550cb9c1a1bc0bf1025cec17a82da108d7d82b802d22795639a6e549e5
AWS_DEFAULT_REGION=auto
AWS_BUCKET=fls-a29b3308-b261-4645-bd9d-d1b983bd9cba
AWS_ENDPOINT=https://367be3a2035528943240074d0096e0cd.r2.cloudflarestorage.com
AWS_URL=https://pub-f0e1a5e49a4540e1b0f310fb96b8055a.r2.dev
AWS_USE_PATH_STYLE_ENDPOINT=false

๐Ÿ› ๏ธ Deployment Steps

1

Clone the Repository

git clone https://github.com/FansFollow-me/staging.fansfollowme.com.git ffm-staging3
cd ffm-staging3
2

Create .env File

cp .env.example .env

Then edit .env with these values:

APP_NAME="FansFollowMe Staging 3"
APP_ENV=staging
APP_DEBUG=true
APP_URL=https://staging3.fansfollowme.com
APP_KEY=   # generate with: php artisan key:generate

LOG_CHANNEL=single

DB_CONNECTION=mysql
DB_HOST=<FROM LARAVEL CLOUD DASHBOARD>
DB_PORT=3306
DB_DATABASE=<FROM LARAVEL CLOUD DASHBOARD>
DB_USERNAME=<FROM LARAVEL CLOUD DASHBOARD>
DB_PASSWORD=<FROM LARAVEL CLOUD DASHBOARD>

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_CONNECTION=sync

FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=1386f45b43a484d2fb4bc3bda0f7a713
AWS_SECRET_ACCESS_KEY=4bf8ca550cb9c1a1bc0bf1025cec17a82da108d7d82b802d22795639a6e549e5
AWS_DEFAULT_REGION=auto
AWS_BUCKET=fls-a29b3308-b261-4645-bd9d-d1b983bd9cba
AWS_ENDPOINT=https://367be3a2035528943240074d0096e0cd.r2.cloudflarestorage.com
AWS_URL=https://pub-f0e1a5e49a4540e1b0f310fb96b8055a.r2.dev
AWS_USE_PATH_STYLE_ENDPOINT=false

MAIL_MAILER=log

STRIPE_KEY=
STRIPE_SECRET=
STRIPE_WEBHOOK_SECRET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

TIMEZONE=UTC
3

Install Dependencies

composer install --no-dev
npm install
npm run build
4

Generate Key & Run Migrations

php artisan key:generate
php artisan migrate --force
php artisan db:seed --force
5

Deploy to Laravel Cloud

Push to the main branch โ€” Laravel Cloud auto-deploys:

git add .
git commit -m "staging3 initial deploy"
git push origin main

Or connect the repo in the Laravel Cloud dashboard under Deployment settings.

6

Post-Deploy: Create Missing Tables

Run this in Laravel Cloud's terminal or via php artisan tinker:

php artisan tinker --execute="
foreach (['video_calls', 'audio_calls'] as \$table) {
    if (!Schema::hasTable(\$table)) {
        Schema::create(\$table, function (\$t) {
            \$t->id();
            \$t->integer('seller_id');
            \$t->integer('buyer_id');
            \$t->decimal('price', 10, 2)->default(0);
            \$t->string('status')->default('pending');
            \$t->integer('minutes')->default(0);
            \$t->string('token')->nullable();
            \$t->timestamp('started_at')->nullable();
            \$t->timestamp('joined_at')->nullable();
            \$t->timestamp('ended_at')->nullable();
            \$t->tinyInteger('paid')->default(0);
            \$t->timestamps();
        });
    }
}
echo 'Tables created';
"

๐Ÿ“‹ Default Accounts (After Seed)

Role Username Password URL
Admin Admin TestPass123! /admin
Test Fan testfan TestPass123! /login
Test Creator testcreator TestPass123! /login

โš™๏ธ API Keys (Configure in Admin Panel)

After deployment, login at /admin and go to Settings to configure:

Copy these from the existing staging.fansfollowme.com/admin if needed.

๐Ÿ”— Reference

ItemValue
staging3 URLstaging3.fansfollowme.com
Existing stagingstaging.fansfollowme.com
Laravel Cloudffm-staging2
GitHubFansFollow-me/staging.fansfollowme.com
R2 Bucketfls-a29b3308-b261-4645-bd9d-d1b983bd9cba
PHP8.3 or 8.5
MySQL8.4
FrameworkLaravel 12.46 + Sponzy v7.9.2

โš ๏ธ Do NOT Touch