Start

Installation

Homebrew or a one-line script on macOS, Scoop or a single .exe on Windows. Then one command sets up the whole stack.

Requirements

macOS

Homebrew

$ brew tap anabiiil/tap
$ brew trust anabiiil/tap   # newer Homebrew asks for this once for third-party taps
$ brew install mullion
$ mullion setup

Upgrades arrive through brew upgrade. A copy of the binary in ~/.mullion/bin hands off to the Homebrew one, so an upgrade takes effect right away.

Install script

This downloads the right binary for your Mac from the latest release and starts setup:

$ curl -fsSL https://raw.githubusercontent.com/anabiiil/mullion/main/install.sh | sh

Manual download

From Releases, download mullion-<version>-darwin-arm64.tar.gz (Apple Silicon) or -darwin-amd64.tar.gz (Intel), then run:

$ tar -xzf mullion-*-darwin-*.tar.gz
$ xattr -c ./mullion   # clear the Gatekeeper quarantine flag
$ ./mullion setup

Windows

Scoop

Mullion installs through Scoop, a package manager for Windows. Open PowerShell (a normal window, not "Run as administrator") and check whether you already have it:

> scoop --version

If it says scoop is not recognized, install Scoop first, then close PowerShell and open a new window:

> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
> Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
> scoop install git          # Scoop needs Git to add buckets

Then install Mullion:

> scoop bucket add mullion https://github.com/anabiiil/scoop-bucket
> scoop install mullion
> mullion setup

Update later with scoop update followed by scoop update mullion.

Scoop problems and their fixes

You seeDo this
scoop : The term 'scoop' is not recognizedScoop isn't installed, or this window was open before it was. Install it as above, then open a new PowerShell window.
running scripts is disabled on this systemSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser, then retry.
Running the installer as administrator is disabled by defaultYou opened PowerShell as administrator. Open a normal window and run the installer again. (Only if your account must be an administrator: iex "& {$(irm get.scoop.sh)} -RunAsAdmin".)
Git is required for bucketsscoop install git, then run scoop bucket add … again.
bucket 'mullion' already existsIt's already added — go on with scoop install mullion.
Couldn't find manifest for 'mullion'The bucket is missing or stale: scoop bucket add mullion https://github.com/anabiiil/scoop-bucket, or scoop update, then install again.
mullion : The term 'mullion' is not recognized after installingOpen a new terminal so it picks up the updated PATH.
An old version after a releasescoop update, then scoop update mullion.

Single .exe

Download mullion.exe (or the windows-amd64.zip) from Releases. Then either:

Setup asks for administrator rights once, with a single UAC prompt.

Windows SmartScreen may warn about the unsigned exe the first time it runs. Click More info → Run anyway.

What setup does

  1. Creates the install folder and puts mullion on your PATH.
  2. Downloads Caddy.
  3. Installs the latest PHP and makes it the default, then installs Composer.
  4. Installs the latest Node LTS, with npm.
  5. Installs MySQL (8.4 LTS), initializes it, and starts it on 127.0.0.1:3306 as user root with no password.
  6. Serves phpMyAdmin at https://phpmyadmin.test.
  7. Trusts the local certificate authority, so browsers show a padlock.
  8. Installs Mullion.app into /Applications on macOS, or creates a desktop shortcut on Windows.
  9. Asks whether Mullion should start when you sign in.

If setup finds another stack (Laragon, XAMPP, a Homebrew service) holding ports 80, 443 or 3306, it lists it and offers to take over. It imports that stack's databases before touching anything. Every finished step is skipped on a re-run, so running mullion setup again is always safe.

Mullion.app (macOS)

Mullion.app is a small native AppKit window around the control panel. It has real windows for terminals and projects, and they merge into macOS window tabs if you prefer tabs. Setup and self-updates install it. To reinstall it by hand:

$ mullion app

Upgrading from 1.x

Uninstall

$ mullion uninstall

This stops every service and removes the install folder, the hosts-file entries, the PATH entries, the trusted root certificate, the autostart entry and Mullion.app. First it offers to export every database to a backup folder that is kept (--backup / --no-backup / --yes skip the questions). Your project folders are not touched. Finally, remove the package itself with brew uninstall mullion or scoop uninstall mullion.