page:recipes:storefront:symfony:product media

Host storefront with Symfony: public product media

Summary

Deploy a storefront built with Symfony on Ample using the public media library pattern. Compute runs the app in an isolated microVM behind a public HTTPS URL, a managed PostgreSQL 16 database is auto-provisioned and injected as DATABASE_URL, a private S3-compatible bucket holds objects with credentials delivered as encrypted environment variables, and a published bucket serves public assets from the CDN host.

Verified on Symfony: an object written to a published bucket with an immutable Cache-Control header, a mapping row, and the CDN URL serving it publicly. Not separately tested: your media processing, object layout and cache policy; treat the storefront-specific behavior as your application code.

Representative Queries

Resource Requirements

Infrastructure Requirements

Compute

PostgreSQL

S3-compatible object storage

CDN

Prerequisites

Workflow Steps

  1. Build and start: composer install --no-dev from composer.lock with Symfony Runtime's dotenv disabled.
  2. Implement the pattern on PostgreSQL: Copy the approach into your schema; keep migrations idempotent.
  3. Wire object storage: Create the bucket(s) and pass required parameters as --env values.
  4. Deploy: Run the synchronous deploy once and read the result.
  5. Verify: Fetch the live URL and sample your own checks.

Success Checks

Limitations

Cost Estimate

Components