]> git.somenet.org - root/pub/somesible.git/blob - roles/server/irc-services/files/default/nickserv.conf
roles/server/irc-services/files
[root/pub/somesible.git] / roles / server / irc-services / files / default / nickserv.conf
1 #
2 ################################################
3 ### Managed by someone's ansible provisioner ###
4 ################################################
5 # Part of: https://git.somenet.org/root/pub/somesible.git
6 # 2017-2025 by someone <someone@somenet.org>
7 #
8
9 /*
10  * First, create the service.
11  */
12 service
13 {
14         /*
15          * The name of the NickServ client.
16          * If you change this value, you probably want to change the client directive in the configuration for the nickserv module too.
17          */
18         nick = "NickServ"
19
20         /*
21          * The username of the NickServ client.
22          */
23         user = "services"
24
25         /*
26          * The hostname of the NickServ client.
27          */
28         host = "services.host"
29
30         /*
31          * The realname of the NickServ client.
32          */
33         gecos = "Nickname Registration Service"
34
35         /*
36          * The modes this client should use.
37          * Do not modify this unless you know what you are doing.
38          *
39          * These modes are very IRCd specific. If left commented, sane defaults
40          * are used based on what protocol module you have loaded.
41          *
42          * Note that setting this option incorrectly could potentially BREAK some, if
43          * not all, usefulness of the client. We will not support you if this client is
44          * unable to do certain things if this option is enabled.
45          */
46         #modes = "+o"
47
48         /*
49          * An optional comma separated list of channels this service should join. Outside
50          * of log channels this is not very useful, as the service will just idle in the
51          * specified channels, and will not accept any types of commands.
52          *
53          * Prefixes may be given to the channels in the form of mode characters or prefix symbols.
54          */
55         #channels = "@#services,#mychan"
56 }
57
58 /*
59  * Core NickServ module.
60  *
61  * Provides essential functionality for NickServ.
62  */
63 module
64 {
65         name = "nickserv"
66
67         /*
68          * The name of the client that should be NickServ.
69          */
70         client = "NickServ"
71
72         /*
73          * Force users to give an e-mail address when they register a nick.
74          *
75          * This directive defaults to "yes" and is recommended to be enabled. This is required if e-mail registration is enabled.
76          */
77         forceemail = yes
78
79         /*
80          * Require users who change their email address to confirm they
81          * own their new email.
82          */
83         confirmemailchanges = no
84
85         /*
86          * A message sent to users on connect if they use an unregistered nick. %n will be replaced with the user's nickname.
87          *
88          * This directive is optional.
89          */
90         #unregistered_notice = "Your nickname is not registered. To register it, use: /msg NickServ REGISTER password email"
91
92         /*
93          * The default options for newly registered nicks. Note that changing these options
94          * will have no effect on nicks which are already registered. The list must be separated
95          * by spaces.
96          *
97          * The options are:
98          * -   killprotect: Kill nick if not identified within 60 seconds
99          * -    kill_quick: Kill nick if not identified within 20 seconds, this one overrides the killprotect
100          *                    option and the killprotect option must be specified with this one
101          * -    kill_immed: Kill nick immediately if not identified, this one overrides both the killprotect
102          *                    and kill_quick options and the killprotect option must be specified with this one
103          * -     ns_secure: Enable nickname security, requiring the nick's password before any operations
104          *                    can be done on it
105          * -    ns_private: Hide the nick from NickServ's LIST command
106          * -    hide_email: Hide the nick's e-mail address from NickServ's INFO command
107          * -     hide_mask: Hide the nick's last or current user@host from NickServ's INFO command
108          * -   hide_status: Hide the nick's services operator access status from NickServ's INFO command
109          * -     hide_quit: Hide the nick's last quit message from NickServ's INFO command
110          * -   memo_signon: Notify user if they have a new memo when they sign into the nick
111          * -  memo_receive: Notify user if they have a new memo as soon as it's received
112          * -     memo_mail: Notify user if they have a new memo by mail
113          * -        autoop: User will be automatically opped in channels they enter and have access to
114          * -           msg: Services messages will be sent as PRIVMSGs instead of NOTICEs, requires
115          *                    options:useprivmsg to be enabled as well
116          * - ns_keep_modes: Enables keepmodes, which retains user modes across sessions
117          *
118          * This directive is optional, if left blank, the options will default to ns_secure, memo_signon, and
119          * memo_receive. If you really want no defaults, use "none" by itself as the option.
120          */
121         defaults = "killprotect ns_secure ns_private hide_email hide_mask memo_signon memo_receive autoop"
122
123         /*
124          * The minimum length of time between consecutive uses of NickServ's REGISTER command. This
125          * directive is optional, but recommended. If not set, this restriction will be disabled.
126          */
127         regdelay = 90s
128
129         /*
130          * The length of time before a nick's registration expires.
131          *
132          * This directive is optional, but recommended. If not set, the default is 21 days.
133          */
134         expire = 370d
135
136         /*
137          * Prevents the use of the ACCESS and CERT (excluding their LIST subcommand), DROP, FORBID, SUSPEND,
138          * GETPASS and SET PASSWORD commands by services operators on other services operators.
139          *
140          * This directive is optional, but recommended.
141          */
142         secureadmins = yes
143
144         /*
145          * If set, Services will set the channel modes a user has access to upon identifying, assuming
146          * they are not already set.
147          *
148          * This directive is optional.
149          */
150         modeonid = yes
151
152         /*
153          * If set, Services will set these user modes on any user who identifies.
154          *
155          * This directive is optional.
156          */
157         #modesonid = "+R"
158
159         /*
160          * If set, Services will not show netsplits in the last quit message field
161          * of NickServ's INFO command.
162          */
163         hidenetsplitquit = no
164
165         /*
166          * If set, is the length of time NickServ's killquick and kill options wait before
167          * forcing users off of protected nicknames.
168          */
169         killquick = 20s
170         kill = 60s
171
172         /*
173          * If set, forbids the registration of nicks that contain an existing
174          * nick with Services access. For example, if Tester is a Services Oper,
175          * you can't register NewTester or Tester123 unless you are an IRC
176          * Operator.
177          *
178          * NOTE: If you enable this, you will have to be logged in as an IRC
179          * operator in order to register a Services Root nick when setting up
180          * Anope for the first time.
181          *
182          * This directive is optional.
183          */
184         #restrictopernicks = yes
185
186         /*
187          * The username, and possibly hostname, used for fake users created when Services needs to
188          * hold a nickname.
189          */
190         enforceruser = "enforcer"
191         enforcerhost = "services.host"
192
193         /*
194          * The length of time Services hold nicknames.
195          *
196          * This directive is optional, but recommended. If not set it defaults to 1 minute.
197          */
198         releasetimeout = 1m
199
200         /*
201          * When a user's nick is forcibly changed to enforce a "nick kill", their new nick will start
202          * with this value. The rest will be made up of 6 or 7 digits.
203          * Make sure this is a valid nick and Nicklen+7 is not longer than the allowed Nicklen on your ircd.
204          *
205          * This directive is optional. If not set it defaults to "Guest"
206          */
207         guestnickprefix = "Guest"
208
209         /*
210          * If set, Services do not allow ownership of nick names, only ownership of accounts.
211          */
212         nonicknameownership = no
213
214         /*
215          * The maximum length of passwords
216          *
217          * This directive is optional. If not set it defaults to 32.
218          */
219         passlen = 32
220 }
221
222 /*
223  * Core NickServ commands.
224  *
225  * In Anope modules can provide (multiple) commands, each of which has a unique command name. Once these modules
226  * are loaded you can then configure the commands to be added to any client you like with any name you like.
227  *
228  * Additionally, you may provide a permission name that must be in the opertype of users executing the command.
229  *
230  * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
231  */
232
233 /* Command group configuration for NickServ.
234  *
235  * Commands may optionally be placed into groups to make NickServ's HELP output easier to understand.
236  * Remove the following groups to use the old behavior of simply listing all NickServ commands from HELP.
237  */
238 command_group
239 {
240         name = "nickserv/admin"
241         description = _("Services Operator commands")
242 }
243
244 /* Give it a help command. */
245 command { service = "NickServ"; name = "HELP"; command = "generic/help"; }
246
247 /*
248  * ns_access
249  *
250  * Provides the command nickserv/access.
251  *
252  * Used for configuring what hosts have access to your account.
253  */
254 module
255 {
256         name = "ns_access"
257
258         /*
259          * The maximum number of entries allowed on a nickname's access list.
260          * If not set, the default is 32. This number cannot be set to 0.
261          */
262         accessmax = 64
263
264         /*
265          * If set, Services will add the usermask of registering users to the access list of their
266          * newly created account. If not set, users will always have to identify to NickServ before
267          * being recognized, unless they manually add an address to the access list of their account.
268          * This directive is optional.
269          */
270         addaccessonreg = no
271 }
272 command { service = "NickServ"; name = "ACCESS"; command = "nickserv/access"; }
273
274 /*
275  * ns_ajoin
276  *
277  * Provides the command nickserv/ajoin.
278  *
279  * Used for configuring channels to join once you identify.
280  */
281 module
282 {
283         name = "ns_ajoin"
284
285         /*
286          * The maximum number of channels a user can have on NickServ's AJOIN command.
287          */
288         ajoinmax = 64
289 }
290 command { service = "NickServ"; name = "AJOIN"; command = "nickserv/ajoin"; }
291
292 /*
293  * ns_alist
294  *
295  * Provides the command nickserv/alist.
296  *
297  * Used for viewing what channels you have access to.
298  */
299 module { name = "ns_alist" }
300 command { service = "NickServ"; name = "ALIST"; command = "nickserv/alist"; }
301
302 /*
303  * ns_cert
304  *
305  * Provides the command nickserv/cert.
306  *
307  * Used for configuring your SSL certificate list, which can be used to automatically identify you.
308  */
309 module
310 {
311         name = "ns_cert"
312
313         /*
314          * The maximum number of entries allowed on a nickname's certificate fingerprint list.
315          * The default is 5. This number cannot be set to 0.
316          */
317         max = 5
318 }
319 command { service = "NickServ"; name = "CERT"; command = "nickserv/cert"; }
320
321 /*
322  * ns_drop
323  *
324  * Provides the command nickserv/drop.
325  *
326  * Used for unregistering names.
327  */
328 module { name = "ns_drop" }
329 command { service = "NickServ"; name = "DROP"; command = "nickserv/drop"; }
330
331 /*
332  * ns_getemail
333  *
334  * Provides the command nickserv/getemail.
335  *
336  * Used for getting registered accounts by searching for emails.
337  */
338 module { name = "ns_getemail" }
339 command { service = "NickServ"; name = "GETEMAIL"; command = "nickserv/getemail"; permission = "nickserv/getemail"; group = "nickserv/admin"; }
340
341 /*
342  * ns_getpass
343  *
344  * Provides the command nickserv/getpass.
345  *
346  * Used for getting users passwords.
347  *
348  * Requires no encryption is being used.
349  */
350 #module { name = "ns_getpass" }
351 #command { service = "NickServ"; name = "GETPASS"; command = "nickserv/getpass"; permission = "nickserv/getpass"; }
352
353 /*
354  * ns_group
355  *
356  * Provides the commands nickserv/group, nickserv/glist, and nickserv/ungroup.
357  *
358  * Used for controlling nick groups.
359  */
360 module
361 {
362         name = "ns_group"
363
364         /*
365          * The maximum number of nicks allowed in a group.
366          *
367          * This directive is optional, but recommended. If not set or set to 0, no limits will be applied.
368          */
369         maxaliases = 64
370
371         /*
372          * If set, the NickServ GROUP command won't allow any group changes. This is recommended to
373          * prevent users from accidentally dropping their nicks, as it forces users to explicitly
374          * drop their nicks before adding it to another group.
375          *
376          * This directive is optional, but recommended.
377          */
378         nogroupchange = no
379 }
380 command { service = "NickServ"; name = "GLIST"; command = "nickserv/glist"; }
381 command { service = "NickServ"; name = "GROUP"; command = "nickserv/group"; }
382 command { service = "NickServ"; name = "UNGROUP"; command = "nickserv/ungroup"; }
383
384 /*
385  * ns_identify
386  *
387  * Provides the command nickserv/identify.
388  *
389  * Used for identifying to accounts.
390  */
391 module
392 {
393         name = "ns_identify"
394
395         /*
396          * If set, limits the number of concurrent users that can be logged in as a given account at once.
397          */
398         maxlogins = 10
399 }
400 command { service = "NickServ"; name = "ID"; command = "nickserv/identify"; hide = true; }
401 command { service = "NickServ"; name = "IDENTIFY"; command = "nickserv/identify"; }
402
403 /*
404  * ns_info
405  *
406  * Provides the commands:
407  * nickserv/info. - Used for gathering information about an account.
408  * nickserv/set/hide, nickserv/saset/hide - Used for configuring which options are publicly shown in nickserv/info.
409  *
410  */
411 module { name = "ns_info" }
412 command { service = "NickServ"; name = "INFO"; command = "nickserv/info"; }
413
414 command { service = "NickServ"; name = "SET HIDE"; command = "nickserv/set/hide"; }
415 command { service = "NickServ"; name = "SASET HIDE"; command = "nickserv/saset/hide"; permission = "nickserv/saset/hide"; }
416
417
418 /*
419  * ns_list
420  *
421  * Provides the commands:
422  *   nickserv/list - Used for retrieving and searching the registered account list.
423  *   nickserv/set/private, nickserv/saset/private - Used for configuring whether or a users account shows up in nickserv/list.
424  *
425  */
426 module
427 {
428         name = "ns_list"
429
430         /*
431          * The maximum number of nicks to be returned for a NickServ LIST command.
432          */
433         listmax = 50
434 }
435 command { service = "NickServ"; name = "LIST"; command = "nickserv/list"; }
436
437 command { service = "NickServ"; name = "SET PRIVATE"; command = "nickserv/set/private"; }
438 command { service = "NickServ"; name = "SASET PRIVATE"; command = "nickserv/saset/private"; permission = "nickserv/saset/private"; }
439
440
441 /*
442  * ns_logout
443  *
444  * Provides the command nickserv/logout.
445  *
446  * Used for logging out of your account.
447  */
448 module { name = "ns_logout" }
449 command { service = "NickServ"; name = "LOGOUT"; command = "nickserv/logout"; }
450
451 /*
452  * ns_recover
453  *
454  * Provides the command nickserv/recover.
455  *
456  * Used for recovering your nick from services or another user.
457  */
458 module
459 {
460         name = "ns_recover"
461
462         /*
463          * If set, Services will svsnick and svsjoin users who use the recover
464          * command on an identified user to the nick and channels of the recovered user.
465          *
466          * This directive is optional.
467          */
468         restoreonrecover = yes
469 }
470 command { service = "NickServ"; name = "RECOVER"; command = "nickserv/recover"; }
471 # Uncomment below to emulate 1.8's behavior of ghost and release.
472 #command { service = "NickServ"; name = "GHOST"; command = "nickserv/recover"; }
473 #command { service = "NickServ"; name = "RELEASE"; command = "nickserv/recover"; }
474
475 /*
476  * ns_register
477  *
478  * Provides the commands nickserv/confirm, nickserv/register, and nickserv/resend.
479  *
480  * Used for registering accounts.
481  */
482 module
483 {
484         name = "ns_register"
485
486         /*
487          * Registration confirmation setting. Set to "none" for no registration confirmation,
488          * "mail" for email confirmation, and "admin" to have services operators manually confirm
489          * every registration. Set to "disable" to completely disable all registrations.
490          */
491         registration = "none"
492
493         /*
494          * The minimum length of time between consecutive uses of NickServ's RESEND command.
495          *
496          * This directive is optional, but recommended. If not set, this restriction will be disabled.
497          */
498         resenddelay = 90s
499
500         /*
501          * Prevents users from registering their nick if they are not connected
502          * for at least the given number of seconds.
503          *
504          * This directive is optional.
505          */
506         nickregdelay = 90s
507
508         /*
509          * The length of time a user using an unconfirmed account has
510          * before the account will be released for general use again.
511          */
512         unconfirmedexpire = 7d
513 }
514 command { service = "NickServ"; name = "CONFIRM"; command = "nickserv/confirm"; }
515 command { service = "NickServ"; name = "REGISTER"; command = "nickserv/register"; }
516 command { service = "NickServ"; name = "RESEND"; command = "nickserv/resend"; }
517
518 /*
519  * ns_resetpass
520  *
521  * Provides the command nickserv/resetpass.
522  *
523  * Used for resetting passwords by emailing users a temporary one.
524  */
525 module { name = "ns_resetpass" }
526 command { service = "NickServ"; name = "RESETPASS"; command = "nickserv/resetpass"; }
527
528 /*
529  * ns_set
530  *
531  * Provides the commands:
532  *   nickserv/set, nickserv/saset - Dummy help wrappers for the SET and SASET commands.
533  *   nickserv/set/autoop, nickserv/saset/autoop - Determines whether or not modes are automatically set users when joining a channel.
534  *   nickserv/set/display, nickserv/saset/display - Used for setting a users display name.
535  *   nickserv/set/email, nickserv/saset/email - Used for setting a users email address.
536  *   nickserv/set/keepmodes, nickserv/saset/keepmodes - Configure whether or not services should retain a user's modes across sessions.
537  *   nickserv/set/kill, nickserv/saset/kill - Used for configuring nickname protection.
538  *   nickserv/set/language, nickserv/saset/language - Used for configuring what language services use.
539  *   nickserv/set/message, nickserv/saset/message - Used to configure how services send messages to you.
540  *   nickserv/set/password, nickserv/saset/password  - Used for changing a users password.
541  *   nickserv/set/secure, nickserv/saset/secure - Used for configuring whether a user can identify by simply being recognized by nickserv/access.
542  *   nickserv/saset/noexpire - Used for configuring noexpire, which prevents nicks from expiring.
543  */
544 module
545 {
546         name = "ns_set"
547
548         /*
549          * Allow the use of the IMMED option in the NickServ SET KILL command.
550          *
551          * This directive is optional.
552          */
553         #allowkillimmed = yes
554 }
555
556 command { service = "NickServ"; name = "SET"; command = "nickserv/set"; }
557 command { service = "NickServ"; name = "SASET"; command = "nickserv/saset"; permission = "nickserv/saset/"; group = "nickserv/admin"; }
558
559 command { service = "NickServ"; name = "SET AUTOOP"; command = "nickserv/set/autoop"; }
560 command { service = "NickServ"; name = "SASET AUTOOP"; command = "nickserv/saset/autoop"; permission = "nickserv/saset/autoop"; }
561
562 command { service = "NickServ"; name = "SET DISPLAY"; command = "nickserv/set/display"; }
563 command { service = "NickServ"; name = "SASET DISPLAY"; command = "nickserv/saset/display"; permission = "nickserv/saset/display"; }
564
565 command { service = "NickServ"; name = "SET EMAIL"; command = "nickserv/set/email"; }
566 command { service = "NickServ"; name = "SASET EMAIL"; command = "nickserv/saset/email"; permission = "nickserv/saset/email"; }
567
568 command { service = "NickServ"; name = "SET KEEPMODES"; command = "nickserv/set/keepmodes"; }
569 command { service = "NickServ"; name = "SASET KEEPMODES"; command = "nickserv/saset/keepmodes"; permission = "nickserv/saset/keepmodes"; }
570
571 command { service = "NickServ"; name = "SET KILL"; command = "nickserv/set/kill"; }
572 command { service = "NickServ"; name = "SASET KILL"; command = "nickserv/saset/kill"; permission = "nickserv/saset/kill"; }
573
574 command { service = "NickServ"; name = "SET LANGUAGE"; command = "nickserv/set/language"; }
575 command { service = "NickServ"; name = "SASET LANGUAGE"; command = "nickserv/saset/language"; permission = "nickserv/saset/language"; }
576
577 command { service = "NickServ"; name = "SET MESSAGE"; command = "nickserv/set/message"; }
578 command { service = "NickServ"; name = "SASET MESSAGE"; command = "nickserv/saset/message"; permission = "nickserv/saset/message"; }
579
580 command { service = "NickServ"; name = "SET PASSWORD"; command = "nickserv/set/password"; }
581 command { service = "NickServ"; name = "SASET PASSWORD"; command = "nickserv/saset/password"; permission = "nickserv/saset/password"; }
582
583 command { service = "NickServ"; name = "SET SECURE"; command = "nickserv/set/secure"; }
584 command { service = "NickServ"; name = "SASET SECURE"; command = "nickserv/saset/secure"; permission = "nickserv/saset/secure"; }
585
586 command { service = "NickServ"; name = "SASET NOEXPIRE"; command = "nickserv/saset/noexpire"; permission = "nickserv/saset/noexpire"; }
587
588
589 /*
590  * ns_set_misc
591  *
592  * Provides the command nickserv/set/misc.
593  *
594  * Allows you to create arbitrary commands to set data, and have that data show up in nickserv/info.
595  * A field named misc_description may be given for use with help output.
596  */
597 module { name = "ns_set_misc" }
598 command { service = "NickServ"; name = "SET URL"; command = "nickserv/set/misc"; misc_description = _("Associate a URL with your account"); }
599 command { service = "NickServ"; name = "SASET URL"; command = "nickserv/saset/misc"; misc_description = _("Associate a URL with this account"); permission = "nickserv/saset/url"; group = "nickserv/admin"; }
600 command { service = "NickServ"; name = "SET DISCORD"; command = "nickserv/set/misc"; misc_description = _("Associate a Discord account with your account"); }
601 command { service = "NickServ"; name = "SASET DISCORD"; command = "nickserv/saset/misc"; misc_description = _("Associate a Discord account with this account"); permission = "nickserv/saset/discord"; group = "nickserv/admin"; }
602 command { service = "NickServ"; name = "SET FACEBOOK"; command = "nickserv/set/misc"; misc_description = _("Associate a Facebook URL with your account"); }
603 command { service = "NickServ"; name = "SASET FACEBOOK"; command = "nickserv/saset/misc"; misc_description = _("Associate a Facebook URL with this account"); permission = "nickserv/saset/facebook"; group = "nickserv/admin"; }
604 command { service = "NickServ"; name = "SET MASTODON"; command = "nickserv/set/misc"; misc_description = _("Associate a Mastodon account with your account"); }
605 command { service = "NickServ"; name = "SASET MASTODON"; command = "nickserv/saset/misc"; misc_description = _("Associate a Mastodon account with this account"); permission = "nickserv/saset/mastodon"; group = "nickserv/admin"; }
606
607
608 /*
609  * ns_status
610  *
611  * Provides the nickserv/status command.
612  *
613  * Used to determine if a user is recognized or identified by services.
614  */
615 module { name = "ns_status" }
616 command { service = "NickServ"; name = "STATUS"; command = "nickserv/status"; }
617
618 /*
619  * ns_suspend
620  *
621  * Provides the commands nickserv/suspend and nickserv/unsuspend.
622  *
623  * Used to suspend and unsuspend nicknames. Suspended nicknames can not be used but their settings are preserved.
624  */
625 module
626 {
627         name = "ns_suspend"
628
629         /*
630          * The length of time before a suspended nick becomes unsuspended.
631          *
632          * This directive is optional. If not set, the default is never.
633          */
634         #suspendexpire = 90d
635
636         /*
637          * Settings to show to non-opers in NickServ's INFO output.
638          * Comment to completely disable showing any information about
639          * suspended nicknames to non-opers.
640          */
641         show = "suspended, by, reason, on, expires"
642 }
643 command { service = "NickServ"; name = "SUSPEND"; command = "nickserv/suspend"; permission = "nickserv/suspend"; group = "nickserv/admin"; }
644 command { service = "NickServ"; name = "UNSUSPEND"; command = "nickserv/unsuspend"; permission = "nickserv/suspend"; group = "nickserv/admin"; }
645
646 /*
647  * ns_update
648  *
649  * Provides the command nickserv/update.
650  *
651  * Used to update your status on all channels, turn on your vHost, etc.
652  */
653 module { name = "ns_update" }
654 command { service = "NickServ"; name = "UPDATE"; command = "nickserv/update"; }
655
656
657 /*
658  * Extra NickServ related modules.
659  */
660
661 /*
662  * ns_maxemail
663  *
664  * Limits how many times the same email address may be used in Anope
665  * to register accounts.
666  */
667 #module
668 {
669         name = "ns_maxemail"
670
671         /*
672          * The limit to how many registered nicks can use the same e-mail address. If set to 0 or left
673          * commented, there will be no limit enforced when registering new accounts or using
674          * /msg NickServ SET EMAIL.
675          */
676         maxemails = 1
677 }