Skip to content
Scalpels home

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

← All documentation

Documentation

Sink

Getting started

Updated

You install Sink once per team. A single installation receives mail from all of the applications you attach to it, so most teams run one Sink for staging and testing.

Install through Scalpels

Connect GitHub and Laravel Cloud, open Catalog, choose Sink and select View requirements. The general flow, including how a failed install resumes, is described in Install a product.

Sink's manifest asks for nothing you have to type. Every environment key it lists is optional, and Scalpels leaves them unset so Sink's defaults apply. You can change them later; see Configuration.

What the install creates

On your Laravel Cloud account, Scalpels creates an application from your fork of artisan-build/sink, running PHP 8.5, with:

Resource What Sink uses it for
Postgres database (Neon serverless, version 18) Message metadata: subject, sender, recipients, headers, extracted links, attachment details
Managed queue The parse job that runs after each message arrives
Object storage bucket The raw MIME source of every message and each attachment's bytes
Scheduler The hourly sink:maintain task that applies retention and removes deleted files

After the first deploy, Scalpels runs php artisan migrate --force to create Sink's tables.

Laravel Cloud injects the connection settings for each of these resources itself. Do not add database, queue, cache, storage or AWS_* variables to the Sink environment by hand: a value you set shadows the one Cloud manages and can break the resource.

Sign in

Open the Sink deployment's page in Scalpels and choose Open Sink. That starts Sink's managed sign-in at /bfc/managed/login and signs you in with your Scalpels account. Other members of your team open Sink the same way.

Sink has no open registration. A deployment that Scalpels installed before managed sign-in existed may not offer Open Sink until an Owner or Admin enrols it from the same page.

Once you are in, the sidebar has:

  • Dashboard, which is currently an empty placeholder;
  • Inbox, at /inbox, where captured mail appears (see The inbox);
  • Members, shown to administrators, which opens Sink's account area at /bfc/ui.

First steps

  1. Attach an application to Sink from Scalpels, merge the pull request it opens, and set that application's MAIL_MAILER to sink.
  2. Send a test message from the application and watch it appear in the inbox.
  3. If you want an agent to check mail, create an MCP credential or use Scalpels' relay; see Agents and MCP.

Check that Sink is up

Sink publishes an unauthenticated capabilities document. Open https://<your-sink-host>/capabilities and you should see JSON describing the envelope versions the server accepts:

{"envelope":{"min_major":1,"max_major":1,"supported_majors":[1]}}

The sending apps' php artisan sink:update command reads the same document to check that client and server are compatible.