]> BookStack Code Mirror - bookstack/blob - config/services.php
Abstracted user avatar fetching away from gravatar
[bookstack] / config / services.php
1 <?php
2
3 return [
4
5     /*
6     |--------------------------------------------------------------------------
7     | Third Party Services
8     |--------------------------------------------------------------------------
9     |
10     | This file is for storing the credentials for third party services such
11     | as Stripe, Mailgun, Mandrill, and others. This file provides a sane
12     | default location for this type of information, allowing packages
13     | to have a conventional place to find your various credentials.
14     |
15     */
16
17     // Single option to disable non-auth external services such as Gravatar and Draw.io
18     'disable_services' => env('DISABLE_EXTERNAL_SERVICES', false),
19
20     // Draw.io integration active
21     'drawio' => env('DRAWIO', !env('DISABLE_EXTERNAL_SERVICES', false)),
22
23     // URL for fetching avatars
24     'avatar_url' => env('AVATAR_URL',
25         env('DISABLE_EXTERNAL_SERVICES', false) ? false : 'https://www.gravatar.com/avatar/${hash}?s=${size}&d=identicon'
26     ),
27
28     // Callback URL for social authentication methods
29     'callback_url' => env('APP_URL', false),
30
31     'mailgun'  => [
32         'domain' => '',
33         'secret' => '',
34     ],
35
36     'mandrill' => [
37         'secret' => '',
38     ],
39
40     'ses'      => [
41         'key'    => '',
42         'secret' => '',
43         'region' => 'us-east-1',
44     ],
45
46     'stripe'   => [
47         'model'  => \BookStack\Auth\User::class,
48         'key'    => '',
49         'secret' => '',
50     ],
51
52     'github'   => [
53         'client_id'     => env('GITHUB_APP_ID', false),
54         'client_secret' => env('GITHUB_APP_SECRET', false),
55         'redirect'      => env('APP_URL') . '/login/service/github/callback',
56         'name'          => 'GitHub',
57         'auto_register' => env('GITHUB_AUTO_REGISTER', false),
58         'auto_confirm' => env('GITHUB_AUTO_CONFIRM_EMAIL', false),
59     ],
60
61     'google'   => [
62         'client_id'     => env('GOOGLE_APP_ID', false),
63         'client_secret' => env('GOOGLE_APP_SECRET', false),
64         'redirect'      => env('APP_URL') . '/login/service/google/callback',
65         'name'          => 'Google',
66         'auto_register' => env('GOOGLE_AUTO_REGISTER', false),
67         'auto_confirm' => env('GOOGLE_AUTO_CONFIRM_EMAIL', false),
68         'select_account' => env('GOOGLE_SELECT_ACCOUNT', false),
69     ],
70
71     'slack'   => [
72         'client_id'     => env('SLACK_APP_ID', false),
73         'client_secret' => env('SLACK_APP_SECRET', false),
74         'redirect'      => env('APP_URL') . '/login/service/slack/callback',
75         'name'          => 'Slack',
76         'auto_register' => env('SLACK_AUTO_REGISTER', false),
77         'auto_confirm' => env('SLACK_AUTO_CONFIRM_EMAIL', false),
78     ],
79
80     'facebook'   => [
81         'client_id'     => env('FACEBOOK_APP_ID', false),
82         'client_secret' => env('FACEBOOK_APP_SECRET', false),
83         'redirect'      => env('APP_URL') . '/login/service/facebook/callback',
84         'name'          => 'Facebook',
85         'auto_register' => env('FACEBOOK_AUTO_REGISTER', false),
86         'auto_confirm' => env('FACEBOOK_AUTO_CONFIRM_EMAIL', false),
87     ],
88
89     'twitter'   => [
90         'client_id'     => env('TWITTER_APP_ID', false),
91         'client_secret' => env('TWITTER_APP_SECRET', false),
92         'redirect'      => env('APP_URL') . '/login/service/twitter/callback',
93         'name'          => 'Twitter',
94         'auto_register' => env('TWITTER_AUTO_REGISTER', false),
95         'auto_confirm' => env('TWITTER_AUTO_CONFIRM_EMAIL', false),
96     ],
97
98     'azure'   => [
99         'client_id'     => env('AZURE_APP_ID', false),
100         'client_secret' => env('AZURE_APP_SECRET', false),
101         'tenant'       => env('AZURE_TENANT', false),
102         'redirect'      => env('APP_URL') . '/login/service/azure/callback',
103         'name'          => 'Microsoft Azure',
104         'auto_register' => env('AZURE_AUTO_REGISTER', false),
105         'auto_confirm' => env('AZURE_AUTO_CONFIRM_EMAIL', false),
106     ],
107
108     'okta' => [
109         'client_id' => env('OKTA_APP_ID'),
110         'client_secret' => env('OKTA_APP_SECRET'),
111         'redirect' => env('APP_URL') . '/login/service/okta/callback', 
112         'base_url' => env('OKTA_BASE_URL'), 
113         'name'          => 'Okta',
114         'auto_register' => env('OKTA_AUTO_REGISTER', false),
115         'auto_confirm' => env('OKTA_AUTO_CONFIRM_EMAIL', false),
116     ],
117
118     'gitlab' => [
119         'client_id'     => env('GITLAB_APP_ID'),
120         'client_secret' => env('GITLAB_APP_SECRET'),
121         'redirect'      => env('APP_URL') . '/login/service/gitlab/callback',
122         'instance_uri'  => env('GITLAB_BASE_URI'), // Needed only for self hosted instances
123         'name'          => 'GitLab',
124         'auto_register' => env('GITLAB_AUTO_REGISTER', false),
125         'auto_confirm' => env('GITLAB_AUTO_CONFIRM_EMAIL', false),
126     ],
127
128     'twitch' => [
129         'client_id' => env('TWITCH_APP_ID'),
130         'client_secret' => env('TWITCH_APP_SECRET'),
131         'redirect' => env('APP_URL') . '/login/service/twitch/callback',
132         'name'          => 'Twitch',
133         'auto_register' => env('TWITCH_AUTO_REGISTER', false),
134         'auto_confirm' => env('TWITCH_AUTO_CONFIRM_EMAIL', false),
135     ],
136
137     'discord' => [
138         'client_id' => env('DISCORD_APP_ID'),
139         'client_secret' => env('DISCORD_APP_SECRET'),
140         'redirect' => env('APP_URL') . '/login/service/discord/callback',
141         'name' => 'Discord',
142         'auto_register' => env('DISCORD_AUTO_REGISTER', false),
143         'auto_confirm' => env('DISCORD_AUTO_CONFIRM_EMAIL', false),
144     ],
145
146     'ldap' => [
147         'server' => env('LDAP_SERVER', false),
148         'dn' => env('LDAP_DN', false),
149         'pass' => env('LDAP_PASS', false),
150         'base_dn' => env('LDAP_BASE_DN', false),
151         'user_filter' => env('LDAP_USER_FILTER', '(&(uid=${user}))'),
152         'version' => env('LDAP_VERSION', false),
153         'email_attribute' => env('LDAP_EMAIL_ATTRIBUTE', 'mail'),
154         'follow_referrals' => env('LDAP_FOLLOW_REFERRALS', false),
155                 'user_to_groups' => env('LDAP_USER_TO_GROUPS',false),
156                 'group_attribute' => env('LDAP_GROUP_ATTRIBUTE', 'memberOf'),
157                 'remove_from_groups' => env('LDAP_REMOVE_FROM_GROUPS',false),
158                 'tls_insecure' => env('LDAP_TLS_INSECURE', false),
159         ]
160
161 ];