UNPKG

6.92 kBJavaScriptView Raw
1"use strict";
2
3module.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};