Skip to content
Scalpels home

Scalpels is officially launching on October 31, 2026. Special early adopter pricing is available now.

← All documentation

Documentation

Reel

Getting started

Updated

You install Reel from the Scalpels catalog like any other product. The general flow is described in Install a product. This page covers what is specific to Reel.

Before you start

  • Connect GitHub and Laravel Cloud to your Scalpels team (Connect GitHub, Connect Laravel Cloud).
  • Reel is Experimental. Installing a new copy needs the Supporter tier or a partner team.
  • Check the applications you plan to record. The Reel client requires Laravel 13. Applications on Laravel 12 or older cannot install it.

What the install provisions

Scalpels forks artisan-build/reel into your GitHub account and creates the following in your Laravel Cloud account, and nothing else:

Resource Why Reel needs it
Web compute on PHP 8.5 Serves Reel's screens, the upload endpoint the recorder sends chunks to, the replay player and the MCP server.
A Neon serverless PostgreSQL 18 database Holds applications, session metadata, markers, retention state and the Built for Cloud user and credential tables. Several migrations use PostgreSQL-specific SQL.
A managed Laravel Valkey cache Provides shared locks for Reel's five scheduled maintenance commands so two scheduler instances cannot run the same task at once.
A private object storage bucket Holds every recording. Uploaded chunks and the compacted replay objects are stored here, never in a public bucket.
A managed queue Runs compaction, deletion and erasure jobs.
The scheduler Closes finished sessions, expires old ones, retries deletions, resumes erasures and sweeps orphaned objects.

The build runs php artisan optimize after the standard Composer install. After each deploy, Scalpels runs two commands in order:

  1. php artisan migrate --force creates the schema.
  2. php artisan reel:smoke checks the deployment before it is called ready. It round-trips the database, the bucket and the queue, and checks that the schedule Reel registers in code matches its manifest. It refuses to pass unless the default disk is S3-backed and the queue is not running jobs inline.

Reel has no environment values to fill in. Every limit, retention window and ceiling is fixed in Reel's own config files, and the connection settings for the database, cache, bucket and queue are injected by Laravel Cloud. See Configuration.

Sign in

Reel's users, roles, invitations, password reset and sessions are handled by the Built for Cloud package, under /bfc. Reel has no login screen of its own.

Open Reel from its deployment page in Scalpels with Open Reel. Once you are in, invite your colleagues from Reel's member management. Owner, Admin and Member all have the same access to Reel's applications, recordings, settings, credentials, deletion and erasure. The one difference is that only the person who protected a recording, an Admin or an Owner can unprotect it.

After signing in, Reel's screens are:

  • Dashboard (/dashboard): operational health for the deployment, such as sessions awaiting compaction, queue lag, failed jobs, protected recordings, estimated storage and the last retention sweep.
  • Applications (/applications): the Laravel applications you record, with their capture settings and signing credentials.
  • Sessions (/sessions): every recorded session, with filters and the replay player.

Check that the scheduler is running

A green reel:smoke does not prove that the Laravel Cloud scheduler is switched on or firing. Its scheduler check only compares the schedule in code with the manifest. Confirm in the Laravel Cloud dashboard that the environment's scheduler is enabled and its runs are appearing. Without it, sessions never become playable and nothing expires.

Next step

Create your first application and enroll it: Connecting your apps.