Interaction with the Shuttle platform is mainly done with the shuttle Command Line Interface (CLI). Some tasks, such as viewing logs, can also be done in the Shuttle Console.

After installation, you will have two commands: shuttle and cargo shuttle.

  • shuttle is used for interacting with the NEW shuttle.dev platform.
  • cargo shuttle is used for interacting with the shuttle.rs platform.

This documentation covers the NEW shuttle.dev platform. Go to docs.shuttle.rs to view the docs for the shuttle.rs platform.

To get an overview of available commands, subcommands, and options, run:

shuttle help
# or
shuttle <command> --help

Commands

CommandDescription
initGenerate a Shuttle project from a template
runRun a Shuttle service locally
deployDeploy a Shuttle service
deploymentManage deployments of a Shuttle service [aliases: depl]
logsView logs of a Shuttle service
projectManage projects on Shuttle [aliases: proj]
resourceManage resources [aliases: res]
certificateManage SSL certificates for custom domains [aliases: cert]
accountShow info about your Shuttle account [aliases: acc]
loginLogin to the Shuttle platform
logoutLog out of the Shuttle platform
generateGenerate shell completions and man page
feedbackOpen an issue on GitHub and provide feedback
upgradeUpgrade the cargo-shuttle binary
helpPrint this message or the help of the given subcommand(s)

Cookbook / Cheat Sheet

These are some useful sequences of commands that are handy to keep in your back pocket. For full documentation, use --help on the respective command. Use the global --debug flag to print detailed debug output.

Get started

  • cargo install cargo-shuttle: For more alternatives, see Installation.
  • shuttle login: Log in via the Shuttle Console.
  • shuttle init: Generate a project from a template.
  • shuttle account: Check account details.

Local run

For more tips, see Local Run.

  • shuttle run: Run the project locally so you can test your changes.
  • shuttle run --port 8080: Change the local port.
  • shuttle run --port 8080 --external: Expose to local network by listening on 0.0.0.0.
  • shuttle run --secrets <file>: Use a non-default secrets file for this run.
  • shuttle run --release: Compile with release mode.

Start and deploy a project

  • shuttle project create: Start the container for this project on Shuttle.
  • shuttle deploy: Deploy the project to Shuttle.
  • shuttle deploy --no-follow: Don’t poll deployment state. Alias: --nf.
  • shuttle deploy --secrets <file>: Use a non-default secrets file for this deployment. It must be located in the same folder that Secrets.toml should be in.

Manage projects

All project-related commands can use:

  • --working-directory <path> or --wd <path> to execute the command in a different folder.
  • --name <name> to specify project name explicitly (see Project).
  • --id <id> to specify project id explicitly (see Project).
  • shuttle project list: List your projects.
  • shuttle project status: Check the state of this project.
  • shuttle project link: Link this project folder to a project on Shuttle.
  • shuttle project delete: Delete a project.
  • shuttle project update name <new-name>: Rename a project.

Manage deployments and logs

  • shuttle deployment list: List deployments in this project.
  • shuttle deployment status: Show status of the currently running deployment.
  • shuttle deployment stop: Stop any currently running deployments.
  • shuttle logs: Get all logs from the currently running deployment.
  • shuttle logs --latest: Get all logs from the latest deployment.
  • shuttle logs <id>: Get all logs from a specific deployment.
  • shuttle logs --raw: Print the logs without timestamps and origin tags. The --raw flag is also available for the run and deploy commands.

Manage resources

  • shuttle resource list: List resources linked to this project.
  • shuttle resource delete <type>: Delete a resource such as databases and secrets.

Shell completions

Use shuttle generate shell <shell> with one of: bash, elvish, fish, powershell, zsh.

Example configuration for Zsh on Linux: add eval "$(shuttle generate shell zsh)" to ~/.zshrc.

Utility

  • shuttle <command> --debug: Turn on tracing output for Shuttle libraries. (WARNING: can print sensitive data)
  • shuttle deploy --output-archive <path>: Dump the deployment archive to disk instead of deploying it. Useful for debugging.