staging3.fansfollowme.com โ Deployment Guide
Prepared: September 12, 2026 ยท From: Hans (Iceberg Media)
staging3.fansfollowme.com โ CNAME to laravel.cloud (proxied, SSL automatic)
Project: ffm-staging2 on Laravel Cloud
Dashboard: cloud.laravel.com/hans-al-koch/ffm-staging2
FansFollow-me/staging.fansfollowme.com (main branch)
Sponzy v7.9.2 โ Laravel 12, PHP 8.3/8.5, MySQL 8.4
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
git clone https://github.com/FansFollow-me/staging.fansfollowme.com.git ffm-staging3 cd ffm-staging3
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
composer install --no-dev npm install npm run build
php artisan key:generate php artisan migrate --force php artisan db:seed --force
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.
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';
"
| Role | Username | Password | URL |
|---|---|---|---|
| Admin | Admin |
TestPass123! |
/admin |
| Test Fan | testfan |
TestPass123! |
/login |
| Test Creator | testcreator |
TestPass123! |
/login |
After deployment, login at /admin and go to Settings to configure:
Copy these from the existing staging.fansfollowme.com/admin if needed.
| Item | Value |
|---|---|
| staging3 URL | staging3.fansfollowme.com |
| Existing staging | staging.fansfollowme.com |
| Laravel Cloud | ffm-staging2 |
| GitHub | FansFollow-me/staging.fansfollowme.com |
| R2 Bucket | fls-a29b3308-b261-4645-bd9d-d1b983bd9cba |
| PHP | 8.3 or 8.5 |
| MySQL | 8.4 |
| Framework | Laravel 12.46 + Sponzy v7.9.2 |