Sagittarius Orbit

In active development · Windows first · macOS and Linux planned

Local PHP development

Every PHP project.
The web server you choose.

Sagittarius Orbit serves your projects at project.test with the PHP version, web server and databases they need — nginx, Apache, Caddy or FrankenPHP, switched in one click. Free, source-available, no account.

The Orbit overview: the path from the browser to the local DNS, the web server, PHP, the sites and the services, with the sites listed below.The Orbit overview: the path from the browser to the local DNS, the web server, PHP, the sites and the services, with the sites listed below.

Web servers

Four web servers, one model.

Every configuration is generated from one description of your site, checked by the server itself before it is applied, and rolled back if it is refused. Switch servers live: your sites follow.

nginx

The fast default, with PHP pools behind FastCGI.

Apache

For projects that rely on .htaccess, with modules you turn on one by one.

Caddy

Reloaded through its admin API, without dropping a request.

FrankenPHP

PHP built in, and worker mode: your app boots once and answers from memory.

Frameworks

Any PHP project, recognised.

Point Orbit at a folder: it detects the framework and serves it with the right document root and rewrite rules. Or park a whole directory, and every folder in it becomes a site.

  • Laravel
  • Symfony
  • WordPress
  • Bedrock
  • Drupal
  • Craft CMS
  • Statamic
  • CodeIgniter
  • CakePHP
  • Yii
  • Laminas / Mezzio
  • Slim
  • Static sites
  • Single-page apps
  • Plain PHP

PHP

The right PHP for each site.

Several PHP versions side by side, each downloaded on first use and checked against a signed manifest.

Per site
Pick 8.3 for one project and 8.5 for the next. Each version gets its own pool of workers.
Extensions and php.ini
Turned on and edited from the app, with the syntax checked before anything is saved.
Xdebug
On or off in one click, for the version you are debugging.
Your terminal
php, composer and wp follow the site of the folder you are in.

Services

Databases and mail, one click away.

Run as many instances as you need, older versions included, next to your sites.

  • MySQL
  • MariaDB
  • PostgreSQL
  • Redis
  • Valkey
  • Mailpit
Databases
Create, export, import and clone databases; see users and tables.
Connected for you
Orbit writes the connection into your project’s .env or wp-config.php.
Redis and Valkey
Browse and delete keys from the app.
Mailpit
PHP’s mail() is caught locally: no test email leaves your machine.

Domains and HTTPS

Real domains. Real HTTPS.

No hosts file to edit: a built-in DNS responder answers for your sites.

.test names
blog.test, plus aliases and tenant subdomains like client.shop.test.
HTTPS per site
Signed by a local certificate authority that can only sign .test and localhost names.

New project · Command line

Everything the app does, from the terminal.

sgt new laravel blog creates a Laravel app in ./blog and serves it at blog.test. Fourteen Composer starters, and WordPress downloaded, configured and installed with its administrator account.

The app and the sgt command talk to the same background service: your sites keep running when the window is closed, and every action has a command.

# a Laravel app, served at blog.test$ sgt new laravel blog# an existing project, over HTTPS$ sgt link ~/code/shop --php 8.3 --https# every site moves to FrankenPHP$ sgt settings --web-server frankenphp$ sgt service add postgresql --version 16$ sgt check shop.test

License

Free, and it stays that way.

Apache 2.0 with the Commons Clause: use it, change it and fork it, at home or at work. The one thing you may not do is sell it.

Read the license in plain words