Skip to main content
.env.example is the authoritative list. This page covers the variables specific to FaPost, and the Laravel ones whose value matters here.

Application

Tenancy and webhooks

WEBHOOK_INGRESS_DRIVER applies to newly registered channels only. The Laravel route always stays live, so switching it does not move channels that already exist — use ops:ingress-migrate for those. See Webhook gateway.

Database

PostgreSQL is required, not one option among several — landlord and tenant connections both depend on it. The database user needs the CREATE privilege; see Requirements.

Redis, cache, queues, sessions

Redis is not optional: it carries queues, cache, locks, and the webhook routing registry. The registry is what keeps the landlord database off the inbound hot path — see Runtime architecture.

Localisation

This is the admin UI language. Content language — what the assistant says to a contact — is resolved separately at runtime; see Multilingual extensions.

Mail, logging, other

MAIL_* follow Laravel’s conventions; the default MAIL_MAILER=log writes mail to the log rather than sending it. LOG_CHANNEL=stack with LOG_LEVEL=debug is the development default — raise the level in production. TELESCOPE_ENABLED defaults to true locally and should be false in production. HCAPTCHA_SITE_KEY and HCAPTCHA_SECRET_KEY ship with hCaptcha’s public test values, which always pass — replace them before exposing any public form.
The shipped .env.example values for APP_DEBUG, TELESCOPE_ENABLED, and the hCaptcha keys are development defaults. Each is safe locally and unsafe in production.