Skip to content

Project Page

Abd El-Rahman Nabil edited this page Sep 25, 2026 · 2 revisions

Everything about one project in one place: commands, workers, packages, Git, a terminal, domains and settings.

Open a project by clicking its name on the Sites page, with Manage, or by going to #project/<name> in the panel. The header shows:

  • the framework, and the PHP or Node version (which you can change there)
  • every domain, the serving status, and an HTTPS switch
  • buttons for Open site, Terminal here, Copy path and Show in Finder/Explorer

The tabs you see depend on the project: a PHP project gets Workers, and a project with a composer.json or package.json gets Packages.

Commands

The Commands tab lists everything the project can run:

  • artisan commands (Laravel) or bin/console commands (Symfony), read from the framework itself
  • npm scripts from package.json, run with the project's package manager
  • Composer scripts from composer.json

Quick actions cover the usual tasks, such as migrate, optimize:clear, route:list and npm run build. Destructive ones are shown in red. Search the full list and mark favorites.

Commands run in the project folder with the project's PHP and Node, and their output streams into the panel. Interactive commands such as tinker, a REPL, or anything that prompts go to a terminal tab instead.

The Commands tab: quick actions, the artisan command list and a finished run of php artisan migrate:status

From a shell, mullion run does the same thing:

$ mullion run shop -- php artisan migrate
$ mullion run -- composer install       # the site linked to the current folder

Workers

Workers are long-running commands that Mullion keeps up for a project. It offers templates for the project's framework:

  • a Laravel queue worker
  • the scheduler (schedule:work, so you don't need cron)
  • Horizon and Reverb
  • Symfony Messenger
  • any custom command

The Workers tab: a running queue worker and scheduler, and a paused Reverb server

  • Each worker runs in the project folder with the project's PHP and Node on PATH.
  • Its log is kept in ~/.mullion/logs/worker-<site>-<id>.log. Open it from the Logs button.
  • With Auto-start, a worker comes up with the stack.
  • If a worker crashes, it restarts with backoff: 1s, 2s, 4s… capped at a minute. After 5 crashes within 2 minutes it's marked crash-looping and left stopped, so it doesn't spin forever.
  • A worker you stop stays stopped until you start it.
  • Long-running PHP workers don't see code or .env changes, so restart them after changing either.
$ mullion worker add shop --name Queue --kind queue --command "php artisan queue:work --tries=3" --autostart
$ mullion worker add shop --name Scheduler --kind scheduler --command "php artisan schedule:work" --autostart
$ mullion worker list
$ mullion worker logs shop queue -n 100
$ mullion worker restart shop queue

Packages

Search Packagist or the npm registry, then install or remove a package, either as a normal dependency or as a dev dependency. The tab also lists the Composer and npm packages already installed. The CLI works the same way:

$ mullion pkg search composer stripe
$ mullion pkg add shop composer laravel/horizon
$ mullion pkg add shop npm @tailwindcss/vite --dev
$ mullion pkg list shop
$ mullion pkg remove shop npm lodash

Git

A full Git client for the project, covered on the Git page.

Terminal

A terminal in the project folder, with the project's PHP and Node. See Terminal. Open in window pops it out.

Domains

  • Add and remove subdomain aliases and the * wildcard.
  • If wildcard DNS is off, a note tells you to turn it on.
  • Frontend projects can also move their dev server to another port here. Mullion checks for conflicts and suggests a free port.

Settings

  • The PHP version for this site (pinned, or following the global one), or the Node version.
  • For frontend sites: the serve mode (dev server or production build).
  • HTTPS, and renaming the site.
  • A danger zone to unlink the site. The folder itself is never touched.

← Previous: Sites and Domains · Next: Terminal →

Clone this wiki locally