Anvil

System requirements

Supported macOS versions and hardware, the ports Anvil uses and the password prompts it asks for.

Platform

Status
macOS on Apple siliconSupported
macOS on IntelUntested
LinuxNot supported yet
WindowsNot supported yet

Tools

Redis is built from source and Git status needs git; both come with the Xcode command line tools:

xcode-select --install

Templates for new applications use the matching language (npx for Next.js, Nuxt and Vite, cargo, go, dotnet, PHP with Composer).

Ports

Anvil's servers listen on 127.0.0.1 only, and apps with their own dev server are told to do the same. These are the defaults; the first three are set in Configuration, service ports per service.

PortWhat
80, 443Forwarded to 8080 and 8443 on 127.0.0.1 and ::1 (optional, see below)
8443HTTPS for *.test
8080HTTP for *.test
5354 (UDP)DNS for *.test
3306MySQL
5432PostgreSQL
6379Redis
1025, 8025Mailpit SMTP and web inbox
41000–44999Apps with their own dev server, one port each

When a service port is taken, Anvil suggests the next free one. Anvil's servers need no admin rights for any of these ports: 80 and 443 are a packet filter forward to 8080 and 8443, set up once with your password.

Passwords

Anvil runs as your user. Three one-time steps ask for your password; all are optional.

StepWhat it doesWithout it
Resolver fileCreates /etc/resolver/test so *.test resolves to Anvil*.test addresses don't open. Not needed with .localhost (anvil tld localhost)
Standard portsInstalls the dev.anvil.ports LaunchDaemon, which forwards ports 80 and 443 to Anvil at every boot; /etc/pf.conf is not touchedAddresses need the port, e.g. http://<name>.test:8080
anvil trustAdds the local certificate authority to your login keychainApplications with HTTPS work, but the browser warns about the certificate

See Getting started. anvil uninstall undoes all three.

Building from source

  • macOS with the Xcode command line tools
  • Rust 1.85 or newer
  • For the app: cargo install tauri-cli --version '^2' --locked

On this page