4 * Third party service configuration options.
6 * Changes to these config files are not supported by BookStack and may break upon updates.
7 * Configuration should be altered via the `.env` file or environment variables.
8 * Do not edit this file unless you're happy to maintain any changes yourself.
13 // Single option to disable non-auth external services such as Gravatar and Draw.io
14 'disable_services' => env('DISABLE_EXTERNAL_SERVICES', false),
16 // Draw.io integration active
17 'drawio' => env('DRAWIO', !env('DISABLE_EXTERNAL_SERVICES', false)),
19 // URL for fetching avatars
20 'avatar_url' => env('AVATAR_URL', ''),
22 // Callback URL for social authentication methods
23 'callback_url' => env('APP_URL', false),
27 'llm' => env('LLM_SERVICE', ''),
29 // OpenAI API-compatible service details
31 'endpoint' => env('OPENAI_ENDPOINT', 'https://api.openai.com'),
32 'key' => env('OPENAI_KEY', ''),
33 'embedding_model' => env('OPENAI_EMBEDDING_MODEL', 'text-embedding-3-small'),
34 'query_model' => env('OPENAI_QUERY_MODEL', 'gpt-4o'),
38 'client_id' => env('GITHUB_APP_ID', false),
39 'client_secret' => env('GITHUB_APP_SECRET', false),
40 'redirect' => env('APP_URL') . '/login/service/github/callback',
42 'auto_register' => env('GITHUB_AUTO_REGISTER', false),
43 'auto_confirm' => env('GITHUB_AUTO_CONFIRM_EMAIL', false),
47 'client_id' => env('GOOGLE_APP_ID', false),
48 'client_secret' => env('GOOGLE_APP_SECRET', false),
49 'redirect' => env('APP_URL') . '/login/service/google/callback',
51 'auto_register' => env('GOOGLE_AUTO_REGISTER', false),
52 'auto_confirm' => env('GOOGLE_AUTO_CONFIRM_EMAIL', false),
53 'select_account' => env('GOOGLE_SELECT_ACCOUNT', false),
57 'client_id' => env('SLACK_APP_ID', false),
58 'client_secret' => env('SLACK_APP_SECRET', false),
59 'redirect' => env('APP_URL') . '/login/service/slack/callback',
61 'auto_register' => env('SLACK_AUTO_REGISTER', false),
62 'auto_confirm' => env('SLACK_AUTO_CONFIRM_EMAIL', false),
66 'client_id' => env('FACEBOOK_APP_ID', false),
67 'client_secret' => env('FACEBOOK_APP_SECRET', false),
68 'redirect' => env('APP_URL') . '/login/service/facebook/callback',
70 'auto_register' => env('FACEBOOK_AUTO_REGISTER', false),
71 'auto_confirm' => env('FACEBOOK_AUTO_CONFIRM_EMAIL', false),
75 'client_id' => env('TWITTER_APP_ID', false),
76 'client_secret' => env('TWITTER_APP_SECRET', false),
77 'redirect' => env('APP_URL') . '/login/service/twitter/callback',
79 'auto_register' => env('TWITTER_AUTO_REGISTER', false),
80 'auto_confirm' => env('TWITTER_AUTO_CONFIRM_EMAIL', false),
84 'client_id' => env('AZURE_APP_ID', false),
85 'client_secret' => env('AZURE_APP_SECRET', false),
86 'tenant' => env('AZURE_TENANT', false),
87 'redirect' => env('APP_URL') . '/login/service/azure/callback',
88 'name' => 'Microsoft Azure',
89 'auto_register' => env('AZURE_AUTO_REGISTER', false),
90 'auto_confirm' => env('AZURE_AUTO_CONFIRM_EMAIL', false),
94 'client_id' => env('OKTA_APP_ID'),
95 'client_secret' => env('OKTA_APP_SECRET'),
96 'redirect' => env('APP_URL') . '/login/service/okta/callback',
97 'base_url' => env('OKTA_BASE_URL'),
99 'auto_register' => env('OKTA_AUTO_REGISTER', false),
100 'auto_confirm' => env('OKTA_AUTO_CONFIRM_EMAIL', false),
104 'client_id' => env('GITLAB_APP_ID'),
105 'client_secret' => env('GITLAB_APP_SECRET'),
106 'redirect' => env('APP_URL') . '/login/service/gitlab/callback',
107 'instance_uri' => env('GITLAB_BASE_URI'), // Needed only for self hosted instances
109 'auto_register' => env('GITLAB_AUTO_REGISTER', false),
110 'auto_confirm' => env('GITLAB_AUTO_CONFIRM_EMAIL', false),
114 'client_id' => env('TWITCH_APP_ID'),
115 'client_secret' => env('TWITCH_APP_SECRET'),
116 'redirect' => env('APP_URL') . '/login/service/twitch/callback',
118 'auto_register' => env('TWITCH_AUTO_REGISTER', false),
119 'auto_confirm' => env('TWITCH_AUTO_CONFIRM_EMAIL', false),
123 'client_id' => env('DISCORD_APP_ID'),
124 'client_secret' => env('DISCORD_APP_SECRET'),
125 'redirect' => env('APP_URL') . '/login/service/discord/callback',
127 'auto_register' => env('DISCORD_AUTO_REGISTER', false),
128 'auto_confirm' => env('DISCORD_AUTO_CONFIRM_EMAIL', false),
132 'server' => env('LDAP_SERVER', false),
133 'dump_user_details' => env('LDAP_DUMP_USER_DETAILS', false),
134 'dump_user_groups' => env('LDAP_DUMP_USER_GROUPS', false),
135 'dn' => env('LDAP_DN', false),
136 'pass' => env('LDAP_PASS', false),
137 'base_dn' => env('LDAP_BASE_DN', false),
138 'user_filter' => env('LDAP_USER_FILTER', '(&(uid={user}))'),
139 'version' => env('LDAP_VERSION', false),
140 'id_attribute' => env('LDAP_ID_ATTRIBUTE', 'uid'),
141 'email_attribute' => env('LDAP_EMAIL_ATTRIBUTE', 'mail'),
142 'display_name_attribute' => env('LDAP_DISPLAY_NAME_ATTRIBUTE', 'cn'),
143 'follow_referrals' => env('LDAP_FOLLOW_REFERRALS', false),
144 'user_to_groups' => env('LDAP_USER_TO_GROUPS', false),
145 'group_attribute' => env('LDAP_GROUP_ATTRIBUTE', 'memberOf'),
146 'remove_from_groups' => env('LDAP_REMOVE_FROM_GROUPS', false),
147 'tls_insecure' => env('LDAP_TLS_INSECURE', false),
148 'tls_ca_cert' => env('LDAP_TLS_CA_CERT', false),
149 'start_tls' => env('LDAP_START_TLS', false),
150 'thumbnail_attribute' => env('LDAP_THUMBNAIL_ATTRIBUTE', null),