Starter Laravel application template prepared for NinjaPortal.
Use this template to bootstrap a production-ready NinjaPortal application with the Portal package, Filament admin, and the Shadow theme already wired in.
- PHP
^8.2 - Composer 2
- A database (MySQL recommended for real projects)
- Node.js + npm (only if you want to build frontend assets)
Install the template through Composer:
composer create-project ninjaportal/kickstart your-project-name
cd your-project-nameIf you are working from the repository directly instead of create-project, install the locked dependencies:
composer installThen install JS dependencies if needed:
npm installCopy the environment file and generate the application key:
cp .env.example .env
php artisan key:generateUpdate database credentials in .env, then configure NinjaPortal / Apigee values (already included in .env.example):
APIGEE_PLATFORM=edge
APIGEE_ENDPOINT=https://api.enterprise.apigee.com/v1
APIGEE_ORGANIZATION=your-org
APIGEE_USERNAME=your-username
APIGEE_PASSWORD=your-password
APIGEE_MONETIZATION_ENABLED=false
APIGEE_MONETIZATION_PLATFORM=edge
APIGEE_MONETIZATION_ENDPOINT=https://api.enterprise.apigee.com/v1/mintif using Apigee X:
APIGEE_DRIVER=apigeex
APIGEE_ENDPOINT=https://apigee.googleapis.com/v1
APIGEE_ORGANIZATION=your-orgRun the package installer:
php artisan portal:installWhat this does:
- publishes NinjaPortal config
- publishes Spatie permission migrations
- runs migrations
- seeds baseline settings + RBAC permissions
- adds
App\Providers\NinjaPortalServiceProviderto your application bootstrap providers
Optional flags:
php artisan portal:install --force-provider-overwrite
php artisan portal:install --delete-default-users-migrationWe recommend using the --delete-default-users-migration flag if you are installing NinjaPortal on a fresh laravel project,
as it will delete the default users table migration.
php artisan shadow:installShadow theme is shipped with pre-built assets.
php artisan filament:install This will install Filament Admin and its dependencies.
php artisan portal:seed --demoUseful seed options:
php artisan portal:seed --all
php artisan portal:seed --settings --rbacAfter running php artisan portal:seed --demo, the following demo accounts are available:
| Type | Name | Password | Notes | |
|---|---|---|---|---|
| Admin | Portal Owner | admin@ninjaportal.test |
password |
Assigned the super_admin role when RBAC is seeded |
| Admin | Support Admin | support.admin@ninjaportal.test |
password |
Assigned the super_admin role when RBAC is seeded |
| User | Jade Summers | jade.summers@ninjaportal.test |
password |
Active user |
| User | Marco Diaz | marco.diaz@ninjaportal.test |
password |
Active user |
| User | Priya Nair | priya.nair@ninjaportal.test |
password |
Pending user |
Use the username/password env variables shown above.
Set:
APIGEE_PLATFORM=apigeex
APIGEE_ENDPOINT=https://apigee.googleapis.com/v1
APIGEE_MONETIZATION_PLATFORM=apigee_x
APIGEE_MONETIZATION_ENDPOINT=https://apigee.googleapis.com/v1Then place a service account key file at:
storage/app/service_account_key.json
LaraApigee uses that file path for Apigee X authentication by default.
Backend:
php artisan serveAssets (optional during local development):
npm run devIf you want the prebuilt NinjaPortal REST API package as well:
composer require ninjaportal/portal-apiThen publish/configure its settings and generate API docs (Scribe) based on your project needs.