Pancake Stack › Pancake Stack Manual
Services, tasks and workers
FullStack adds PostgreSQL, Valkey and Memcached, and runs scheduled tasks and background workers for your sites.

13.1Databases and caches
FullStack The Services pane switches on three extra servers. Each runs on this Mac only, starts and stops with Pancake, and gives every site its address as environment variables.
| Service | Sites get | Options |
|---|---|---|
| Valkey (Redis-compatible) | REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, VALKEY_URL, REDIS_URL | Keep data across restarts; Copy URL |
| Memcached | MEMCACHED_HOST, MEMCACHED_PORT | Memory (16 MB to 1 GB) |
| PostgreSQL 17 | PGHOST, PGPORT, PGDATABASE, PGUSER, PGPASSWORD, POSTGRES_URL | A database and role for each site |
PHP includes the redis, memcached, pgsql and pdo_pgsql extensions. Switching a service on or off restarts the servers if they're running. Each service shows its address (such as 127.0.0.1:6379) when it's running.
PostgreSQL databases are managed in the Databases pane.
13.2Scheduled tasks and workers
FullStack Each site in the Services pane can have:
- Scheduled tasks, run on a cron-style schedule: WP-Cron, Laravel's scheduler, a Django management command, your test suite.
- Workers, kept running and restarted if they stop: Laravel's
queue:work, Celery and other queue workers.
They run in the site's folder with the site's environment (database settings included) while Pancake is open and the servers are running, like a cron on this Mac rather than on a server.
- Click Add on the site's card.
- Pick a Preset if one fits (Pancake offers those that match the site's files), or fill in a Name, the Kind (Scheduled task or Worker) and the Command.
- For a scheduled task, type the Schedule (cron). Pancake shows the next run as you type. Set Stop a run after to limit how long a run can take (10 minutes unless you change it).
- Click Save.
| Preset | Kind | Command | Schedule |
|---|---|---|---|
| Laravel scheduler | Task | artisan schedule:run | * * * * * |
| Laravel queue worker | Worker | artisan queue:work --sleep=3 --tries=3 | |
| WP-Cron | Task | php wp-cron.php | */5 * * * * |
| Run tests (PHPUnit) | Task | php vendor/bin/phpunit | @daily |
| Django management command | Task | manage.py clearsessions | @daily |
Each row shows when it last ran and whether it worked, with Run Now, Log and Edit. Output goes to the task's own log (task-<name>.log in the Logs window).
What a command can be
Commands start with php, artisan, composer, python or manage.py. There's no shell: pipes, ;, && and redirects aren't available, and nothing is expanded. Quotes work as usual.
Schedules
A schedule has five parts: minute, hour, day of the month, month and day of the week, in your Mac's time zone.
| Schedule | Runs |
|---|---|
*/5 * * * * | Every five minutes |
0 * * * * or @hourly | At the start of every hour |
30 2 * * * | Every day at 2:30 |
0 9 * * mon-fri | Weekdays at 9:00 |
0 0 1 * * or @monthly | At midnight on the 1st of each month |
Lists (1,15), ranges (1-5), steps (*/15), month and day names, and @daily, @weekly, @yearly all work.
13.3Nginx
FullStack A site can use Nginx as its web server: on its card, turn on Advanced and set Web server to Nginx. See Advanced settings on a card.