Skip to main content

Getting Started

This section guides you through the initial setup and scaffolding of a Fleetbase Extension using the Fleetbase CLI. For developers new to Fleetbase, we also offer an alternative method using the starter extension repo.

Installation of Fleetbase CLI​

Begin by installing the Fleetbase CLI with npm:

npm i -g @fleetbase/cli

Choosing the Scaffold Location​

It's recommended to scaffold extensions directly within the packages directory of your Fleetbase installation. This approach ensures that your extensions are neatly organized and easily accessible within the Fleetbase ecosystem.

Scaffolding a New Extension​

Once the CLI is installed, you can scaffold a new extension by running:

flb scaffold --path packages/your-extension

You will be prompted to provide details about your extension, including:

  • -p, --path: Specify the directory where the extension should be created.
  • -n, --name: Name of your extension.
  • -d, --description: A brief description of what your extension does.
  • -a, --author: Name of the extension author.
  • -e, --email: Contact email of the author.
  • -k, --keywords: Relevant keywords for the extension.
  • -n, --namespace: PHP Namespace for your extension.
  • -r, --repo: Repository URL where the extension will be hosted.

Using the Starter Extension Repository​

Alternatively, if you prefer a more manual setup, clone the starter extension repository:

git clone git@github.com:fleetbase/starter-extension.git packages/your-extension

This method creates a basic template in your specified directory, ready for further development.

Setting Up Fleetbase for Development​

After scaffolding or cloning your extension, you need to set up your development environment. Follow the setup instructions for Fleetbase development to prepare your system.

Linking Your Extension​

Link your extension to the Fleetbase console by modifying console/package.json:

// package.json
{
"dependencies": {
"@author/your-extension": "link:../packages/your-extension"
}
}

Make sure to run pnpm install from the ./console directory.

Ensure the API is aware of your new extension by updating api/composer.json:

{
"repositories": [
{
"type": "path",
"url": "../packages/your-extension"
}
]
}

Make sure to run composer install from the ./api directory.

This setup integrates your extension into the Fleetbase environment, allowing for seamless development and testing.