rocketeers-app / rocket
The Command Line Interface for Rocketeers
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.9
- illuminate/http: ^12.0
- laravel-zero/framework: ^12.0
- laravel-zero/phar-updater: ^1.4
- laravel/pint: ^1.18
- lorisleiva/laravel-actions: ^2.8
- spatie/ssh: ^1.10
- symfony/process: ^7.4.5
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- v2.6.2
- v2.6.1
- v2.6.0
- v2.5.2
- v2.5.1
- v2.5.0
- v2.4.1
- v2.4.0
- v2.3.0
- v2.2.5
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.9
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.1
- v1.4.0
- v1.3.8
- v1.3.7
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.5
- v0.4.4
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.9
- v0.2.8
- v0.2.7
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-improve/security-and-reliability
- dev-next-feature/sanctum-api-support
- dev-develop
This package is auto-updated.
Last update: 2026-09-15 11:02:17 UTC
README
The command line interface for Rocketeers.
Rocket gets a site that runs on a Rocketeers server working on your Mac in one command. It clones the repository, pulls the environment file, copies the production database and sets up HTTPS with Laravel Herd or Valet. It works with Laravel apps, plain WordPress, and Bedrock/Radicle.
rocket install acme-production
14/14 [============================] Done!
View in browser: https://acme.test
Requirements
- macOS with Laravel Herd or Laravel Valet
- PHP 8.2+ and Composer
- A local MySQL server with a passwordless
rootuser on127.0.0.1 git,rsyncandssh- nvm for
rocket installon sites with frontend assets - SSH access as the
rocketeeruser on your Rocketeers servers - A writable
/var/wwwdirectory that Herd or Valet serves (for exampleherd parkinside/var/www)
Installation
composer global require rocketeers-app/rocket
Make sure Composer's global bin directory is on your $PATH, then check that it works:
rocket
To update:
composer global update rocketeers-app/rocket
Getting started
1. Sync your SSH config
rocket ssh:config
The first time you run this, Rocket asks for your Rocketeers API token and saves it to ~/.rocketeers/.env. It then downloads the SSH host entries for all your sites and servers and writes them to ~/.ssh/config between two ### ROCKETEERS APP ### markers.
Warning
If ~/.ssh/config doesn't have the Rocketeers markers yet, the file is overwritten. Back up any existing entries first and add them back outside the markers afterwards.
Once this is done, every site has an SSH alias, so you can refer to a site by name in all the other commands.
2. Install a site
rocket install acme-production
Concepts
Most commands take a site argument and an optional --server option.
| Name | Meaning |
|---|---|
site |
The site's directory name on the server, so /var/www/{site} |
--server |
The SSH host to connect to. Defaults to the site name, which works with the aliases from rocket ssh:config |
| Local name | Taken from the repository name of the remote git origin. If there's no origin, Rocket removes a trailing suffix from the site name (acme-production becomes acme) |
Sites are installed locally in /var/www/{name} and served at https://{name}.test. The local database is also called {name}.
Rocket detects the type of project on the server by itself:
- WordPress: there's a
wp-config.phpin the site root or inpublic/ - Bedrock / Radicle: there's a
config/application.php. These use a.envfile, like Laravel - Laravel: anything else
Commands
rocket install
Sets up a complete local copy of a site from scratch.
rocket install {site} [--server=] [--php=8.0]
For Laravel projects, it:
- Reads the repository URL, repository name and current branch from the server
- Clones the repository to
/var/www/{name}and checks out that branch (skipped if it's already cloned) - Isolates the PHP version with
herd isolateorvalet isolate(--php, default8.0) - Pulls the remote
.envand changes it for local use - Creates a new local database and imports the remote database into it
- Runs
composer install,php artisan migrate --force,nvm install,npm installandnpm run dev - Secures the site with HTTPS
WordPress sites don't have a git-based install. For those, rocket install runs rocket sync instead.
rocket sync
Updates a local site with the files, config and database from the server.
rocket sync {site} [--server=]
- Rsyncs
/var/www/{site}/current/to/var/www/{name}/, leaving out.env,node_modules,vendorandstorage - Pulls
wp-config.php(WordPress) or.env(Laravel, Bedrock, Radicle) and changes it for local use - Replaces the local database with a fresh copy of the remote one
- Secures the site with HTTPS
Caution
Rsync runs with --delete, and the local database is dropped before the import. Any local changes to the synced files or the database will be lost.
rocket db:import
Replaces the local database with the remote one, without changing any files.
rocket db:import {site} [--server=]
Rocket reads the database credentials from the remote .env or wp-config.php. It then drops and recreates the local database, and streams a gzipped mysqldump over SSH straight into your local MySQL. Foreign key checks are turned off during the import, and the time zone of the local MySQL server is set to UTC.
rocket env:pull
Pulls only the environment configuration.
rocket env:pull {site} [--server=]
This writes the remote .env (or wp-config.php for WordPress) to your local site and changes it for local use.
rocket tail
Follows a log file on the server in real time.
rocket tail {site} [--server=]
Rocket finds every *.log file in /var/www/{site}/persistent/storage/logs and /var/www/{site}/logs, lets you pick one, and runs tail -f on it. Press Ctrl+C to stop.
rocket ssh:config
Updates your local SSH config with all sites and servers from your Rocketeers account. See Getting started.
Local configuration changes
When Rocket pulls an environment file, it changes these values so the site works on your machine:
Laravel / Bedrock / Radicle (.env)
| Key | Local value |
|---|---|
APP_ENV |
local |
APP_DEBUG |
true |
APP_URL |
https://{name}.test |
CACHE_DRIVER |
array |
DB_HOST |
127.0.0.1 |
DB_DATABASE |
{name} |
DB_USERNAME |
root |
DB_PASSWORD |
(empty) |
SESSION_DOMAIN |
removed |
WordPress (wp-config.php)
| Constant | Local value |
|---|---|
DB_NAME |
{name} |
DB_USER |
root |
DB_PASSWORD |
(empty) |
DB_HOST |
127.0.0.1 |
WP_DEBUG |
true |
All other values stay the same as on the server.
Important
The rest of your production config is copied as-is. That includes API keys, mail settings and queue connections, so check them before you send mail or run jobs locally.
Configuration
Rocket keeps its own settings in ~/.rocketeers/.env:
API_TOKEN=your-rocketeers-api-token
To use a different token, edit this file or delete the line. Rocket will ask for a new token the next time you run rocket ssh:config.
Troubleshooting
No Herd or Valet found: install Herd or Valet and make sureherdorvaletis on your$PATH.Could not create local database: check that MySQL is running and thatmysql -u rootworks without a password.Could not fetch .env from remote server: check thatssh rocketeer@{server}works and that the site name matches the directory in/var/wwwon the server.- SSH asks for a password or the host can't be found: run
rocket ssh:configagain, or pass--server=with a host you can reach.
Development
git clone git@github.com:rocketeers-app/rocket.git
cd rocket
composer install
php rocket list
Rocket is built with Laravel Zero:
app/Commands: the CLI commands. They use theWithStepstrait to show a progress barapp/Actions: small classes that each do one thing, built onlorisleiva/laravel-actions. When something goes wrong they throw aStepException, whichWithStepsshows as a clean error message- Every SSH connection goes through the
CreateSshConnectionaction
Building a release
- Set the new version in
config/app.php - Build the PHAR with
php rocket app:build, which writes it tobuilds/rocket - Commit the build, tag it (
git tag vX.Y.Z) and push the commits and tags
License
Rocket is open-source software licensed under the MIT license.