PHPackages                             neopayment/nbo-installer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. neopayment/nbo-installer

ActiveLibrary

neopayment/nbo-installer
========================

NBO module installer

v1.0.2(1mo ago)01proprietaryPHPPHP ^8.3

Since Jul 17Pushed 1w agoCompare

[ Source](https://github.com/CobaltTechSA/nbo-module-installer)[ Packagist](https://packagist.org/packages/neopayment/nbo-installer)[ RSS](/packages/neopayment-nbo-installer/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)Dependencies (4)Versions (4)Used By (0)

NBO Installer
=============

[](#nbo-installer)

[![Packagist Version](https://camo.githubusercontent.com/2982dd0ab9ea183982809dc27b03d7339a9f2f441c26269ab30139e6f03e9f44/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e656f7061796d656e742f6e626f2d696e7374616c6c65723f7374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/2982dd0ab9ea183982809dc27b03d7339a9f2f441c26269ab30139e6f03e9f44/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e656f7061796d656e742f6e626f2d696e7374616c6c65723f7374796c653d666f722d7468652d6261646765)

NBO Installer is a CLI tool used to generate new NBO modules with a standard Laravel + Vue + Vite structure.

It creates the basic backend and frontend scaffolding required for a module to integrate with `nbo-core`.

Features
--------

[](#features)

- Generates a complete NBO module structure.
- Creates Laravel package files.
- Creates NPM package metadata.
- Adds frontend module registration files.
- Adds Vue Router routes.
- Adds Vuex store module.
- Adds basic Vue pages.
- Adds Laravel routes, controller, config, migration and seeder stubs.
- Prepares the module to be installed as a Composer dependency in an NBO host application.

Requirements
------------

[](#requirements)

- PHP 8.3 or higher
- Composer
- Node.js / NPM
- Git
- Access to the GitHub repository where the installer is hosted

Installation
------------

[](#installation)

### Install globally from GitHub

[](#install-globally-from-github)

If the installer repository is private, first register the repository in Composer:

```
composer global config repositories.nbo-installer vcs git@github.com:CobaltTechSA/nbo-installer.git
```

Then install it globally:

```
composer global require neopayment/nbo-installer:dev-main
```

Make sure Composer’s global vendor/bin directory is in your PATH.

You can check Composer’s global vendor path with:

```
composer global config bin-dir --absolute
```

For example, on Linux it may be:

```
~/.config/composer/vendor/bin
```

Add it to your shell configuration if needed:

```
export PATH="$PATH:$HOME/.config/composer/vendor/bin"
```

Then reload your shell:

```
source ~/.bashrc
```

Verify the installation:

```
nbo list
```

You should see the `module:new` command.

Usage
-----

[](#usage)

Create a new module:

```
nbo module:new  [options]
```

Example:

```
nbo module:new customers
```

This will generate a directory named:

```
nbo-customers

```

The generated module will use the following conventions:

```
Module code:      customers
Composer package: neopayment/nbo-customers
NPM package:      @neopayment/nbo-customers
PHP namespace:    NeoPayment\Customers

```

Example with all options:

```
nbo module:new customers \
  --name="Customers" \
  --path=./nbo-customers \
  --composer-vendor=neopayment \
  --npm-scope=@neopayment \
  --namespace=NeoPayment \
  --github-org=CobaltTechSA
```

#### Options

[](#options)

OptionDescriptionDefault`code`Module code, for example `customers`, `transactions`, `acs`Required`--name`Human-readable module nameGenerated from the code`--path`Target path where the module will be created`./nbo-{code}``--composer-vendor`Composer vendor name`neopayment``--npm-scope`NPM scope`@neopayment``--namespace`PHP root namespace`NeoPayment``--github-org`GitHub organization name`CobaltTechSA``--force`Overwrite existing filesDisabled### Generated structure

[](#generated-structure)

A generated module will have a structure similar to this:

```
nbo-customers/
├── composer.json
├── package.json
├── README.md
├── config/
│   └── customers.php
├── src/
│   └── Http/
│       ├── Controllers/
│       │   └── CustomersController.php
│       └── Providers/
│           └── NboCustomersServiceProvider.php
├── routes/
│   ├── api.php
│   └── web.php
├── database/
│   └── seeders/
│       └── CustomersModuleSeeder.php
└── resources/
    ├── views/
    │   └── index.blade.php
    ├── css/
    │   └── customers.css
    └── ts/
        ├── register.ts
        ├── routes.ts
        ├── store.ts
        ├── services/
        │   └── customers-api.ts
        └── components/
            └── CustomersBadge.vue
            └── pages/
                ├── Index.vue
                ├── Create.vue
                └── Show.vue

```

### Generated backend integration

[](#generated-backend-integration)

Each generated module is a Laravel package.

The generated composer.json includes:

```
{
  "name": "neopayment/nbo-customers",
  "description": "Customers module for NBO",
  "type": "library",
  "license": "proprietary",
  "require": {
    "php": "^8.3",
    "neopayment/nbo-core": "^1.0",
    "spatie/laravel-package-tools": "^1.93"
  },
  "autoload": {
    "psr-4": {
      "NeoPayment\\Customers\\": "src/",
      "NeoPayment\\Customers\\Database\\Seeders\\": "database/seeders/"
    }
  },
  "classmap": [
    "database/seeders"
  ],
  "extra": {
    "laravel": {
      "providers": [
        "NeoPayment\\Customers\\Providers\\NboCustomersServiceProvider"
      ]
    },
    "nbo-module": {
      "code": "customers",
      "name": "Customers",
      "seeder": "NeoPayment\\Customers\\Database\\Seeders\\CustomersModuleSeeder",
      "vite": {
          "laravel": {
              "input": [
                  "resources/css/customers.css"
              ]
          }
      }
    }
  },
  "minimum-stability": "stable",
  "prefer-stable": true
}
```

The service provider registers:

- config
- views
- web routes
- api routes
- migrations
- package migrations auto-run support

### Generated frontend integration

[](#generated-frontend-integration)

Each generated module is also an NPM package.

The generated `package.json` includes:

```
{
  "name": "@neopayment/nbo-customers",
  "version": "1.0.0",
  "private": true,
  "type": "module",
  "exports": {
    "./register": "./resources/ts/register.ts"
  },
  "nbo": {
    "type": "module",
    "code": "customers",
    "name": "Customers",
    "frontend": {
      "register": "./register"
    }
  },
  "peerDependencies": {
    "@neopayment/nbo-core": "^1.0.0",
    "vue": "^3.5.0",
    "vue-router": "^4.5.0",
    "vuex": "^4.1.0",
    "primevue": "^4.3.0"
  },
  "devDependencies": {
    "@neopayment/nbo-core": "^1.0.0",
    "typescript": "^5.0.0",
    "vue": "^3.5.0",
    "vue-router": "^4.5.0",
    "vuex": "^4.1.0",
    "primevue": "^4.3.0"
  }
}
```

The `register.ts` file is the frontend entrypoint for the module.

It is automatically detected by the nbo-core Vite plugin and is responsible for registering:

- Vue routes
- Vuex store module
- CSS
- global components if needed

Generated modules should not create their own Vue app, router, or store. Those are owned by nbo-core.

### After generating a module

[](#after-generating-a-module)

Enter the generated module directory:

```
cd nbo-customers
```

Install dependencies:

```
composer install
npm install
```

Initialize git:

```
git init
git add .
git commit -m "Initial module scaffold"
```

Create a GitHub repository for the module, for example:

```
git@github.com:CobaltTechSA/nbo-customers.git

```

Then push:

```
git branch -M main
git remote add origin git@github.com:CobaltTechSA/nbo-customers.git
git push -u origin main
```

The install the module:

```
composer require neopayment/nbo-customers:dev-main
npm install
php artisan optimize:clear
php artisan migrate
php artisan db:seed
```

### Updating the global installer

[](#updating-the-global-installer)

If the installer was installed globally, update it with:

```
composer global update neopayment/nbo-installer
```

### Troubleshooting

[](#troubleshooting)

#### `nbo: command not found`

[](#nbo-command-not-found)

Composer’s global `vendor/bin` directory is probably not in your `PATH`.

Check the global bin path:

```
composer global config bin-dir --absolute
```

Add that path to your shell profile.

#### The command is not listed

[](#the-command-is-not-listed)

Run:

```
composer global dump-autoload
```

Then verify:

```
nbo list
```

#### The target directory already exists

[](#the-target-directory-already-exists)

Use another path:

```
nbo module:new customers --path=./alternative/path/nbo-customers
```

Or overwrite existing files:

```
nbo module:new customers --force
```

### Recommended workflow

[](#recommended-workflow)

```
nbo module:new customers
cd nbo-customers

composer install
npm install

git init
git add .
git commit -m "Initial customers module"
git branch -M main
git remote add origin git@github.com:CobaltTechSA/nbo-customers.git
git push -u origin main
```

Then install it in the main project. Example `nbo-demo`:

```
cd nbo-demo
composer require neopayment/nbo-customers:dev-main
npm install
php artisan migrate
php artisan db:seed
npm run dev
```

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance95

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

44d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ba8f38f88d68a35756cf7f2e41e41ff9675ed4516983a4e68be0c2f769f621f3?d=identicon)[gabriel.andres](/maintainers/gabriel.andres)

---

Top Contributors

[![ander7agar](https://avatars.githubusercontent.com/u/6875232?v=4)](https://github.com/ander7agar "ander7agar (21 commits)")

### Embed Badge

![Health badge](/badges/neopayment-nbo-installer/health.svg)

```
[![Health](https://phpackages.com/badges/neopayment-nbo-installer/health.svg)](https://phpackages.com/packages/neopayment-nbo-installer)
```

###  Alternatives

[composer/composer

Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.

29.6k203.2M3.5k](/packages/composer-composer)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

21668.5M2.0k](/packages/drupal-core)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103629.7k76](/packages/friendsoftypo3-content-blocks)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

7544.4M463](/packages/drupal-core-recommended)[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.4k1.4M241](/packages/sulu-sulu)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
