## Configure S3-compatible access for Symfony

### Summary
Object storage client for a Symfony app on Ample. Verified on Symfony: bucket credentials delivered as encrypted S3_* environment variables and a validated PutObject/GetObject round-trip linked to a database row (upload=ok linked=ok). Build and start: composer install --no-dev from composer.lock with Symfony Runtime's dotenv disabled.

### Resource Requirements
- primitive:compute
- primitive:s3-compatible-object-storage

### Infrastructure Requirements
- **Compute**  
  Status: verified  
  Summary: Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.  
- **S3-compatible object storage**  
  Status: verified  
  Summary: Buckets are S3-compatible with issued credentials; PutObject and GetObject are verified by canary.

### Prerequisites
1. A Symfony project with configuration for Symfony Runtime's dotenv disabled.
2. A bucket from `ample bucket create` with credentials passed as encrypted S3_* environment variables.
3. An Ample account token with required permissions.

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

### Workflow Steps
1. **Build and start**  
   composer install --no-dev from composer.lock with Symfony Runtime's dotenv disabled, then FrankenPHP serving public/.
2. **Create the bucket and pass its credentials**  
   Create it once with `ample bucket create`, then pass endpoint, region, bucket and keys with --env.
3. **Verify**  
   Fetch the live URL and /p/browser-file-uploads on the example; on failure read the build and runtime logs.

### Examples
- **Symfony pattern fixture**  
  Verified object storage client on Symfony.  
  Source: tests/deploy-canaries/symfony-patterns

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

### Cost Estimate
- **Monthly Amount:** $5.00  
  **Basis:** size prices from pricing.toml at build revision.

### Evidence Summary
- **Canary Run**  
  Summary: Symfony pattern fixture deployed on Ample; bucket credentials delivered as encrypted S3_* environment variables and validated round-trip.

### Next Actions
- **[Browse the catalog index](https://api.ample.computer/v1/catalog)**
- **[Search published recipes by intent, stack and constraints](https://api.ample.computer/v1/catalog/search)**  
  Parameters: {"limit":5,"query":"Configure S3-compatible access for Symfony"}
- **[Prepare a side-effect-free deployment plan for an authorized project](https://api.ample.computer/v1/catalog/plan)**  
  Parameters: {"inputs":{},"projectId":"","recipeId":"page:guides:symfony:object-client","recipeRevision":"r1"}
