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

In host mode WEBHOOK_BASE_URL and the gateway host must sit under TENANCY_BASE_DOMAIN: the application answers no other host. The Compose file also reads CADDY_IMAGE (a Caddy build with your DNS provider’s module) and CADDY_SITES_DIR (extra Caddy sites, ./caddy.d by default); neither is read by the application.
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. Tenant schemas are created on the tenant connection (TENANT_DB_CONNECTION). Do not set the LANDLORD_DB_* variables yet: a separate landlord database leaves root tables (cache, jobs, failed jobs, Telescope) where they are not read. 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.

Conversation transcript

See Conversation retention.

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.