]> jfr.im git - irc/quakenet/newserv.git/blame - MODULES
Merge pull request #51 from retropc/chanserv-live
[irc/quakenet/newserv.git] / MODULES
CommitLineData
d1b8e200 1newserv Modules
005396ab 2===============
d1b8e200
GB
3
4This is a brief overview of the newserv modules.
5
6core
005396ab 7----
d1b8e200
GB
8
9This is not actually a module. Instead, this is the code of the "newserv" binary
10which provides minimal support for loading modules.
11
12authext, bans, chanindex, channel, irc, nick, server
005396ab 13----------------------------------------------------
d1b8e200
GB
14
15These modules provide basic support for accounts, channels, nicks and server
16connections. Virtually all other modules depend on at least some of these
17modules.
18
19localuser
005396ab 20---------
d1b8e200
GB
21
22Implements functionality for creating local users that are "connected" to the
23newserv instance.
24
25control
005396ab 26-------
d1b8e200
GB
27
28Spawns the control user for your newserv instance. The control user provides
29an IRC-based interface for newserv commands, e.g. to manage loaded modules
30and modify user accounts.
31
32Other modules can register their own commands.
33
d1b8e200
GB
34Configuration:
35
36[control]
37nick=N3
fb0b5a22
GB
38#ident=control
39#hostname=your.hostname.here
005396ab 40#realname=newserv Control Service
fb0b5a22 41#authname=C
d1b8e200 42
e7b7b171 43control_commands
005396ab 44----------------
e7b7b171
GB
45
46Provides commonly-used oper commands.
47
48control_management
005396ab 49------------------
e7b7b171
GB
50
51Provides user management commands.
52
d1b8e200 53auth
005396ab 54----
d1b8e200
GB
55
56Supports sending AC tokens. You should only use this module if you don't have
57some other form of authentication service on your network (such as Q). This
58module lets opers use arbitrary account names and IDs.
59
60chanfix
005396ab 61-------
d1b8e200 62
c6603960
P
63Keeps track of channel ops and can be used to re-op opless channels. However,
64since its chanfixing commands require oper, it should be paired with the request
65module, which provides REQUESTOP for users and uses chanfix internally.
d1b8e200
GB
66
67chanserv
005396ab 68--------
d1b8e200
GB
69
70This is QuakeNet's channel service (Q). In order to load this module you will
71need also need to load the pqsql module.
72
c6603960
P
73Configuration:
74
75[chanserv]
76nick=Q
77user=TheQBot
78host=some.host
79realname=ChannelService
80account=Q
81secret=
82ticketsecret=
83createaccountsecret=
84
85secret can be an arbitrary string, at most 128 characters long. If not set, Q
86will generate a random one and not write it to the configuration.
87
88ticketsecret can be an arbitrary string, at most 256 characters long and must
89be set for ticket auth to work. Note that you must implement ticket auth
90yourself if you wish to use it.
91
92createaccountsecret must be a hex string of exact 128 characters (i.e. 64 bytes
93of hex-encoded data).
94
d1b8e200 95pqsql
005396ab 96-----
d1b8e200
GB
97
98Provides support for PostgreSQL database queries.
99
100Configuration:
101
102[pqsql]
103host=127.0.0.1
104port=5432
105username=gunnar
106password=changeme
c6603960 107#database=newserv
d1b8e200
GB
108
109dbapi2
005396ab 110------
d1b8e200
GB
111
112Implements database functionality used by some other modules. In addition to
113loading the dbapi2 module you will also need to load one of the database
114provider modules: sqlite-dbapi2 or pqsql-dbapi2
115
116fakeusers
005396ab 117---------
d1b8e200
GB
118
119Provides a way to spawn fake users.
120
121glines
005396ab 122------
d1b8e200
GB
123
124Implements gline commands and general gline functionality that is used by other
125modules.
126
fb0b5a22 127geoip
005396ab 128-----
fb0b5a22
GB
129
130Provides geo-location services for other modules.
131
132Configuration:
133
134[geoip]
135#db=GeoIP.dat
136
d1b8e200 137helpmod2
005396ab 138--------
d1b8e200
GB
139
140This is QuakeNet's G service. It is primarily used on official support channels.
141
142invalidbans
005396ab 143-----------
d1b8e200
GB
144
145This module automatically removes invalid IPv6 bans as these can desync channel
146modes on snircd 1.3.4a.
147
148jupe
005396ab 149----
d1b8e200
GB
150
151Provides commands to set, list and remove jupes.
152
153lua
005396ab 154---
d1b8e200
GB
155
156Provides support for Lua scripts. For an example of a fairly complex script
157have a look at the labspace repository at http://hg.quakenet.org/lua-labspace/
158
159Configuration:
160
161[lua]
c6603960
P
162#botnick=U
163#scriptsuffix=.lua
d1b8e200
GB
164scriptdir=./luascripts
165script=labspace
166
167Note: You will need to create the script directory in your newserv
168installation directory (e.g. "luascripts" in this example) and symlink the
169lua/lib directory into it.
170
171newsearch
005396ab 172---------
d1b8e200
GB
173
174Provides functionality to search for nicks and channels based on certain
175criteria.
176
e7b7b171 177nickwatch
005396ab 178---------
e7b7b171
GB
179
180Implements event-based nicksearch queries.
181
c6603960
P
182nterfacer
183---------
184
185Implements a protocol that allows external services to communicate with this
186newserv instance.
187
188You will need to implement your own client if you wish to use this.
189
190Configuration:
191
192[nterfacer]
193#debug=0
194# listening port
195#port=2438
196# Each individual permit/allowed client must have a hostname and password
197hostname=127.0.0.1
198password=changeme
199
d1b8e200 200miscreply
005396ab 201---------
d1b8e200
GB
202
203Implements rping and various other status query commands.
204
fb0b5a22
GB
205Configuration:
206
207[miscreply]
208#admin1=Located at the Union Aerospace Corp. facility, Stroggos
209#admin2=Network IRC Service
210#admin3=No administrative info available
211
e7b7b171 212patrol
005396ab 213------
e7b7b171
GB
214
215Implements functionality to spawn trojanscan swarm clones.
216
217Configuration:
218
219[patrol]
220#minpoolhosts=5000
221
fb0b5a22 222patricia, patricianick, patriciasearch
005396ab 223--------------------------------------
fb0b5a22
GB
224
225Implements finding nicks based on CIDR prefixes.
226
d1b8e200 227proxyscan
005396ab 228---------
d1b8e200
GB
229
230Does on-connect proxy scans and glines open proxies.
231
c6603960
P
232Configuration:
233
234[proxyscan]
235# listen port
236port=9999
237# bind IP
238ip=127.0.0.1
239maxscans=200
240rescaninterval=3600
241nick=P
242user=proxyscan
243host=some.host
244realname=Proxyscan
245
d1b8e200 246request
005396ab 247-------
d1b8e200 248
7e6b4e43
GB
249This is QuakeNet's channel service request bot (R).
250
251Configuration:
252
253[request]
254#nick=R
255#user=request
256#host=request.quakenet.org
257#real=Service Request v0.23
258#snick=S
259#sserver=spamscan.quakenet.org
260#qnick=Q
261#qserver=cserve.quakenet.org
c6603960
P
262#auth=R
263#authid=1780711
264# Auth to S
265#user=R
266#password=bla
d1b8e200
GB
267
268serverlist
005396ab 269----------
d1b8e200
GB
270
271Implements the serverlist command which shows various information about
272connected servers (including their network latency).
273
c6603960
P
274Configuration:
275
276[serverlist]
277q_server=CServe.quakenet.org
278s_server=services2.uk.quakenet.org
279service_re=^services\d*\..*$
280hub_re=^hub\d*\..*$
281not_client_re=^(testserv\d*\.).*$
282
d1b8e200 283settime
005396ab 284-------
d1b8e200
GB
285
286Provides commands to set the network time.
287
288splitlist
005396ab 289---------
d1b8e200
GB
290
291Keeps track of servers that were lost during a netsplit. This module is used
292by chanfix to determine when it shouldn't re-op users.
293
c6603960
P
294ticketauth
295----------
296
297Provides ticketauth, a way to authenticate to noperserv using a one-time
298ticket. It works similar to the ticket auth in chanserv.
299
300If you want to use ticketauth, you'll need to implement a method to issue
301tickets using the shared secret yourself.
302
303Configuration:
304
305[ticketauth]
306sharedsecret=
307
308sharedsecret is an arbitrary string of at most 512 characters.
309
d1b8e200 310trojanscan
005396ab 311----------
d1b8e200
GB
312
313Used to find and gline drones on the network.
314
c6603960
P
315Note that this module uses MySQL exclusively and in a blocking manner, so that
316a hanging connection to the MySQL database can and will block all network I/O.
317For this reason, you will probably want a newserv instance dedicated to running
318trojanscan if you wish to run it.
319
320Configuration:
321
322[trojanscan]
323nick=T
324ident=trojanscan
325hostname=trojanscan.quakenet.org
326realname=Trojanscan v2.73
327authname=T
328# MySQL credentials
329dbhost=localhost
330dbport=3306
331dbuser=moo
332dbpass=changeme
333db=moo
334maxchans=750
335cycletime=16000
336parttime=2600
337maxusers=20
338minchansize=150
339
d1b8e200 340trusts
005396ab 341------
d1b8e200
GB
342
343Implements connection limits. Supports the TRUST protocol which is used
fb0b5a22
GB
344by quakenet-iauthd to determine whether to allow users to connect to the
345network.
d1b8e200 346
fb0b5a22 347You will need to load the trusts_master module on exactly one of your newserv
d1b8e200
GB
348instances. All other instances should load the trusts_slave module in order
349to receive replication updates from the trusts master:
350
351[trusts]
352master=1
353#masterserver=trusts.services.netsplit.net # Only used if master=0
354
355In most cases you will also want to load the trusts_management module on
356your trusts master. This module provides commands to add, modify and delete
357trusts.
358
359If you want to enforce connection limits on your network you can use the
360trusts_policy module:
361
362[trusts_policy]
363enforcepolicy_irc=1
364enforcepolicy_auth=0
365trustport=5776
366server=gnb.netsplit.net,changeme
367server=test.gnb.netsplit.net,changeme
368
369You can use the QuakeNet IAuth daemon available at
c6603960 370https://hg.quakenet.org/iauthd/ to enforce connection limits using IAuth rather
d1b8e200
GB
371than g:lines.
372
fb0b5a22 373whowas, whowas_channels
005396ab 374-----------------------
d1b8e200
GB
375
376Keeps track of historical user records. Used by the glines module to chase
377nicks and by newsearch.
378
fb0b5a22
GB
379The whowas_channels module optionally keeps track of which channels users
380were on.
381
c6603960
P
382Configuration:
383
384[whowas]
385maxentries=1000
386
d1b8e200 387xsb
005396ab 388---
d1b8e200 389
005396ab
CP
390Provides newserv<->newserv communication capabilities. Used by the trusts
391modules to sync trusts between newserv instances.
d1b8e200
GB
392
393Configuration:
394
395[xsb]
396servicemask=*.services.netsplit.net