PHPackages                             capell-app/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. capell-app/installer

ActiveLibrary

capell-app/installer
====================

Guided browser and CLI installation for Capell CMS on Laravel.

v1.0.35(2w ago)0291MITPHPPHP ^8.4

Since Jul 11Pushed 2d agoCompare

[ Source](https://github.com/capell-app/installer)[ Packagist](https://packagist.org/packages/capell-app/installer)[ Docs](https://github.com/capell-app/installer)[ RSS](/packages/capell-app-installer/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (4)Versions (36)Used By (1)

Capell Installer
================

[](#capell-installer)

[![Capell Installer package selection and guided setup handoff](docs/assets/readme/hero.jpg)](docs/assets/readme/hero.jpg)

[![Latest Release](https://camo.githubusercontent.com/54b9c7ba6d3b5e664936c314e2d281f415ec1cd8e655881b84b62838fda5811d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f636170656c6c2d6170702f696e7374616c6c65723f7374796c653d666c61742d737175617265266c6162656c3d72656c65617365)](https://github.com/capell-app/installer/releases/latest)[![Latest Version on Packagist](https://camo.githubusercontent.com/43573d784ccdaaf6a16604680cd932318380e60158c140e9292c9eb0d8d1ccd3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636170656c6c2d6170702f696e7374616c6c65722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/capell-app/installer)[![Tests](https://github.com/capell-app/capell/actions/workflows/test-full.yml/badge.svg?branch=main)](https://github.com/capell-app/capell/actions/workflows/test-full.yml)[![PHP Quality](https://github.com/capell-app/capell/actions/workflows/code-quality-and-styling.yml/badge.svg?branch=main)](https://github.com/capell-app/capell/actions/workflows/code-quality-and-styling.yml)[![PHP](https://camo.githubusercontent.com/d072d1f17b6a8dc799e782e39d676d25cab3e73854efe49206d6ffcb6473abd4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e342d3737374242343f7374796c653d666c61742d737175617265266c6f676f3d706870266c6f676f436f6c6f723d7768697465)](#requirements-and-support-policy)[![Laravel](https://camo.githubusercontent.com/9522347b9d5391961659c8c2749dabf2056511ff9d91732ad68246e41c5fd35a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31332d4646324432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c266c6f676f436f6c6f723d7768697465)](#requirements-and-support-policy)[![Documentation](https://camo.githubusercontent.com/74103e2593167ea862d42050aa01301e640df4e220bea126345e2310db5fe14e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f63732d646f63732e636170656c6c2e6170702d626c75653f7374796c653d666c61742d737175617265)](https://docs.capell.app)

`capell-app/installer` provides the browser installation workflow for fresh Capell CMS applications. It owns the install routes, progress screens, install guide patches, not-installed dashboard warning, and post-install setup package removal.

Use this package while bootstrapping a new Capell app. It is designed to be removable after setup.

Package Boundary
----------------

[](#package-boundary)

Installer owns:

- `/install` browser setup routes and progress/report routes
- Filament install pages and the not-installed dashboard Filament widget
- install guide patch discovery and safe patch application
- first-admin defaults, default package selection, environment preflight checks, and setup package removal

Installer does not own:

- Core install primitives, package manifests, or migration orchestration
- Admin resources beyond installer-specific pages/widgets
- runtime package management or marketplace install authorization
- long-term public or admin runtime behavior after the app is installed

The browser installer works without the Admin panel, but the Filament installer pages and dashboard Filament widget only register when `capell-app/admin` and Filament are present.

Install
-------

[](#install)

This is the recommended entrypoint for installing Capell. Requiring it pulls in `capell-app/core`; the guided flow then composer-requires the admin and frontend packages you choose and can remove the installer afterwards (`--remove-installer`). Prefer to pick packages by hand? Skip this and require `capell-app/core` (plus `admin` or `frontend` as needed) directly. The complete install guide is published at [docs.capell.app](https://docs.capell.app).

```
composer require capell-app/installer
```

Open `/install` in the host app to run the browser flow. The route is guarded by `EnsureNotInstalled` unless reinstall is explicitly allowed. The installer package does not require `capell-app/admin`; selecting the admin package in the installer causes Capell to verify Composer can resolve it, require it during setup, scaffold the Filament panel, and then run the admin integration.

The package config supports these setup env values:

Env varPurpose`CAPELL_SETUP_ALLOW_REINSTALL`Allow the browser installer to run on an already installed app. Defaults to `APP_DEBUG`.`CAPELL_SETUP_COMPOSER_BINARY`Composer binary used by installer checks and commands.`CAPELL_SETUP_PHP_BINARY`PHP CLI binary used by installer checks and commands.`CAPELL_SETUP_DEFAULT_PACKAGES`Comma-separated package list selected by default.`CAPELL_SETUP_ADMIN_NAME`Prefill the first admin name.`CAPELL_SETUP_ADMIN_EMAIL`Prefill the first admin email.`CAPELL_SETUP_ADMIN_PASSWORD`Prefill the first admin password as plaintext input; Capell hashes it when the user is created.Treat `CAPELL_SETUP_ADMIN_PASSWORD`, installer progress URLs, and installer reports as bootstrap secrets. Do not commit real setup credentials, and remove or restrict installer access once the app is installed.

Example local demo defaults:

```
CAPELL_SETUP_ADMIN_NAME="Demo Admin"
CAPELL_SETUP_ADMIN_EMAIL=admin@example.test
CAPELL_SETUP_ADMIN_PASSWORD=password123
```

Do not pass an encrypted or already-hashed value to `CAPELL_SETUP_ADMIN_PASSWORD`. Use the password you want to type on the login form; Laravel stores the hashed password in the `users.password` column during setup.

Runtime Surfaces
----------------

[](#runtime-surfaces)

- Provider: `Capell\Installer\Providers\InstallerServiceProvider`
- Config: `config/capell-installer.php`
- Routes: `routes/web.php`
- Controller: `Capell\Installer\Http\Controllers\InstallController`
- Form requests: `StoreInstallRequest` validates and normalises the initial install input; `RunInstallStepRequest` validates browser step requests and returns JSON validation errors.
- Middleware: `Capell\Installer\Http\Middleware\EnsureNotInstalled`
- Pages: `InstallCapellPage`, `InstallGuidePage`, `InstallProgressPage`
- Actions: `GetActiveInstallAction`, `RemoveSetupPackageAction`, `ApplyInstallGuidePatchesAction`
- Patch registry: `Capell\Installer\Support\InstallGuide\PatchRegistry`

The delete-installer route delegates to `RemoveSetupPackageAction`, which removes the setup package from the host app after installation. CLI installs can pass `--remove-installer` for prompt-free removal. Package removal is a final success-only action; failed Composer requirements, Filament scaffolding, package setup, admin integration, or health checks leave `capell-app/installer` installed for retry and debugging.

Install Guide Patches
---------------------

[](#install-guide-patches)

Install guide patches are explicit, reviewable changes for common host-app setup tasks. They are the Installer package's main extension point and should be small, idempotent, and safe to re-run.

Patch classes implement the Core-owned `Capell\Core\Support\Patching\Patch` contract, live under `Capell\Installer\Support\InstallGuide\Patches`, and are registered through `PatchRegistry`. Patches that should also run during `capell:install` are contributed to Core's `Capell\Core\Support\Install\InstallPatchRegistry` from the installer service provider. Keep patch behavior covered by focused tests so a failed patch explains what went wrong instead of leaving a half-edited host file.

The browser installer discovers package and theme choices from Capell package metadata. A package that should appear during setup must be installable by the web PHP process, present in Composer repositories, and described by `capell.json` metadata that the package registry can read. Install-time package selections are checked with Composer before the installer starts mutating the application.

Verification
------------

[](#verification)

From the split repository root, with development dependencies installed, run installer tests after changing installer routes, setup validation, preflight checks, patching, or package removal:

```
vendor/bin/pest tests
```

Requirements And Support Policy
-------------------------------

[](#requirements-and-support-policy)

SurfaceSupported versionsPHP`^8.4`LaravelHost Laravel `^13.0` via CoreCoreThe same release as this packageEach Capell 1.x minor receives security fixes for 24 months from its release date, and the latest 1.x minor is always supported. Upgrade all installed Capell foundation packages together to the same supported release before requesting a fix. See the [Capell security policy](https://github.com/capell-app/capell/security/policy) for vulnerability reporting.

Support covers the dependency ranges above. When an upstream release reaches its own end of life earlier, upgrading that dependency may be required to receive a safe fix.

Troubleshooting
---------------

[](#troubleshooting)

SymptomCheckFix`/install` is unavailable on a fresh app`php artisan route:list --name=capell-installer`Confirm the provider was discovered and run `php artisan optimize:clear`.`/install` says Capell is already installed`InstallerInstallationState::capellIsInstalled()`Use the admin panel, or set `CAPELL_SETUP_ALLOW_REINSTALL=true` only for a controlled local reinstall.Preflight reports the wrong PHP or Composer binary`php artisan config:show capell-installer.php_binary` and `php artisan config:show capell-installer.composer_binary`Set `CAPELL_SETUP_PHP_BINARY` or `CAPELL_SETUP_COMPOSER_BINARY`, then clear config cache.Optional packages do not appear`composer show vendor/package --available` from the same appFix Composer repositories/auth so the web process can resolve the package.Default admin fields are blank`php artisan config:show capell-installer.admin_user`Set the `CAPELL_SETUP_ADMIN_*` env values or override the config.Progress says the session expiredCheck the cache driver and `capell.install.{installId}.*` keysRestart the installer with a persistent cache store or use the CLI installer.A guide patch failsRead the patch `reason()` and matching patch testFix the host file or update the patch probe/apply logic with regression coverage.Reports/progress pages remain reachable after setup`composer show capell-app/installer`Remove the package or restrict access immediately.Development
-----------

[](#development)

Package development and coordinated verification happen in the [capell-app/capell monorepo](https://github.com/capell-app/capell). Split package repositories are release mirrors; use [docs.capell.app](https://docs.capell.app) for cross-package guidance. See the [contribution guide](https://github.com/capell-app/capell/blob/main/CONTRIBUTING.md), [security policy](https://github.com/capell-app/capell/security/policy), and [licence](https://github.com/capell-app/capell/blob/main/LICENSE.md).

Further Reading
---------------

[](#further-reading)

PageCovers[Installer overview](docs/overview.md)Installer responsibilities and setup boundaries.The complete installation and package-selection guides are published at [docs.capell.app](https://docs.capell.app).

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance98

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 70.5% 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 ~1 days

Total

32

Last Release

16d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/85b211531c530cd60c8e1b7b2c125c7e42192c820cde99fb6b201b1dde7a9d96?d=identicon)[capell-app](/maintainers/capell-app)

---

Top Contributors

[![howdu](https://avatars.githubusercontent.com/u/533658?v=4)](https://github.com/howdu "howdu (31 commits)")[![capell-app-user](https://avatars.githubusercontent.com/u/213955377?v=4)](https://github.com/capell-app-user "capell-app-user (8 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (4 commits)")[![web2w](https://avatars.githubusercontent.com/u/23355558?v=4)](https://github.com/web2w "web2w (1 commits)")

---

Tags

capellcapell-cmsfilamentinstallerlaravellaravel-packageonboardingphpsetuplaravelcmsfilamentphpcapell

### Embed Badge

![Health badge](/badges/capell-app-installer/health.svg)

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

###  Alternatives

[spatie/laravel-medialibrary

Associate files with Eloquent models

6.2k47.7M734](/packages/spatie-laravel-medialibrary)[relaticle/custom-fields

User Defined Custom Fields for Laravel Filament

16472.9k](/packages/relaticle-custom-fields)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16429.7k](/packages/backstage-mails)[marcelweidum/filament-passkeys

Use passkeys in your filamentphp app

6769.9k2](/packages/marcelweidum-filament-passkeys)

PHPackages © 2026

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