Installation
This guide covers installing the Core PHP Framework in a new or existing Laravel application.
Quick Start (Recommended)
The fastest way to get started is using the core:new command from any existing Core PHP installation:
php artisan core:new my-project
cd my-project
php artisan serveThis scaffolds a complete project with all Core packages pre-configured.
Command Options
# Custom template
php artisan core:new my-api --template=host-uk/core-api-template
# Specific version
php artisan core:new my-app --branch=v1.0.0
# Skip automatic installation
php artisan core:new my-app --no-install
# Development mode (--prefer-source)
php artisan core:new my-app --dev
# Overwrite existing directory
php artisan core:new my-app --forceFrom GitHub Template
You can also use the GitHub template directly:
- Visit host-uk/core-template
- Click "Use this template"
- Clone your new repository
- Run
composer install && php artisan core:install
Manual Installation
For adding Core PHP to an existing Laravel project:
# Install Core PHP
composer require host-uk/core
# Install optional packages
composer require host-uk/core-admin # Admin panel
composer require host-uk/core-api # REST API
composer require host-uk/core-mcp # MCP toolsExisting Laravel Project
Add to an existing Laravel 11+ or 12 application:
composer require host-uk/coreThe service provider will be auto-discovered.
Package Installation
Install individual packages as needed:
Core Package (Required)
composer require host-uk/coreProvides:
- Event-driven module system
- Actions pattern
- Multi-tenancy
- Activity logging
- Seeder auto-discovery
Admin Package (Optional)
composer require host-uk/core-adminProvides:
- Livewire admin panel
- Global search
- Service management UI
- Form components
Additional requirements:
composer require livewire/livewire:"^3.0|^4.0"
composer require livewire/flux:"^2.0"API Package (Optional)
composer require host-uk/core-apiProvides:
- OpenAPI/Swagger documentation
- Rate limiting
- Webhook signing
- Secure API keys
MCP Package (Optional)
composer require host-uk/core-mcpProvides:
- Model Context Protocol tools
- Tool analytics
- SQL query validation
- MCP playground UI
Publishing Configuration
Publish configuration files:
# Publish core config
php artisan vendor:publish --tag=core-config
# Publish API config (if installed)
php artisan vendor:publish --tag=api-config
# Publish MCP config (if installed)
php artisan vendor:publish --tag=mcp-configDatabase Setup
Run migrations:
php artisan migrateThis creates tables for:
- Workspaces and users
- API keys (if core-api installed)
- MCP analytics (if core-mcp installed)
- Activity logs (if spatie/laravel-activitylog installed)
Optional Dependencies
Activity Logging
For activity logging features:
composer require spatie/laravel-activitylog:"^4.8"
php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="activitylog-migrations"
php artisan migrateFeature Flags
For feature flag support:
composer require laravel/pennant:"^1.0"
php artisan vendor:publish --provider="Laravel\Pennant\PennantServiceProvider"
php artisan migrateVerify Installation
Check that everything is installed correctly:
# Check installed packages
composer show | grep host-uk
# List available artisan commands
php artisan list make
# Should see:
# make:mod Create a new module
# make:website Create a new website module
# make:plug Create a new pluginEnvironment Configuration
Add to your .env:
# Core Configuration
CORE_MODULE_DISCOVERY=true
CORE_STRICT_WORKSPACE_MODE=true
# API Configuration (if using core-api)
API_DOCS_ENABLED=true
API_DOCS_REQUIRE_AUTH=false
API_RATE_LIMIT_DEFAULT=60
# MCP Configuration (if using core-mcp)
MCP_ANALYTICS_ENABLED=true
MCP_QUOTA_ENABLED=true
MCP_DATABASE_CONNECTION=readonlyDirectory Structure
After installation, your project structure will look like:
your-app/
├── app/
│ ├── Core/ # Core modules (framework-level)
│ ├── Mod/ # Feature modules (your code)
│ ├── Website/ # Website modules
│ └── Plug/ # Plugins
├── config/
│ ├── core.php # Core configuration
│ ├── api.php # API configuration (optional)
│ └── mcp.php # MCP configuration (optional)
├── packages/ # Local package development (optional)
└── vendor/
└── host-uk/ # Installed packagesNext Steps
Troubleshooting
Service Provider Not Discovered
If the service provider isn't auto-discovered:
composer dump-autoload
php artisan package:discover --ansiMigration Errors
If migrations fail:
# Check database connection
php artisan db:show
# Run migrations with verbose output
php artisan migrate --verboseModule Discovery Issues
If modules aren't being discovered:
# Clear application cache
php artisan optimize:clear
# Verify module paths in config/core.php
php artisan config:show core.module_pathsMinimum Requirements
- PHP 8.2+
- Laravel 11.0+ or 12.0+
- MySQL 8.0+ / PostgreSQL 13+ / SQLite 3.35+
- Composer 2.0+
- 128MB PHP memory limit (256MB recommended)