|
3 | 3 | #COMPOSE_PROJECT_NAME= # Optional: only use when running multiple deployments on the same infrastructure. |
4 | 4 |
|
5 | 5 | # Service Configuration |
6 | | -SERVICE=formbricks |
| 6 | +SERVICE=formbricks # Service name (e.g., adguard). Used as hostname in Tailscale and for container naming (app-${SERVICE}). |
7 | 7 | IMAGE_URL=ghcr.io/formbricks/formbricks:latest |
8 | 8 |
|
9 | 9 | # Network Configuration |
10 | | -SERVICEPORT=3000 |
11 | | -DNS_SERVER=9.9.9.9 |
| 10 | +SERVICEPORT=3000 # Port to expose to local network. Uncomment the "ports:" section in compose.yaml to enable. |
| 11 | +DNS_SERVER=9.9.9.9 # Preferred DNS server for Tailscale. Uncomment the "dns:" section in compose.yaml to enable. |
12 | 12 |
|
13 | 13 | # Tailscale Configuration |
14 | | -TS_AUTHKEY= |
| 14 | +TS_AUTHKEY= # Auth key from https://tailscale.com/admin/authkeys. See: https://tailscale.com/kb/1085/auth-keys#generate-an-auth-key for instructions. |
15 | 15 |
|
16 | 16 | # Time Zone setting for containers |
17 | 17 | TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones |
18 | 18 |
|
19 | 19 | # Optional Service variables |
20 | 20 | # PUID=1000 |
21 | 21 |
|
22 | | -#EXAMPLE_VAR="Environment varibale" |
| 22 | +# Any Container environment variables are declared below. See https://docs.docker.com/compose/how-tos/environment-variables/ |
| 23 | + |
| 24 | +######################################################## REQUIRED ######################################################## |
| 25 | + |
| 26 | +# Your tailnet domain |
| 27 | +TS_URL="formbricks.<YOUR_TAILNET>.ts.net" |
| 28 | + |
| 29 | +# The url of your Formbricks instance used in the admin panel |
| 30 | +# Set this to your public-facing URL, e.g., https://example.com |
| 31 | +WEBAPP_URL=http://${TS_URL}:3000 |
| 32 | + |
| 33 | +# Required for next-auth. Should be the same as WEBAPP_URL |
| 34 | +NEXTAUTH_URL=${WEBAPP_URL} |
| 35 | + |
| 36 | +# Set the below to your public domain (default is WEBAPP_URL) |
| 37 | +PUBLIC_URL=${WEBAPP_URL} |
| 38 | + |
| 39 | +# PostgreSQL DB for Formbricks to connect to |
| 40 | +DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" |
| 41 | + |
| 42 | +# NextJS Auth |
| 43 | +# @see: https://next-auth.js.org/configuration/options#nextauth_secret |
| 44 | +# You can use: `openssl rand -hex 32` to generate a new one |
| 45 | +NEXTAUTH_SECRET="7b62c37371798cf96dc019f3d4f712a27d1b05d0755ffcf96481b8504697f532" |
| 46 | + |
| 47 | +# Encryption Key is used for 2FA & Single use URLs for Link Surveys |
| 48 | +# You can use: `openssl rand -hex 32` to generate a new one |
| 49 | +ENCRYPTION_KEY="i1e284266e3f7ace4772e329e0494aa1d6110fba48db06bd9652e7a9fdd167281" |
| 50 | + |
| 51 | +# API Secret for running cron jobs. |
| 52 | +# You can use: `openssl rand -hex 32` to generate a new one |
| 53 | +CRON_SECRET="b5af3d39789e7730004a01bb84922914ea0b478fe67784ce3fa8e4c35096d6b4" |
| 54 | + |
| 55 | +# Redis URL for caching, rate limiting, and audit logging |
| 56 | +# To use external Redis/Valkey: remove the redis service below and update this URL |
| 57 | +REDIS_URL="redis://redis:6379" |
| 58 | + |
| 59 | +# Set the minimum log level(debug, info, warn, error, fatal) |
| 60 | +LOG_LEVEL="info" |
| 61 | + |
| 62 | +############################################# OPTIONAL (ENTERPRISE EDITION) ############################################# |
| 63 | + |
| 64 | +# Enterprise License Key (More info at: https://formbricks.com/docs/self-hosting/license) |
| 65 | +# Required to access Enterprise-only features |
| 66 | +# ENTERPRISE_LICENSE_KEY="" |
| 67 | + |
| 68 | +############################################# OPTIONAL (EMAIL CONFIGURATION) ############################################# |
| 69 | + |
| 70 | +# Email Configuration |
| 71 | +MAIL_FROM="from@some.host" |
| 72 | +MAIL_FROM_NAME="from host" |
| 73 | +SMTP_HOST="some.host" |
| 74 | +SMTP_PORT="587" |
| 75 | +SMTP_USER="SMTPUser" |
| 76 | +SMTP_PASSWORD="SMTPPassword" |
| 77 | +SMTP_AUTHENTICATED="1" |
| 78 | + |
| 79 | +# (Additional option for TLS (port 465) only) |
| 80 | +SMTP_SECURE_ENABLED="0" |
| 81 | + |
| 82 | +# If set to 0, the server will accept connections without requiring authorization from the list of supplied CAs (default is 1). |
| 83 | +SMTP_REJECT_UNAUTHORIZED_TLS="1" |
| 84 | + |
| 85 | +############################################## OPTIONAL (APP CONFIGURATION) ############################################## |
| 86 | + |
| 87 | +# Set the below to 0 to enable Email Verification for new signups (will required Email Configuration) |
| 88 | +EMAIL_VERIFICATION_DISABLED="1" |
| 89 | + |
| 90 | +# Set the below to 0 to enable Password Reset (will required Email Configuration) |
| 91 | +PASSWORD_RESET_DISABLED="1" |
| 92 | + |
| 93 | +# Set the below to 1 to disable logins with email |
| 94 | +EMAIL_AUTH_DISABLED="0" |
| 95 | + |
| 96 | +# Set the below to 1 to disable invites |
| 97 | +INVITE_DISABLED="0" |
| 98 | + |
| 99 | +# Set the below if you want to ship JS & CSS files from a complete URL instead of the current domain |
| 100 | +# ASSET_PREFIX_URL="" |
| 101 | + |
| 102 | +# Set the below to your Unsplash API Key for their Survey Backgrounds |
| 103 | +# UNSPLASH_ACCESS_KEY="" |
| 104 | + |
| 105 | +# The SENTRY_DSN is used for error tracking and performance monitoring with Sentry. |
| 106 | + |
| 107 | +# SENTRY_DSN="" |
| 108 | + |
| 109 | +# It's used for authentication when uploading source maps to Sentry, to make errors more readable. |
| 110 | +# SENTRY_AUTH_TOKEN="" |
| 111 | + |
| 112 | +# The SENTRY_ENVIRONMENT is used to identify the environment in Sentry. |
| 113 | +# SENTRY_ENVIRONMENT="" |
| 114 | + |
| 115 | +################################################### OPTIONAL (STORAGE) ################################################### |
| 116 | + |
| 117 | +# Set S3 Storage configuration (required for the file upload in serverless environments like Vercel) |
| 118 | +# S3_ACCESS_KEY="" |
| 119 | +# S3_SECRET_KEY="" |
| 120 | +# S3_REGION="" |
| 121 | +# S3_BUCKET_NAME="" |
| 122 | + |
| 123 | +# Set a third party S3 compatible storage service endpoint like StorJ leave empty if you use Amazon S3 |
| 124 | +# S3_ENDPOINT_URL="" |
| 125 | + |
| 126 | +# Force path style for S3 compatible storage (0 for disabled, 1 for enabled) |
| 127 | +S3_FORCE_PATH_STYLE="0" |
| 128 | + |
| 129 | +############################################# OPTIONAL (OAUTH CONFIGURATION) ############################################# |
| 130 | + |
| 131 | +# Set the below from Cloudflare Turnstile if you want to enable turnstile in signups |
| 132 | +# TURNSTILE_SITE_KEY="" |
| 133 | +# TURNSTILE_SECRET_KEY="" |
| 134 | + |
| 135 | +# Set the below keys to enable recaptcha V3 for survey responses bot protection(only available in the Enterprise Edition) |
| 136 | +# RECAPTCHA_SITE_KEY="" |
| 137 | +# RECAPTCHA_SECRET_KEY="" |
| 138 | + |
| 139 | +# Set the below from GitHub if you want to enable GitHub OAuth |
| 140 | +# GITHUB_ID="" |
| 141 | +# GITHUB_SECRET="" |
| 142 | + |
| 143 | +# Set the below from Google if you want to enable Google OAuth |
| 144 | +# GOOGLE_CLIENT_ID="" |
| 145 | +# GOOGLE_CLIENT_SECRET="" |
| 146 | + |
| 147 | +# Set the below from Azure Active Directory Login if you want to enable Azure AD OAuth |
| 148 | +# AZUREAD_CLIENT_ID="" |
| 149 | +# AZUREAD_CLIENT_SECRET="" |
| 150 | +# AZUREAD_TENANT_ID="" |
| 151 | + |
| 152 | +# Set the below to OpenID Connect Provider if you want to enable OIDC |
| 153 | +# OIDC_CLIENT_ID="" |
| 154 | +# OIDC_CLIENT_SECRET="" |
| 155 | +# OIDC_ISSUER="" |
| 156 | +# OIDC_DISPLAY_NAME="" |
| 157 | +# OIDC_SIGNING_ALGORITHM="" |
| 158 | + |
| 159 | +# Set the below to SAML Provider if you want to enable SAML |
| 160 | +# SAML_DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks-saml?sslmode=disable" |
| 161 | + |
| 162 | +########################################## OPTIONAL (THIRD PARTY INTEGRATIONS) ########################################### |
| 163 | + |
| 164 | +# Oauth credentials for Notion Integration |
| 165 | +# NOTION_OAUTH_CLIENT_ID="" |
| 166 | +# NOTION_OAUTH_CLIENT_SECRET="" |
| 167 | + |
| 168 | +# Oauth credentials for Google Sheet Integration |
| 169 | +# GOOGLE_SHEETS_CLIENT_ID="" |
| 170 | +# GOOGLE_SHEETS_CLIENT_SECRET="" |
| 171 | +# GOOGLE_SHEETS_REDIRECT_URL="" |
| 172 | + |
| 173 | +# Oauth credentials for Airtable Integration |
| 174 | +# AIRTABLE_CLIENT_ID="" |
| 175 | + |
| 176 | +# Oauth credentials for Slack Integration |
| 177 | +# SLACK_CLIENT_ID="" |
| 178 | +# SLACK_CLIENT_SECRET="" |
| 179 | + |
| 180 | +############################################### OPTIONAL (LEGAL INFORMATION) ################################################ |
| 181 | + |
| 182 | +# Set the below to have your own Privacy Page URL on auth & link survey page |
| 183 | +# PRIVACY_URL="" |
| 184 | + |
| 185 | +# Set the below to have your own Terms Page URL on auth & link survey page |
| 186 | +# TERMS_URL="" |
| 187 | + |
| 188 | +# Set the below to have your own Imprint Page URL on auth & link survey page |
| 189 | +# IMPRINT_URL="" |
| 190 | + |
| 191 | +# Set the below to have your own Address on email footer |
| 192 | +# IMPRINT_ADDRESS="" |
| 193 | + |
| 194 | +########################################## OPTIONAL (SERVER CONFIGURATION) ########################################### |
| 195 | + |
| 196 | +# Set the below to 1 to disable Rate Limiting across Formbricks |
| 197 | +RATE_LIMITING_DISABLED="1" |
| 198 | + |
| 199 | +# Set the below to send OpenTelemetry data for tracing |
| 200 | +# OPENTELEMETRY_LISTENER_URL="http://localhost:4318/v1/traces" |
| 201 | + |
| 202 | +########################################## OPTIONAL (AUDIT LOGGING) ########################################### |
| 203 | + |
| 204 | +# Set the below to 1 to enable audit logging. |
| 205 | +AUDIT_LOG_ENABLED="1" |
| 206 | + |
| 207 | +# Set the below to get the ip address of the user from the request headers |
| 208 | +AUDIT_LOG_GET_USER_IP="1" |
| 209 | + |
| 210 | +############################################# OPTIONAL (OTHER) ############################################# |
| 211 | + |
| 212 | +# signup is disabled by default for self-hosted instances, users can only signup using an invite link, in order to allow signup from SSO(without invite), set the below to 1 |
| 213 | +AUTH_SKIP_INVITE_FOR_SSO="0" |
| 214 | + |
| 215 | +# Set the below to automatically assign new users to a specific team, insert an existing team id |
| 216 | +# (Role Management is an Enterprise feature) |
| 217 | +# AUTH_SSO_DEFAULT_TEAM_ID="" |
| 218 | + |
| 219 | +# Configure the minimum role for user management from UI(owner, manager, disabled) |
| 220 | +USER_MANAGEMENT_MINIMUM_ROLE="manager" |
| 221 | + |
| 222 | +# Configure the maximum age for the session in seconds. Default is 86400 (24 hours) |
| 223 | +SESSION_MAX_AGE="86400" |
0 commit comments