# Configure build and start for Laravel

Build and start for a Laravel app on Ample. Verified on Laravel: the app built and started with the documented commands and answered on its public HTTPS URL. Build and start:

```bash
composer install --no-dev from composer.lock, then FrankenPHP serving public/ (php-server with the index.php fallback) reading PORT on the php-8.5 template.
```

## Prerequisites
- A Laravel project (composer install --no-dev from composer.lock, then FrankenPHP serving public/ (php-server with the index.php fallback) reading PORT on the php-8.5 template)
- An Ample account token with servers:write

## Workflow Steps
1. **Build and start**  
   composer install --no-dev from composer.lock, then FrankenPHP serving public/ (php-server with the index.php fallback) reading PORT on the php-8.5 template; the server must bind 0.0.0.0 on PORT.

2. **Deploy**  
   Run the synchronous deploy once and read the result.  
   ```bash
   ample deploy . --name  --public
   ```

3. **Verify**  
   Fetch the live URL on the example; on failure read the build and runtime logs.  
   ```bash
   ample logs  --kind build
   ```

## Tested Configuration
- **Template**: php-8.5
- **Runtime**: php
- **Size**: s-1vcpu-1gb
- **Install**: composer install --no-dev --prefer-dist --no-interaction --no-progress --optimize-autoloader
- **Start**: frankenphp php-server --listen :$PORT --root public

## Limitations
- Verified on the php-8.5 template at s-1vcpu-1gb; other sizes and Laravel major versions are not verified.
- Region, compliance attestations and request-duration limits are unknown and not claimed.

## Cost Estimate
- **Currency**: USD
- **Monthly Amount**: 5.0
- **Basis**: size prices from pricing.toml (loaded by the API) at build revision 1ac5595375130d45290090e82ed0f554ccd45405-dirty  
- **Components**:
  - app server: s-1vcpu-1gb (quantity: 1.0, monthly amount: 5.0)

Note: Always-on monthly price of the tested sizes; apps auto-pause when idle. Buckets are allocation-priced per quota and not included.

## Success Checks
- app responds on its public URL.  
  Kind: http_get, Path: /, Expect: ample canary laravel patterns

## Evidence Summary
- **Kind**: canary_run  
  Summary: Laravel pattern fixture deployed on Ample (composer install --no-dev from composer.lock, then FrankenPHP serving public/ (php-server with the index.php fallback) reading PORT on the php-8.5 template); for this guide: the app built and started with the documented commands and answered on its public HTTPS URL.  
  Observed At: 2026-09-20T20:36:21Z  
  Expires At: 2027-03-19T20:36:21Z
