1 | ;
|
2 |
|
3 | module.exports = {
|
4 | //
|
5 | // Set the server mode.
|
6 | // Public servers does not require authentication.
|
7 | //
|
8 | // Set to 'false' to enable users.
|
9 | //
|
10 | // @type boolean
|
11 | // @default true
|
12 | //
|
13 | public: true,
|
14 |
|
15 | //
|
16 | // IP address or hostname for the web server to listen on.
|
17 | // Setting this to undefined will listen on all interfaces.
|
18 | //
|
19 | // @type string
|
20 | // @default undefined
|
21 | //
|
22 | host: undefined,
|
23 |
|
24 | //
|
25 | // Set the port to listen on.
|
26 | //
|
27 | // @type int
|
28 | // @default 9000
|
29 | //
|
30 | port: 9000,
|
31 |
|
32 | //
|
33 | // Set the local IP to bind to for outgoing connections. Leave to undefined
|
34 | // to let the operating system pick its preferred one.
|
35 | //
|
36 | // @type string
|
37 | // @default undefined
|
38 | //
|
39 | bind: undefined,
|
40 |
|
41 | //
|
42 | // Sets whether the server is behind a reverse proxy and should honor the
|
43 | // X-Forwarded-For header or not.
|
44 | //
|
45 | // @type boolean
|
46 | // @default false
|
47 | //
|
48 | reverseProxy: false,
|
49 |
|
50 | //
|
51 | // Set the default theme.
|
52 | //
|
53 | // @type string
|
54 | // @default "themes/example.css"
|
55 | //
|
56 | theme: "themes/example.css",
|
57 |
|
58 | //
|
59 | // Prefetch URLs
|
60 | //
|
61 | // If enabled, The Lounge will try to load thumbnails and site descriptions from
|
62 | // URLs posted in channels.
|
63 | //
|
64 | // @type boolean
|
65 | // @default false
|
66 | //
|
67 | prefetch: false,
|
68 |
|
69 | //
|
70 | // Prefetch URLs Image Preview size limit
|
71 | //
|
72 | // If prefetch is enabled, The Lounge will only display content under the maximum size.
|
73 | // Default value is 512 (in kB)
|
74 | //
|
75 | // @type int
|
76 | // @default 512
|
77 | //
|
78 | prefetchMaxImageSize: 512,
|
79 |
|
80 | //
|
81 | // Display network
|
82 | //
|
83 | // If set to false network settings will not be shown in the login form.
|
84 | //
|
85 | // @type boolean
|
86 | // @default true
|
87 | //
|
88 | displayNetwork: true,
|
89 |
|
90 | //
|
91 | // Lock network
|
92 | //
|
93 | // If set to true, users will not be able to modify host, port and tls
|
94 | // settings and will be limited to the configured network.
|
95 | //
|
96 | // @type boolean
|
97 | // @default false
|
98 | //
|
99 | lockNetwork: false,
|
100 |
|
101 | //
|
102 | // Hex IP
|
103 | //
|
104 | // If enabled, clients' username will be set to their IP encoded has hex.
|
105 | // This is done to share the real user IP address with the server for host masking purposes.
|
106 | //
|
107 | // @type boolean
|
108 | // @default false
|
109 | //
|
110 | useHexIp: false,
|
111 |
|
112 | //
|
113 | // WEBIRC support
|
114 | //
|
115 | // If enabled, The Lounge will pass the connecting user's host and IP to the
|
116 | // IRC server. Note that this requires to obtain a password from the IRC network
|
117 | // The Lounge will be connecting to and generally involves a lot of trust from the
|
118 | // network you are connecting to.
|
119 | //
|
120 | // Format (standard): {"irc.example.net": "hunter1", "irc.example.org": "passw0rd"}
|
121 | // Format (function):
|
122 | // {"irc.example.net": function(client, args, trusted) {
|
123 | // // here, we return a webirc object fed directly to `irc-framework`
|
124 | // return {username: "thelounge", password: "hunter1", address: args.ip, hostname: "webirc/"+args.hostname};
|
125 | // }}
|
126 | //
|
127 | // @type string | function(client, args):object(webirc)
|
128 | // @default null
|
129 | webirc: null,
|
130 |
|
131 | //
|
132 | // Log settings
|
133 | //
|
134 | // Logging has to be enabled per user. If enabled, logs will be stored in
|
135 | // the 'logs/<user>/<network>/' folder.
|
136 | //
|
137 | // @type object
|
138 | // @default {}
|
139 | //
|
140 | logs: {
|
141 | //
|
142 | // Timestamp format
|
143 | //
|
144 | // @type string
|
145 | // @default "YYYY-MM-DD HH:mm:ss"
|
146 | //
|
147 | format: "YYYY-MM-DD HH:mm:ss",
|
148 |
|
149 | //
|
150 | // Timezone
|
151 | //
|
152 | // @type string
|
153 | // @default "UTC+00:00"
|
154 | //
|
155 | timezone: "UTC+00:00"
|
156 | },
|
157 |
|
158 | //
|
159 | // Maximum number of history lines per channel
|
160 | //
|
161 | // Defines the maximum number of history lines that will be kept in
|
162 | // memory per channel/query, in order to reduce the memory usage of
|
163 | // the server. Setting this to -1 will keep unlimited amount.
|
164 | //
|
165 | // @type integer
|
166 | // @default 10000
|
167 | maxHistory: 10000,
|
168 |
|
169 | //
|
170 | // Default values for the 'Connect' form.
|
171 | //
|
172 | // @type object
|
173 | // @default {}
|
174 | //
|
175 | defaults: {
|
176 | //
|
177 | // Name
|
178 | //
|
179 | // @type string
|
180 | // @default "Freenode"
|
181 | //
|
182 | name: "Freenode",
|
183 |
|
184 | //
|
185 | // Host
|
186 | //
|
187 | // @type string
|
188 | // @default "chat.freenode.net"
|
189 | //
|
190 | host: "chat.freenode.net",
|
191 |
|
192 | //
|
193 | // Port
|
194 | //
|
195 | // @type int
|
196 | // @default 6697
|
197 | //
|
198 | port: 6697,
|
199 |
|
200 | //
|
201 | // Password
|
202 | //
|
203 | // @type string
|
204 | // @default ""
|
205 | //
|
206 | password: "",
|
207 |
|
208 | //
|
209 | // Enable TLS/SSL
|
210 | //
|
211 | // @type boolean
|
212 | // @default true
|
213 | //
|
214 | tls: true,
|
215 |
|
216 | //
|
217 | // Nick
|
218 | //
|
219 | // @type string
|
220 | // @default "lounge-user"
|
221 | //
|
222 | nick: "lounge-user",
|
223 |
|
224 | //
|
225 | // Username
|
226 | //
|
227 | // @type string
|
228 | // @default "lounge-user"
|
229 | //
|
230 | username: "lounge-user",
|
231 |
|
232 | //
|
233 | // Real Name
|
234 | //
|
235 | // @type string
|
236 | // @default "The Lounge User"
|
237 | //
|
238 | realname: "The Lounge User",
|
239 |
|
240 | //
|
241 | // Channels
|
242 | // This is a comma-separated list.
|
243 | //
|
244 | // @type string
|
245 | // @default "#thelounge"
|
246 | //
|
247 | join: "#thelounge"
|
248 | },
|
249 |
|
250 | //
|
251 | // Set socket.io transports
|
252 | //
|
253 | // @type array
|
254 | // @default ["polling", "websocket"]
|
255 | //
|
256 | transports: ["polling", "websocket"],
|
257 |
|
258 | //
|
259 | // Run The Lounge using encrypted HTTP/2.
|
260 | // This will fallback to regular HTTPS if HTTP/2 is not supported.
|
261 | //
|
262 | // @type object
|
263 | // @default {}
|
264 | //
|
265 | https: {
|
266 | //
|
267 | // Enable HTTP/2 / HTTPS support.
|
268 | //
|
269 | // @type boolean
|
270 | // @default false
|
271 | //
|
272 | enable: false,
|
273 |
|
274 | //
|
275 | // Path to the key.
|
276 | //
|
277 | // @type string
|
278 | // @example "sslcert/key.pem"
|
279 | // @default ""
|
280 | //
|
281 | key: "",
|
282 |
|
283 | //
|
284 | // Path to the certificate.
|
285 | //
|
286 | // @type string
|
287 | // @example "sslcert/key-cert.pem"
|
288 | // @default ""
|
289 | //
|
290 | certificate: "",
|
291 |
|
292 | //
|
293 | // Path to the CA bundle.
|
294 | //
|
295 | // @type string
|
296 | // @example "sslcert/bundle.pem"
|
297 | // @default ""
|
298 | //
|
299 | ca: ""
|
300 | },
|
301 |
|
302 | //
|
303 | // Run The Lounge with identd support.
|
304 | //
|
305 | // @type object
|
306 | // @default {}
|
307 | //
|
308 | identd: {
|
309 | //
|
310 | // Run the identd daemon on server start.
|
311 | //
|
312 | // @type boolean
|
313 | // @default false
|
314 | //
|
315 | enable: false,
|
316 |
|
317 | //
|
318 | // Port to listen for ident requests.
|
319 | //
|
320 | // @type int
|
321 | // @default 113
|
322 | //
|
323 | port: 113
|
324 | },
|
325 |
|
326 | //
|
327 | // Enable oidentd support using the specified file
|
328 | //
|
329 | // Example: oidentd: "~/.oidentd.conf",
|
330 | //
|
331 | // @type string
|
332 | // @default null
|
333 | //
|
334 | oidentd: null,
|
335 |
|
336 | //
|
337 | // LDAP authentication settings (only available if public=false)
|
338 | // @type object
|
339 | // @default {}
|
340 | //
|
341 | ldap: {
|
342 | //
|
343 | // Enable LDAP user authentication
|
344 | //
|
345 | // @type boolean
|
346 | // @default false
|
347 | //
|
348 | enable: false,
|
349 |
|
350 | //
|
351 | // LDAP server URL
|
352 | //
|
353 | // @type string
|
354 | //
|
355 | url: "ldaps://example.com",
|
356 |
|
357 | //
|
358 | // LDAP base dn
|
359 | //
|
360 | // @type string
|
361 | //
|
362 | baseDN: "ou=accounts,dc=example,dc=com",
|
363 |
|
364 | //
|
365 | // LDAP primary key
|
366 | //
|
367 | // @type string
|
368 | // @default "uid"
|
369 | //
|
370 | primaryKey: "uid"
|
371 | },
|
372 |
|
373 | // Extra debugging
|
374 | //
|
375 | // @type object
|
376 | // @default {}
|
377 | //
|
378 | debug: {
|
379 | // Enables extra debugging output provided by irc-framework.
|
380 | //
|
381 | // @type boolean
|
382 | // @default false
|
383 | //
|
384 | ircFramework: false,
|
385 |
|
386 | // Enables logging raw IRC messages into each server window.
|
387 | //
|
388 | // @type boolean
|
389 | // @default false
|
390 | //
|
391 | raw: false,
|
392 | },
|
393 | };
|