generated from anoadragon453/nio-template
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathsample.config.yaml
241 lines (225 loc) · 8.04 KB
/
sample.config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
# Welcome to the sample Bubo config file
# Below you will find various config sections and options
# Default values are shown
# The string to prefix messages with to talk to the bot in group chats
command_prefix: "!bubo"
# Options for connecting to the bot's Matrix account
matrix:
# The Matrix User ID of the bot account
user_id: "@bubo:example.com"
# Token for login will be used if given
user_token: ""
# Matrix account password, used if no token given
user_password: ""
# The URL of the homeserver to connect to
homeserver_url: https://example.com
# The server name of the Matrix server
server_name: example.com
# The device ID that is **non pre-existing** device
# If this device ID already exists, messages will be dropped silently in encrypted rooms
device_id: ABCDEFGHIJ
# What to name the logged in device
device_name: bubo
# Has Synapse admin?
# Set to true if Bubo has Synapse admin API access
is_synapse_admin: false
# Different commands might require a permission.
permissions:
# Users or list of users based on room membership, who are allowed to do anything with the bot.
# Note currently this is actually just the same as coordinator, but more powerful
# actions might be added that are admin only.
# Admins get power 50 in rooms they are joined to
# if "promote_users" is set to "true".
# If this is set to a room, the bot must be a member of that room.
admins:
- "@admin:example.com"
- "!qwerty12345:example.com"
# Users or list of users based on room membership, who are allowed to
# maintain a limited set of functions.
# Coordinators get power 50 in rooms they are joined to
# if "promote_users" is set to "true".
# If this is set to a room, the bot must be a member of that room.
coordinators:
- "@coordinator:example.com"
- "!asdfgh12345:example.com"
### Some configuration
# Demote users who have too much power in a room
demote_users: false
# Promote users who should have more power in a room
promote_users: true
# Configuration related to user management.
# Currently Keycloak is the only provider.
users:
keycloak:
# Set to true to enable keycloak integration
enabled: false
# Please note you need to create a client in your keycloak realm, with the following:
# - client protocol: openid-connect
# - access type: confidential
# - service accounts enabled: true
# - service account roles -> client roles -> realm management: manage-users
# - service account roles -> client roles -> realm management: query-groups
# Then copy the credentials client secret here in 'client_secret_key'
url: "http://keycloak.domain.tld/auth/"
# Define your realm
realm_name: "master"
client_secret_key: "client-secret"
# If running an instance of https://github.com/elokapina/keycloak-signup
# you can enable the "invite" command for self-registration.
keycloak_signup:
# Set to true to enable self-registration integration
# NOTE! Requires email sending to be enabled
enabled: false
url: "https://keycloak-signup.domain.tld"
# Secret token to communicate with the keycloak-signup instance
token: "abcdefg"
# How many days a self-registration page should be valid
page_days_valid: 7
# What organisation name to use in the emails to user
organisation: Elokapina
# Configuration for rooms maintained by Bubo.
rooms:
# Default power levels. Bubo will ensure these are set for the rooms
# it maintains on creation and startup.
power_levels:
ban: 50
events:
"m.room.avatar": 50
"m.room.canonical_alias": 50
"m.room.encryption": 100
"m.room.history_visibility": 100
"m.room.name": 50
"m.room.power_levels": 100
"m.room.server_acl": 100
"m.room.tombstone": 100
events_default: 0
invite: 0
kick: 50
redact: 50
state_default: 50
users_default: 0
# Should bubo enforce the default power levels in old rooms as well?
enforce_power_in_old_rooms: true
# Secondary admin to invite to maintained rooms (optional)
#secondary_admin: "@user:domain.tld"
# Always recreate rooms in federated mode
# Useful to set when some rooms have been created as non-federated and the
# room recreate is used to create new versions in federated mode.
recreate_as_federated: false
# Prefix to use when renaming old recreated rooms
recreate_old_room_name_prefix: "OLD"
# Room groups
# Here you can create groups of rooms, which can be used by with the "groupjoin" command
# to join one or more users to a group of rooms with one command.
#
# Each level of groups (including the root level) can have a special key "__all__", which
# is a list of rooms users will be joined to for groups on this level or lower.
#
# A group can also just be a list of rooms for the lowest level.
#
# Example value:
# groups:
# __all__:
# - #common:domain.tld"
# group1:
# __all__:
# - "#coolspace:domain.tld"
# subgroup1:
# - "#room:domain.tld"
# - "!123456789:domain.tld"
# Configuration related to bot callbacks
callbacks:
# Send a 'unable to decrypt this message' reply to the room if Bubo can't decrypt a message.
unable_to_decrypt_responses: true
# Email sending configuration
email:
# Enable first if email sending is required
enabled: false
host: smtp.example.com
port: 465
# Set either starttls or ssl, not both
starttls: false
ssl: false
sender: [email protected]
auth:
username: janet
password: foobar
# Pindora smart lock API configuration
pindora:
enabled: false
token: secrettoken
id: pindoraid
timezone: Europe/Helsinki
# These users are allowed to generate Pindora door lock codes
pindora_users:
- "@pindora_user_1:example.com"
- "!pindora_room:example.com"
# Storage related configuration
storage:
# The path to the database
database_filepath: "/data/bubo.db"
# The path to a directory for internal bot storage
# containing encryption keys, sync tokens, etc.
store_filepath: "/data"
# Logging setup
logging:
# Logging level
# Allowed levels are 'INFO', 'WARNING', 'ERROR', 'DEBUG' where DEBUG is most verbose
level: INFO
# Configure logging to a file
file_logging:
# Whether logging to a file is enabled
enabled: false
# The path to the file to log to. May be relative or absolute
filepath: bubo.log
# Configure logging to the console output
console_logging:
# Whether logging to the console is enabled
enabled: true
matrix_logging:
# Whether logging to Matrix is enabled.
# Note! User access token must be specified when using Matrix logging.
enabled: false
# Room ID
room: !logs:example.com
# Discourse integration
discourse:
# URL to discourse instance
#url: https://discourse.domain.tld
# API credentials
#api_username: username
#api_key: secretkey
spaces:
# Spaces to add Discourse group spaces into based on their prefix
# '-' as the delimiter to find the prefix.
# For example 'abc-foobar' would be added to the space with the 'abc' key.
prefixes:
#abc: "#space-abc:domain.tld"
# Rooms to create
# For templates, the following variables are available:
# - Group display name: %groupdisplayname%
# - Group name: %groupname%
# - Group title: %grouptitle%
# - Group shortname (name with any prefix stripped): %groupshortname%
rooms:
- templates:
alias: "%groupshortname%"
name: "%groupdisplayname% - Living room"
title: "%grouptitle%"
joinable_via_parent: true
encrypted: true
public: false
suggested: true
- templates:
alias: "%groupshortname%-announcements"
name: "%groupdisplayname% - Announcements"
title: "%grouptitle%"
joinable_via_parent: true
encrypted: true
public: false
suggested: true
# If set, only these groups will be synced to spaces
# Use the Discourse group name for list items.
whitelist: []
# Set to true to dry-run spaces sync - no spaces or rooms will be actually created
dry_run: False