page:guides:symfony:configuration secrets

Configure Environment and Secrets for Symfony

Framework Operation: Configuration and secrets for a Symfony app on Ample. Verified on Symfony: an --env value delivered encrypted and reported as present without being echoed (secret=set). Build and start:

composer install --no-dev from composer.lock with Symfony Runtime's dotenv disabled (extra.runtime.disable_dotenv; .env never ships, its values arrive as encrypted env, and compile-time parameters such as DEFAULT_URI need a default), then FrankenPHP serving public/ (php-server with the index.php fallback) reading PORT on the php-8.5 template with APP_ENV=prod.

Prerequisites

Workflow Steps

  1. Build and Start
    composer install --no-dev from composer.lock with Symfony Runtime's dotenv disabled (extra.runtime.disable_dotenv; .env never ships, its values arrive as encrypted env, and compile-time parameters such as DEFAULT_URI need a default), then FrankenPHP serving public/ (php-server with the index.php fallback) reading PORT on the php-8.5 template with APP_ENV=prod; the server must bind 0.0.0.0 on PORT.

  2. Pass Values on Deploy
    Use --env KEY=value (repeatable) or --env-file; values are encrypted at rest and reused on redeploys. Declare names only in ample.toml.

    ample deploy . --name  --public --env MY_SECRET=...
    
  3. Verify
    Fetch the live URL and /p/configuration-secrets on the example; on failure read the build and runtime logs.

    ample logs  --kind build
    

Limitations

Cost Estimate

Success Checks