https://github.com/fleetbase/fleetbase-cli
Fleetbase CLI tool for managing extensions
https://github.com/fleetbase/fleetbase-cli
Last synced: 4 months ago
JSON representation
Fleetbase CLI tool for managing extensions
- Host: GitHub
- URL: https://github.com/fleetbase/fleetbase-cli
- Owner: fleetbase
- License: agpl-3.0
- Created: 2023-12-04T06:34:12.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-05T11:13:50.000Z (almost 2 years ago)
- Last Synced: 2024-08-06T12:35:52.404Z (almost 2 years ago)
- Language: JavaScript
- Size: 2.66 MB
- Stars: 0
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fleetbase CLI
FLB (Fleetbase CLI) is a command-line interface tool designed for managing Fleetbase Extensions. It simplifies the process of publishing and managing both npm and PHP Composer packages, particularly for Fleetbase extensions.
## Features
- Register and manage Registry Developer Accounts for self-hosted instances
- Publish Fleetbase Extensions to a specified registry
- Unpublish Extensions from the registry
- Install Fleetbase using Docker
- Automatically convert `composer.json` to `package.json` for PHP packages
- Scaffold new Fleetbase extensions
- Set registry token to a Fleetbase instance
- Install and Uninstall extensions
- Flexible registry configuration
## Installation
To install FLB, run the following command:
```bash
npm install -g @fleetbase/cli
```
## Quick Start: Developer Account Registration
If you're using a self-hosted Fleetbase instance and want to publish or install extensions, you'll need to register a Registry Developer Account. Follow these steps:
### Step 1: Register Your Account
```bash
flb register --host localhost:8000
```
You'll be prompted for:
- **Username**: Your desired username (alphanumeric, hyphens, and underscores only)
- **Email**: Your email address
- **Password**: A secure password (minimum 8 characters)
- **Name**: Your display name (optional)
### Step 2: Verify Your Email
Check your email for a verification code, then run:
```bash
flb verify -e your@email.com -c 123456 --host localhost:8000
```
Or use the command provided in the verification email. Upon successful verification, you'll receive your registry token.
### Step 3: Set Your Registry Token
Use the token from the verification step:
```bash
flb set-auth flb_your_token_here --registry http://localhost:8000
```
### Step 4: You're Ready!
You can now publish extensions, install extensions, and manage your Fleetbase instance through the CLI.
**Note:** If you need to regenerate your token later, use:
```bash
flb generate-token -e your@email.com --host localhost:8000
```
## Usage
### Registry Developer Account Commands
#### Register a Developer Account
Create a new Registry Developer Account for publishing and installing extensions on self-hosted instances.
```bash
flb register
```
**Options:**
- `-u, --username `: Username for your account
- `-e, --email `: Email address
- `-p, --password `: Password (minimum 8 characters)
- `-n, --name `: Display name (optional)
- `-h, --host `: API host (default: `https://api.fleetbase.io`)
**Example:**
```bash
flb register --host localhost:8000
flb register -u myusername -e my@email.com -p mypassword --host localhost:8000
```
#### Verify Email Address
Verify your email address using the code sent to your email.
```bash
flb verify
```
**Options:**
- `-e, --email `: Email address
- `-c, --code `: Verification code from email
- `-h, --host `: API host (default: `https://api.fleetbase.io`)
**Example:**
```bash
flb verify -e my@email.com -c 123456 --host localhost:8000
```
#### Resend Verification Code
Request a new verification code if the previous one expired.
```bash
flb resend-verification
```
**Options:**
- `-e, --email `: Email address
- `-h, --host `: API host (default: `https://api.fleetbase.io`)
**Example:**
```bash
flb resend-verification -e my@email.com --host localhost:8000
```
#### Generate or Regenerate Registry Token
Generate a new registry authentication token or regenerate an existing one. Useful for existing accounts created before automatic token generation, or if you need to regenerate your token for security reasons.
```bash
flb generate-token
```
**Options:**
- `-e, --email `: Email address
- `-p, --password `: Password
- `-h, --host `: API host (default: `https://api.fleetbase.io`)
**Example:**
```bash
flb generate-token -e my@email.com --host localhost:8000
```
**Note:** This command requires your account to be verified. Each time you generate a token, it replaces the previous one.
### Installing Fleetbase
Install Fleetbase using Docker with a single command.
```bash
flb install-fleetbase
```
**Options:**
- `--host `: Host or IP address to bind to (default: `localhost`)
- `--environment `: Environment: `development` or `production` (default: `development`)
- `--directory `: Installation directory (default: current directory)
**Example:**
```bash
flb install-fleetbase --host 0.0.0.0 --environment production --directory /opt/fleetbase
```
### Publishing a Extension
To publish a extension, navigate to the extension directory and run:
```bash
flb publish [?path]
```
- `[path]`: (Optional) The path to the extension directory to be published. Defaults to the current directory.
For PHP only extensions, `flb` will automatically convert `composer.json` to `package.json` before publishing.
### Unpublishing a Extension
To unpublish a extension, use:
```bash
flb unpublish [extension]
```
- `[extension]`: (Optional) The name of the extension to unpublish. If not provided, FLB will attempt to determine the extension name from the current directory.
### Setup Registry Auth Token
To install purchased extensions you must setup authorization first which is linked to your Fleetbase account. For cloud users, you can generate a registry token at [https://console.fleetbase.io/extensions/developers/credentials](https://console.fleetbase.io/extensions/developers/credentials). For self-hosted users, use the `flb register` and `flb verify` commands to get your token.
To setup registry auth use:
```bash
flb set-auth [token]
```
**Options:**
- `-p, --path `: Path of the Fleetbase instance to install setup for (default: `.`)
- `-r, --registry `: Registry URL the credentials are for (default: `https://registry.fleetbase.io`)
**Example:**
```bash
flb set-auth flb_your_token_here --registry http://localhost:8000
```
### Login to the Fleetbase Registry
Login to the Fleetbase registry. This command authenticates you with the Fleetbase registry by saving your credentials to your local `.npmrc` file.
```bash
flb login
```
**Options:**
- `-u, --username `: Username for the registry
- `-p, --password `: Password for the registry
- `-e, --email `: Email associated with your account
- `-r, --registry `: Registry URL (default: `https://registry.fleetbase.io`)
- `--scope `: Scope for the registry (optional)
- `--quotes `: Quotes option for `npm-cli-login` (optional)
- `--config-path `: Path to the npm config file (optional)
**Example:**
```bash
flb login -u myusername -r http://localhost:8000
```
### Scaffolding a Extension
Fleetbase CLI has the ability to scaffold a starter extension if you intend to develop your own extension. This greatly speeds up the development process as it gives you a correct starting point to build on.
To scaffold a extension, use:
```bash
flb scaffold
```
**Options:**
- `-p, --path`: The path to place the scaffold extension
- `-n, --name`: The name of the extension to scaffold
- `-d, --description`: The description of the extension to scaffold
- `-a, --author`: The name of the extension author
- `-e, --email`: The email of the extension author
- `-k, --keywords`: The keywords of the extension to scaffold
- `-n, --namespace`: The PHP Namespace of the extension to scaffold
- `-r, --repo`: The Repository URL of the extension to scaffold
### Installing a Extension
To install a extension, use:
```bash
flb install [extension]
```
**Options:**
- `[extension]`: The name of the extension to install
- `-p, --path`: (Optional) The path to the fleetbase instance directory. Defaults to the current directory
**Example:**
```bash
flb install @fleetbase/storefront-api --path /opt/fleetbase
```
### Uninstalling a Extension
To uninstall a extension, use:
```bash
flb uninstall [extension]
```
**Options:**
- `[extension]`: The name of the extension to uninstall
- `-p, --path`: (Optional) The path to the fleetbase instance directory. Defaults to the current directory
**Example:**
```bash
flb uninstall @fleetbase/storefront-api --path /opt/fleetbase
```
### Bundling a Extension
To bundle a extension, use:
```bash
flb bundle
```
or to bundle and upload the created bundle, use:
```bash
flb bundle --upload
```
**Options:**
- `-p, --path `: Path of the Fleetbase extension (default: `.`)
- `--upload`: After bundling, upload the bundle to the Fleetbase registry using your authentication token
- `--auth-token `: Auth token for uploading the bundle (used with `--upload` option)
- `-r, --registry `: Registry URL (default: `https://registry.fleetbase.io`)
### Uploading a Extension Bundle
To upload an extension bundle, use:
```bash
flb bundle-upload
```
**Options:**
- `[bundleFile]`: Path to the bundle file to upload. If not provided, it will look for the bundle in the current directory
- `-p, --path `: Path where the bundle is located (default: `.`)
- `--auth-token `: Auth token for uploading the bundle. If not provided, the token will be read from the `.npmrc` file
- `-r, --registry `: Registry URL (default: `https://registry.fleetbase.io`)
### Version Bump and Extension
To bump the version on an extension, use:
```bash
flb version-bump
```
**Options:**
- `-p, --path `: Path of the Fleetbase extension (default: `.`)
- `--major`: Bump major version (e.g., `1.0.0` → `2.0.0`)
- `--minor`: Bump minor version (e.g., `1.0.0` → `1.1.0`)
- `--patch`: Bump patch version (e.g., `1.0.0` → `1.0.1`). This is the default if no flag is provided
- `--pre-release [identifier]`: Add a pre-release identifier (e.g., `1.0.0` → `1.0.0-beta`)
### Setting a Custom Registry
To specify a custom registry for publishing and unpublishing, use the `-r` or `--registry` option:
```bash
flb publish -r http://my-registry.com
flb unpublish -r http://my-registry.com
```
## Configuration
FLB can be configured via command-line options. The most common options include:
- `-r, --registry [url]`: Specify a custom registry URL
- `-h, --host [url]`: Specify the API host for developer account operations
## Self-Hosted vs Cloud
### Self-Hosted Users
If you're running Fleetbase on your own infrastructure:
1. Use `flb register` to create a Registry Developer Account
2. Verify your email with `flb verify`
3. Use the provided token with `flb set-auth`
4. Specify `--host` parameter for all commands to point to your instance
### Cloud Users
If you're using Fleetbase Cloud (console.fleetbase.io):
1. Generate a registry token from the Console at [Extensions > Developers > Credentials](https://console.fleetbase.io/extensions/developers/credentials)
2. Use the token with `flb set-auth`
3. No need to specify `--host` parameter (defaults to cloud)
## Contributing
Contributions to Fleetbase CLI are welcome. Please ensure that your code adheres to the project's coding standards and include tests for new features or bug fixes.
# License & Copyright
Fleetbase is made available under the terms of the GNU Affero General Public License 3.0 (AGPL 3.0). For other licenses contact us.