PHPackages                             ninjaportal/kickstart - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. ninjaportal/kickstart

ActiveProject[Utility &amp; Helpers](/categories/utility)

ninjaportal/kickstart
=====================

NinjaPortal starter application template.

00PHPCI failing

Since Jun 1Pushed 1mo agoCompare

[ Source](https://github.com/ninjaportal/kickstart)[ Packagist](https://packagist.org/packages/ninjaportal/kickstart)[ RSS](/packages/ninjaportal-kickstart/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

NinjaPortal Kickstart
=====================

[](#ninjaportal-kickstart)

NinjaPortal Kickstart is a Laravel starter application with the core NinjaPortal packages, LaraApigee integration, Filament admin, and the Shadow developer portal theme already wired in.

Use it when you want a clean application shell that is ready to connect to Apigee and expose a developer portal quickly.

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

[](#requirements)

- PHP `^8.3`
- Composer 2
- Node.js 20+ and npm
- MySQL 8+ and Redis when running without Docker
- Docker + Docker Compose when using the container stack

Create A Project
----------------

[](#create-a-project)

```
composer create-project ninjaportal/kickstart your-project-name
cd your-project-name
```

When working from this repository directly, run:

```
composer install
npm install
```

Environment
-----------

[](#environment)

Kickstart ships with a normal Laravel `.env` file for local development and a Docker-focused `.env.docker` file for the container stack.

```
cp .env.example .env
php artisan key:generate
```

For Docker, create `.env.docker` from the same example and keep the Docker service hosts:

```
cp .env.example .env.docker
```

```
APP_URL=http://localhost:8000
NGINX_PORT=8000

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=ninjaportal
DB_USERNAME=ninjaportal
DB_PASSWORD=secret
MYSQL_ROOT_PASSWORD=root

REDIS_HOST=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
CACHE_STORE=redis
```

For a local non-Docker setup, keep `.env` pointed at services on your machine:

```
DB_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
APP_URL=http://127.0.0.1:8000
```

Update secrets before using this outside local development.

Apigee Setup
------------

[](#apigee-setup)

Kickstart includes the environment keys used by `laraapigee` and the portal packages.

For Apigee Edge:

```
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/mint
```

For Apigee X:

```
APIGEE_PLATFORM=apigeex
APIGEE_ENDPOINT=https://apigee.googleapis.com/v1
APIGEE_ORGANIZATION=your-org
APIGEE_MONETIZATION_PLATFORM=apigee_x
APIGEE_MONETIZATION_ENDPOINT=https://apigee.googleapis.com/v1
```

Place the Apigee X service account key at:

```
storage/app/service_account_key.json

```

Run With Docker
---------------

[](#run-with-docker)

Build and start the full stack. Pass `.env.docker` to Docker Compose so service values and compose-level values, such as the published Nginx port, come from the same file.

```
docker compose --env-file .env.docker up -d --build
```

The app will be available at:

```
http://localhost:8000

```

The Docker stack includes:

- `nginx`
- `php-fpm`
- `mysql`
- `redis`
- `queue`
- `scheduler`
- a one-shot `init` container that runs migrations, seeds Portal defaults, seeds Shadow branding settings, and caches Laravel config/routes

Useful Docker commands:

```
docker compose logs -f init
docker compose exec app php artisan about
docker compose exec app php artisan migrate:status
docker compose logs -f queue
docker compose logs -f scheduler
docker compose down
```

Remove containers and local Docker volumes:

```
docker compose --env-file .env.docker down -v
```

Run Without Docker
------------------

[](#run-without-docker)

Make sure MySQL and Redis are running locally, then update `.env` as described above.

Install dependencies:

```
composer install
npm install
```

Run the application setup:

```
php artisan key:generate
php artisan migrate
php artisan portal:install
php artisan shadow:install
php artisan filament:install
npm run build
```

Start the app:

```
php artisan serve
```

For local development with hot reload and workers:

```
composer run dev
```

Package Installers
------------------

[](#package-installers)

### Portal

[](#portal)

```
php artisan portal:install
```

This publishes config, publishes Spatie permission migrations, runs migrations, seeds baseline settings and RBAC permissions, and registers the NinjaPortal application provider.

Useful flags:

```
php artisan portal:install --force-provider-overwrite
php artisan portal:install --delete-default-users-migration
```

Use `--delete-default-users-migration` for a fresh Laravel application when NinjaPortal owns the user schema.

### Shadow Theme

[](#shadow-theme)

```
php artisan shadow:install
```

The installer publishes the theme assets and prepares the default branding settings used by the Blade theme.

### Filament Admin

[](#filament-admin)

```
php artisan filament:install
```

Demo Data
---------

[](#demo-data)

```
php artisan portal:seed --demo
```

Other seed options:

```
php artisan portal:seed --all
php artisan portal:seed --settings --rbac
```

Demo accounts:

TypeNameEmailPasswordNotesAdminPortal Owner`admin@ninjaportal.test``password`Assigned the `super_admin` role when RBAC is seededAdminSupport Admin`support.admin@ninjaportal.test``password`Assigned the `super_admin` role when RBAC is seededUserJade Summers`jade.summers@ninjaportal.test``password`Active userUserMarco Diaz`marco.diaz@ninjaportal.test``password`Active userUserPriya Nair`priya.nair@ninjaportal.test``password`Pending userNotes
-----

[](#notes)

- `.env.docker` is read by Docker Compose and passed to the runtime containers, but it is ignored by the image build, so secrets are not baked into the image.
- `.env` is for local non-Docker development. Keep `.env.docker` pointed at Docker service names such as `mysql` and `redis`.
- Run `npm run build` after changing Shadow theme assets or application frontend assets.

###  Health Score

19

—

LowBetter than 9% of packages

Maintenance61

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/572472a15d795bd58c160445f6e9298cd82b756bf4355e860491785b5398d6f7?d=identicon)[Youssef20](/maintainers/Youssef20)

---

Top Contributors

[![lordjoo](https://avatars.githubusercontent.com/u/11289152?v=4)](https://github.com/lordjoo "lordjoo (6 commits)")

### Embed Badge

![Health badge](/badges/ninjaportal-kickstart/health.svg)

```
[![Health](https://phpackages.com/badges/ninjaportal-kickstart/health.svg)](https://phpackages.com/packages/ninjaportal-kickstart)
```

###  Alternatives

[jetbrains/phpstorm-attributes

PhpStorm specific attributes

41517.6M814](/packages/jetbrains-phpstorm-attributes)[tareq1988/wordpress-settings-api-class

WordPress settings API Abstraction Class

47011.8k4](/packages/tareq1988-wordpress-settings-api-class)[defstudio/actions

Helpers methods for Laravel Actions

1110.0k](/packages/defstudio-actions)[hoanganh25991/php-read-ipa

Read basic info about an application from .ipa file.

111.5k](/packages/hoanganh25991-php-read-ipa)

PHPackages © 2026

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