]> BookStack Code Mirror - bookstack/blob - app/Config/services.php
Vectors: Added command to regenerate for all
[bookstack] / app / Config / services.php
1 <?php
2
3 /**
4  * Third party service configuration options.
5  *
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.
9  */
10
11 return [
12
13     // Single option to disable non-auth external services such as Gravatar and Draw.io
14     'disable_services' => env('DISABLE_EXTERNAL_SERVICES', false),
15
16     // Draw.io integration active
17     'drawio' => env('DRAWIO', !env('DISABLE_EXTERNAL_SERVICES', false)),
18
19     // URL for fetching avatars
20     'avatar_url' => env('AVATAR_URL', ''),
21
22     // Callback URL for social authentication methods
23     'callback_url' => env('APP_URL', false),
24
25     // LLM Service
26     // Options: openai
27     'llm' => env('LLM_SERVICE', ''),
28
29     // OpenAI API-compatible service details
30     'openai' => [
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'),
35     ],
36
37     'github'   => [
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',
41         'name'          => 'GitHub',
42         'auto_register' => env('GITHUB_AUTO_REGISTER', false),
43         'auto_confirm'  => env('GITHUB_AUTO_CONFIRM_EMAIL', false),
44     ],
45
46     'google'   => [
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',
50         'name'           => 'Google',
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),
54     ],
55
56     'slack'   => [
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',
60         'name'          => 'Slack',
61         'auto_register' => env('SLACK_AUTO_REGISTER', false),
62         'auto_confirm'  => env('SLACK_AUTO_CONFIRM_EMAIL', false),
63     ],
64
65     'facebook'   => [
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',
69         'name'          => 'Facebook',
70         'auto_register' => env('FACEBOOK_AUTO_REGISTER', false),
71         'auto_confirm'  => env('FACEBOOK_AUTO_CONFIRM_EMAIL', false),
72     ],
73
74     'twitter'   => [
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',
78         'name'          => 'Twitter',
79         'auto_register' => env('TWITTER_AUTO_REGISTER', false),
80         'auto_confirm'  => env('TWITTER_AUTO_CONFIRM_EMAIL', false),
81     ],
82
83     'azure'   => [
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),
91     ],
92
93     'okta' => [
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'),
98         'name'          => 'Okta',
99         'auto_register' => env('OKTA_AUTO_REGISTER', false),
100         'auto_confirm'  => env('OKTA_AUTO_CONFIRM_EMAIL', false),
101     ],
102
103     'gitlab' => [
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
108         'name'          => 'GitLab',
109         'auto_register' => env('GITLAB_AUTO_REGISTER', false),
110         'auto_confirm'  => env('GITLAB_AUTO_CONFIRM_EMAIL', false),
111     ],
112
113     'twitch' => [
114         'client_id'     => env('TWITCH_APP_ID'),
115         'client_secret' => env('TWITCH_APP_SECRET'),
116         'redirect'      => env('APP_URL') . '/login/service/twitch/callback',
117         'name'          => 'Twitch',
118         'auto_register' => env('TWITCH_AUTO_REGISTER', false),
119         'auto_confirm'  => env('TWITCH_AUTO_CONFIRM_EMAIL', false),
120     ],
121
122     'discord' => [
123         'client_id'     => env('DISCORD_APP_ID'),
124         'client_secret' => env('DISCORD_APP_SECRET'),
125         'redirect'      => env('APP_URL') . '/login/service/discord/callback',
126         'name'          => 'Discord',
127         'auto_register' => env('DISCORD_AUTO_REGISTER', false),
128         'auto_confirm'  => env('DISCORD_AUTO_CONFIRM_EMAIL', false),
129     ],
130
131     'ldap' => [
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),
151     ],
152
153 ];