Skip to content

Environment variables ​

Set them as real environment variables on servers, or in .env (real variables win). .env.example lists them all.

VariableRequiredDefaultDescription
APP_SECRETyesSigns Datastar template URLs. Generate with openssl rand -hex 32
APP_URLyesPublic base URL, no trailing slash, e.g. https://example.com
APP_DEBUGnooff1 = development mode
MAILER_DSNfor formsHow email is sent (Symfony Mailer), e.g. smtp://user:pass@smtp.example.com:587
MAILER_FROMfor formsThe address emails come from, of your own domain
CONTACT_TOfor the contact formWhere the skeleton's contact form goes (comma-separated)
CDN_CACHEnooff1 = cache pages at the CDN (CDN caching)
CDN_PURGEnoHow to purge the CDN: cloudflare, bunny or command
CLOUDFLARE_ZONE_ID, CLOUDFLARE_API_TOKENfor Cloudflare purgingThe zone, and a token with only the Cache Purge permission
BUNNY_PULL_ZONE_ID, BUNNY_API_KEYfor Bunny purgingThe pull zone's number and the account's API key
CDN_PURGE_CMDfor command purgingA command run with the URLs as arguments, none for everything
LOG_ALERT_TOnoEmail errors to this address (comma-separated for several), see Logging
LOG_LEVELnodebug / infoThe least important messages logged: debug, info, notice, warning, error…
MEDIA_URLnoServe post and page files and video posters from a CDN: an https:// base URL, no trailing slash
BLOG_PER_PAGEno20Posts per page on /blog
APP_TRUSTED_PROXIESnoComma-separated IPs/CIDRs of trusted proxies, or REMOTE_ADDR
APP_OPCACHEnocachetoolHow deploy refreshes Opcache: cachetool, reload or none
APP_FPM_SOCKETno/run/php-fpm.sockPHP-FPM socket or host:port, for cachetool
APP_CACHETOOLnocachetoolThe cachetool binary
APP_OPCACHE_RELOAD_CMDnoThe command for reload mode, e.g. sudo systemctl reload php8.4-fpm

Frontend code only ever sees variables prefixed VITE_PUBLIC_ (none by default).

TinyTank documentation