Skip to content

core php

Laravel/PHP development tools with FrankenPHP.

Commands

Development

CommandDescription
devStart development environment
logsView service logs
stopStop all services
statusShow service status
sslSetup SSL certificates with mkcert

Build & Production

CommandDescription
buildBuild Docker or LinuxKit image
serveRun production container
shellOpen shell in running container

Code Quality

CommandDescription
testRun PHP tests (PHPUnit/Pest)
fmtFormat code with Laravel Pint
analyseRun PHPStan static analysis

Package Management

CommandDescription
packages linkLink local packages by path
packages unlinkUnlink packages by name
packages updateUpdate linked packages
packages listList linked packages

Deployment (Coolify)

CommandDescription
deployDeploy to Coolify
deploy:statusShow deployment status
deploy:rollbackRollback to previous deployment
deploy:listList recent deployments

php dev

Start the Laravel development environment with all detected services.

bash
core php dev [flags]

Services Orchestrated

  • FrankenPHP/Octane - HTTP server (port 8000, HTTPS on 443)
  • Vite - Frontend dev server (port 5173)
  • Laravel Horizon - Queue workers
  • Laravel Reverb - WebSocket server (port 8080)
  • Redis - Cache and queue backend (port 6379)

Flags

FlagDescription
--no-viteSkip Vite dev server
--no-horizonSkip Laravel Horizon
--no-reverbSkip Laravel Reverb
--no-redisSkip Redis server
--httpsEnable HTTPS with mkcert
--domainDomain for SSL certificate (default: from APP_URL)
--portFrankenPHP port (default: 8000)

Examples

bash
# Start all detected services
core php dev

# With HTTPS
core php dev --https

# Skip optional services
core php dev --no-horizon --no-reverb

php logs

Stream unified logs from all running services.

bash
core php logs [flags]

Flags

FlagDescription
--followFollow log output
--serviceSpecific service (frankenphp, vite, horizon, reverb, redis)

php stop

Stop all running Laravel services.

bash
core php stop

php status

Show the status of all Laravel services and project configuration.

bash
core php status

php ssl

Setup local SSL certificates using mkcert.

bash
core php ssl [flags]

Flags

FlagDescription
--domainDomain for certificate (default: from APP_URL or localhost)

php build

Build a production-ready container image.

bash
core php build [flags]

Flags

FlagDescription
--typeBuild type: docker (default) or linuxkit
--nameImage name (default: project directory name)
--tagImage tag (default: latest)
--platformTarget platform (e.g., linux/amd64, linux/arm64)
--dockerfilePath to custom Dockerfile
--outputOutput path for LinuxKit image
--formatLinuxKit format: qcow2 (default), iso, raw, vmdk
--templateLinuxKit template name (default: server-php)
--no-cacheBuild without cache

Examples

bash
# Build Docker image
core php build

# With custom name and tag
core php build --name myapp --tag v1.0

# Build LinuxKit image
core php build --type linuxkit

php serve

Run a production container.

bash
core php serve [flags]

Flags

FlagDescription
--nameDocker image name (required)
--tagImage tag (default: latest)
--containerContainer name
--portHTTP port (default: 80)
--https-portHTTPS port (default: 443)
-dRun in detached mode
--env-filePath to environment file

Examples

bash
core php serve --name myapp
core php serve --name myapp -d
core php serve --name myapp --port 8080

php shell

Open an interactive shell in a running container.

bash
core php shell <container-id>

php test

Run PHP tests using PHPUnit or Pest.

bash
core php test [flags]

Auto-detects Pest if tests/Pest.php exists.

Flags

FlagDescription
--parallelRun tests in parallel
--coverageGenerate code coverage
--filterFilter tests by name pattern
--groupRun only tests in specified group

Examples

bash
core php test
core php test --parallel --coverage
core php test --filter UserTest

php fmt

Format PHP code using Laravel Pint.

bash
core php fmt [flags]

Flags

FlagDescription
--fixAuto-fix formatting issues
--diffShow diff of changes

php analyse

Run PHPStan or Larastan static analysis.

bash
core php analyse [flags]

Flags

FlagDescription
--levelPHPStan analysis level (0-9)
--memoryMemory limit (e.g., 2G)

Link local PHP packages for development.

bash
core php packages link <path> [<path>...]

Adds path repositories to composer.json with symlink enabled.


Remove linked packages from composer.json.

bash
core php packages unlink <name> [<name>...]

php packages update

Update linked packages via Composer.

bash
core php packages update [<name>...]

php packages list

List all locally linked packages.

bash
core php packages list

php deploy

Deploy the PHP application to Coolify.

bash
core php deploy [flags]

Configuration

Requires environment variables in .env:

COOLIFY_URL=https://coolify.example.com
COOLIFY_TOKEN=your-api-token
COOLIFY_APP_ID=production-app-id
COOLIFY_STAGING_APP_ID=staging-app-id

Flags

FlagDescription
--stagingDeploy to staging environment
--forceForce deployment even if no changes detected
--waitWait for deployment to complete

php deploy:status

Show the status of a deployment.

bash
core php deploy:status [flags]

Flags

FlagDescription
--stagingCheck staging environment
--idSpecific deployment ID

php deploy:rollback

Rollback to a previous deployment.

bash
core php deploy:rollback [flags]

Flags

FlagDescription
--stagingRollback staging environment
--idSpecific deployment ID to rollback to
--waitWait for rollback to complete

php deploy:list

List recent deployments.

bash
core php deploy:list [flags]

Flags

FlagDescription
--stagingList staging deployments
--limitNumber of deployments (default: 10)

Configuration

Optional .core/php.yaml - see Configuration for examples.

Released under the EUPL-1.2 License.