Environment Variables



title: Environment Variables

description: Environment variables reference for self-hosted HeyForm. icon: 'lucide:variable'

NameTypeRequiredDescription
APP_LISTEN_PORTNumberPort to listen (default is 8000)
APP_LISTEN_HOSTNAMEStringHostname (default is 0.0.0.0)
APP_HOMEPAGE_URLStringWebsite homepage URL (e.g. https://exampledomain.com)
APP_DISABLE_REGISTRATIONBooleanDisable user registration (default is false)
COOKIE_MAX_AGEStringCookie max age (default is 1year)
SESSION_KEYStringSession encryption key
SESSION_MAX_AGEStringSession max age (default is 15days)
UPLOAD_FILE_TYPESStringUpload file types (e.g. .jpg,.png,.bmp,.zip)
UPLOAD_FILE_SIZENumberUpload file size (default is 10mb)
S3_ENDPOINTStringS3 API endpoint URL (e.g. https://s3.amazonaws.com or provider endpoint like MinIO/Cloudflare R2). Required when using S3-compatible storage for uploads.
S3_REGIONStringS3 region for the bucket (e.g. us-east-1). Required by most S3-compatible providers for request signing.
S3_BUCKETStringS3 bucket name used to store uploaded files. Required when using S3-compatible storage.
S3_ACCESS_KEY_IDStringAccess key ID used to authenticate with S3-compatible storage. Required for authenticated bucket access.
S3_SECRET_ACCESS_KEYStringSecret access key paired with S3_ACCESS_KEY_ID for S3 authentication. Keep this value private.
S3_PUBLIC_URLStringPublic base URL used to serve uploaded files (e.g. CDN/custom domain or bucket public URL). If empty, application should fall back to provider object URL.
FORM_ENCRYPTION_KEYStringForm encryption key
BCRYPT_SALTNumberBcrypt salt (default is 10)
MONGO_URIStringMongoDB URI, for docker it should be like mongodb://mongo:27017/heyform
MONGO_USERStringMongoDB user
MONGO_PASSWORDStringMongoDB password
MONGO_SSL_CA_PATHStringMongoDB SSL CA path
REDIS_HOSTStringRedis host (default is 127.0.0.1), for docker it should be redis
REDIS_PORTNumberRedis port (default is 6379)
REDIS_PASSWORDStringRedis password
REDIS_DBNumberRedis DB (default is 0)
VERIFY_USER_EMAILBooleanWhether it is necessary to verify the email addresses of the new users (default is false)
SMTP_FROMStringSMTP from (e.g. Heyform <[email protected]>)
SMTP_HOSTStringSMTP host
SMTP_PORTNumberSMTP port
SMTP_USERStringSMTP user
SMTP_SECUREBooleanIf truethe connection will use TLS when connecting to server
SMTP_IGNORE_CERTBooleanIf true will ignore TLS certificate errors
SMTP_PASSWORDStringSMTP password
GOOGLE_RECAPTCHA_KEYStringhttps://cloud.google.com/recaptcha-enterprise/docs/create-key-website
GOOGLE_RECAPTCHA_SECRETStringGoogle reCAPTCHA secret
AKISMET_KEYStringAkismet key
APPLE_LOGIN_TEAM_IDStringApple login team ID
APPLE_LOGIN_WEB_CLIENT_IDStringApple login web client ID
APPLE_LOGIN_KEY_IDStringApple login key ID
APPLE_LOGIN_PRIVATE_KEY_PATHStringApple login private key path
GOOGLE_LOGIN_CLIENT_IDStringGoogle login client ID
GOOGLE_LOGIN_CLIENT_SECRETStringGoogle login client secret
STRIPE_PUBLISHABLE_KEYStringhttps://docs.stripe.com/keys
STRIPE_SECRET_KEYStringStripe secret key
STRIPE_CONNECT_CLIENT_IDStringStripe connect client ID
STRIPE_WEBHOOK_SECRET_KEYStringStripe payment webhook secret key
BULL_JOB_ATTEMPTSNumberBull job attempts (default is 3)
BULL_JOB_TIMEOUTStringBull job timeout (default is 1minute)
BULL_JOB_BACKOFF_DELAYNumberBull job backoff delay (default is 3000)
BULL_JOB_BACKOFF_TYPEStringBull job backoff type (default is 'fixed')
INVITE_CODE_EXPIRE_DAYSNumberInvite code expire days (default is 7)
FORM_REPORT_RATEStringForm report rate (default is 5seconds)
VERIFICATION_CODE_EXPIREStringVerification code expire (default is 10minutes)
VERIFICATION_CODE_LIMITNumberVerification code limit (default is 5)
ACCOUNT_DELETION_SCHEDULE_INTERVALStringAccount deletion schedule interval (default is 2days)
UNSPLASH_CLIENT_IDStringUnsplash client ID (Access Key)
OPENAI_BASE_URLStringhttps://github.com/openai/openai-node/blob/11c2f361ddf6d75ec3706cbdfd5dfc60e4293368/src/index.ts#L130https://github.com/openai/openai-node/blob/11c2f361ddf6d75ec3706cbdfd5dfc60e4293368/src/index.ts#L130base URL (default is https://api.openai.com/v1)
OPENAI_API_KEYStringOpenAI API key, you can find it on https://platform.openai.com/api-keys
OPENAI_GPT_MODELStringGPT model (default is gpt-3.5-turbo-0125)