1 # Full list of environment variables that can be used with BookStack.
2 # Selectively copy these to your '.env' file as required.
3 # Each option is shown with it's default value.
4 # Do not copy this whole file to use as your '.env' file.
6 # Application environment
7 # Can be 'production', 'development', 'testing' or 'demo'
11 # Shows advanced debug information and errors.
12 # CAN EXPOSE OTHER VARIABLES, LEAVE DISABLED
16 # Used for encryption where needed.
17 # Run `php artisan key:generate` to generate a valid key.
18 APP_KEY=SomeRandomString
21 # This must be the root URL that you want to host BookStack on.
22 # All URL's in BookStack will be generated using this value.
23 APP_URL=https://example.com
25 # Application default language
26 # The default language choice to show.
27 # May be overridden by user-preference or visitor browser settings.
30 # Auto-detect language for public visitors.
31 # Uses browser-sent headers to infer a language.
32 # APP_LANG will be used if such a header is not provided.
33 APP_AUTO_LANG_PUBLIC=true
35 # Application timezone
36 # Used where dates are displayed such as on exported content.
37 # Valid timezone values can be found here: https://www.php.net/manual/en/timezones.php
41 # Used to specific a themes/<APP_THEME> folder where BookStack UI
42 # overrides can be made. Defaults to disabled.
46 # Used to indicate trust of systems that proxy to the application so
47 # certain header values (Such as "X-Forwarded-For") can be used from the
48 # incoming proxy request to provide origin detail.
49 # Set to an IP address, or multiple comma seperated IP addresses.
50 # Can alternatively be set to "*" to trust all proxy addresses.
54 # Host can contain a port (localhost:3306) or a separate DB_PORT option can be used.
57 DB_DATABASE=database_database
58 DB_USERNAME=database_username
59 DB_PASSWORD=database_user_password
62 # Can be 'smtp' or 'sendmail'
65 # Mail sending options
66 MAIL_FROM=mail@bookstackapp.com
67 MAIL_FROM_NAME=BookStack
76 # Cache & Session driver to use
77 # Can be 'file', 'database', 'memcached' or 'redis'
81 # Session configuration
83 SESSION_COOKIE_NAME=bookstack_session
84 SESSION_SECURE_COOKIE=false
87 # Can be used to prevent conflicts multiple BookStack instances use the same store.
88 CACHE_PREFIX=bookstack
90 # Memcached server configuration
91 # If using a UNIX socket path for the host, set the port to 0
92 # This follows the following format: HOST:PORT:WEIGHT
93 # For multiple servers separate with a comma
94 MEMCACHED_SERVERS=127.0.0.1:11211:100
96 # Redis server configuration
97 # This follows the following format: HOST:PORT:DATABASE
98 # or, if using a password: HOST:PORT:DATABASE:PASSWORD
99 # For multiple servers separate with a comma. These will be clustered.
100 REDIS_SERVERS=127.0.0.1:6379:0
102 # Queue driver to use
103 # Queue not really currently used but may be configurable in the future.
104 # Would advise not to change this for now.
105 QUEUE_CONNECTION=sync
107 # Storage system to use
108 # Can be 'local', 'local_secure' or 's3'
111 # Image storage system to use
112 # Defaults to the value of STORAGE_TYPE if unset.
113 # Accepts the same values as STORAGE_TYPE.
114 STORAGE_IMAGE_TYPE=local
116 # Attachment storage system to use
117 # Defaults to the value of STORAGE_TYPE if unset.
118 # Accepts the same values as STORAGE_TYPE although 'local' will be forced to 'local_secure'.
119 STORAGE_ATTACHMENT_TYPE=local_secure
121 # Amazon S3 storage configuration
122 STORAGE_S3_KEY=your-s3-key
123 STORAGE_S3_SECRET=your-s3-secret
124 STORAGE_S3_BUCKET=s3-bucket-name
125 STORAGE_S3_REGION=s3-bucket-region
127 # S3 endpoint to use for storage calls
128 # Only set this if using a non-Amazon s3-compatible service such as Minio
129 STORAGE_S3_ENDPOINT=https://my-custom-s3-compatible.service.com:8001
132 # Used as a base for any generated image urls.
133 # An s3-format URL will be generated if not set.
136 # Authentication method to use
137 # Can be 'standard', 'ldap' or 'saml2'
140 # Social authentication configuration
141 # All disabled by default.
142 # Refer to https://www.bookstackapp.com/docs/admin/third-party-auth/
145 AZURE_APP_SECRET=false
147 AZURE_AUTO_REGISTER=false
148 AZURE_AUTO_CONFIRM_EMAIL=false
151 DISCORD_APP_SECRET=false
152 DISCORD_AUTO_REGISTER=false
153 DISCORD_AUTO_CONFIRM_EMAIL=false
155 FACEBOOK_APP_ID=false
156 FACEBOOK_APP_SECRET=false
157 FACEBOOK_AUTO_REGISTER=false
158 FACEBOOK_AUTO_CONFIRM_EMAIL=false
161 GITHUB_APP_SECRET=false
162 GITHUB_AUTO_REGISTER=false
163 GITHUB_AUTO_CONFIRM_EMAIL=false
166 GITLAB_APP_SECRET=false
167 GITLAB_BASE_URI=false
168 GITLAB_AUTO_REGISTER=false
169 GITLAB_AUTO_CONFIRM_EMAIL=false
172 GOOGLE_APP_SECRET=false
173 GOOGLE_SELECT_ACCOUNT=false
174 GOOGLE_AUTO_REGISTER=false
175 GOOGLE_AUTO_CONFIRM_EMAIL=false
179 OKTA_APP_SECRET=false
180 OKTA_AUTO_REGISTER=false
181 OKTA_AUTO_CONFIRM_EMAIL=false
184 SLACK_APP_SECRET=false
185 SLACK_AUTO_REGISTER=false
186 SLACK_AUTO_CONFIRM_EMAIL=false
189 TWITCH_APP_SECRET=false
190 TWITCH_AUTO_REGISTER=false
191 TWITCH_AUTO_CONFIRM_EMAIL=false
194 TWITTER_APP_SECRET=false
195 TWITTER_AUTO_REGISTER=false
196 TWITTER_AUTO_CONFIRM_EMAIL=false
198 # LDAP authentication configuration
199 # Refer to https://www.bookstackapp.com/docs/admin/ldap-auth/
204 LDAP_USER_FILTER=false
207 LDAP_TLS_INSECURE=false
208 LDAP_ID_ATTRIBUTE=uid
209 LDAP_EMAIL_ATTRIBUTE=mail
210 LDAP_DISPLAY_NAME_ATTRIBUTE=cn
211 LDAP_THUMBNAIL_ATTRIBUTE=null
212 LDAP_FOLLOW_REFERRALS=true
213 LDAP_DUMP_USER_DETAILS=false
215 # LDAP group sync configuration
216 # Refer to https://www.bookstackapp.com/docs/admin/ldap-auth/
217 LDAP_USER_TO_GROUPS=false
218 LDAP_GROUP_ATTRIBUTE="memberOf"
219 LDAP_REMOVE_FROM_GROUPS=false
221 # SAML authentication configuration
222 # Refer to https://www.bookstackapp.com/docs/admin/saml2-auth/
224 SAML2_EMAIL_ATTRIBUTE=email
225 SAML2_DISPLAY_NAME_ATTRIBUTES=username
226 SAML2_EXTERNAL_ID_ATTRIBUTE=null
227 SAML2_IDP_ENTITYID=null
231 SAML2_ONELOGIN_OVERRIDES=null
232 SAML2_DUMP_USER_DETAILS=false
233 SAML2_AUTOLOAD_METADATA=false
234 SAML2_IDP_AUTHNCONTEXT=true
236 SAML2_SP_x509_KEY=null
238 # SAML group sync configuration
239 # Refer to https://www.bookstackapp.com/docs/admin/saml2-auth/
240 SAML2_USER_TO_GROUPS=false
241 SAML2_GROUP_ATTRIBUTE=group
242 SAML2_REMOVE_FROM_GROUPS=false
244 # OpenID Connect authentication configuration
246 OIDC_DISPLAY_NAME_CLAIMS=name
248 OIDC_CLIENT_SECRET=null
250 OIDC_ISSUER_DISCOVER=false
252 OIDC_AUTH_ENDPOINT=null
253 OIDC_TOKEN_ENDPOINT=null
254 OIDC_DUMP_USER_DETAILS=false
256 # Disable default third-party services such as Gravatar and Draw.IO
257 # Service-specific options will override this option
258 DISABLE_EXTERNAL_SERVICES=false
260 # Use custom avatar service, Sets fetch URL
261 # Possible placeholders: ${hash} ${size} ${email}
262 # If set, Avatars will be fetched regardless of DISABLE_EXTERNAL_SERVICES option.
263 # Example: AVATAR_URL=https://seccdn.libravatar.org/avatar/${hash}?s=${size}&d=identicon
266 # Enable diagrams.net integration
267 # Can simply be true/false to enable/disable the integration.
268 # Alternatively, It can be URL to the diagrams.net instance you want to use.
269 # For URLs, The following URL parameters should be included: embed=1&proto=json&spin=1
272 # Default item listing view
273 # Used for public visitors and user's without a preference.
274 # Can be 'list' or 'grid'.
276 APP_VIEWS_BOOKSHELVES=grid
277 APP_VIEWS_BOOKSHELF=grid
279 # Use dark mode by default
280 # Will be overriden by any user/session preference.
281 APP_DEFAULT_DARK_MODE=false
283 # Page revision limit
284 # Number of page revisions to keep in the system before deleting old revisions.
285 # If set to 'false' a limit will not be enforced.
288 # Recycle Bin Lifetime
289 # The number of days that content will remain in the recycle bin before
290 # being considered for auto-removal. It is not a guarantee that content will
291 # be removed after this time.
292 # Set to 0 for no recycle bin functionality.
293 # Set to -1 for unlimited recycle bin lifetime.
294 RECYCLE_BIN_LIFETIME=30
296 # Allow <script> tags in page content
297 # Note, if set to 'true' the page editor may still escape scripts.
298 ALLOW_CONTENT_SCRIPTS=false
300 # Indicate if robots/crawlers should crawl your instance.
301 # Can be 'true', 'false' or 'null'.
302 # The behaviour of the default 'null' option will depend on the 'app-public' admin setting.
303 # Contents of the robots.txt file can be overridden, making this option obsolete.
306 # Allow server-side fetches to be performed to potentially unknown
307 # and user-provided locations. Primarily used in exports when loading
308 # in externally referenced assets.
309 # Can be 'true' or 'false'.
310 ALLOW_UNTRUSTED_SERVER_FETCHING=false
312 # A list of hosts that BookStack can be iframed within.
313 # Space separated if multiple. BookStack host domain is auto-inferred.
314 # For Example: ALLOWED_IFRAME_HOSTS="https://example.com https://a.example.com"
315 # Setting this option will also auto-adjust cookies to be SameSite=None.
316 ALLOWED_IFRAME_HOSTS=null
318 # The default and maximum item-counts for listing API requests.
319 API_DEFAULT_ITEM_COUNT=100
320 API_MAX_ITEM_COUNT=500
322 # The number of API requests that can be made per minute by a single user.
323 API_REQUESTS_PER_MIN=180
325 # Enable the logging of failed email+password logins with the given message.
326 # The default log channel below uses the php 'error_log' function which commonly
327 # results in messages being output to the webserver error logs.
328 # The message can contain a %u parameter which will be replaced with the login
329 # user identifier (Username or email).
330 LOG_FAILED_LOGIN_MESSAGE=false
331 LOG_FAILED_LOGIN_CHANNEL=errorlog_plain_webserver