]> jfr.im git - irc/quakenet/newserv.git/blame_incremental - MODULES
Merge pull request #132 from retropc/lua_country
[irc/quakenet/newserv.git] / MODULES
... / ...
CommitLineData
1newserv Modules
2===============
3
4This is a brief overview of the newserv modules.
5
6core
7----
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
13----------------------------------------------------
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
20---------
21
22Implements functionality for creating local users that are "connected" to the
23newserv instance.
24
25control
26-------
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
34Configuration:
35
36[control]
37nick=N3
38#ident=control
39#hostname=your.hostname.here
40#realname=newserv Control Service
41#authname=C
42
43control_commands
44----------------
45
46Provides commonly-used oper commands.
47
48control_management
49------------------
50
51Provides user management commands.
52
53auth
54----
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
61-------
62
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.
66
67chanserv
68--------
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
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
95pqsql
96-----
97
98Provides support for PostgreSQL database queries.
99
100Configuration:
101
102[pqsql]
103host=127.0.0.1
104port=5432
105username=gunnar
106password=changeme
107#database=newserv
108
109dbapi2
110------
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
117---------
118
119Provides a way to spawn fake users.
120
121glines
122------
123
124Implements gline commands and general gline functionality that is used by other
125modules.
126
127geoip
128-----
129
130Provides geo-location services for other modules.
131
132Configuration:
133
134[geoip]
135#db=GeoIP.dat
136
137helpmod2
138--------
139
140This is QuakeNet's G service. It is primarily used on official support channels.
141
142invalidbans
143-----------
144
145This module automatically removes invalid IPv6 bans as these can desync channel
146modes on snircd 1.3.4a.
147
148jupe
149----
150
151Provides commands to set, list and remove jupes.
152
153lua
154---
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]
162#botnick=U
163#scriptsuffix=.lua
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
172---------
173
174Provides functionality to search for nicks and channels based on certain
175criteria.
176
177nickwatch
178---------
179
180Implements event-based nicksearch queries.
181
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
200miscreply
201---------
202
203Implements rping and various other status query commands.
204
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
212patrol
213------
214
215Implements functionality to spawn trojanscan swarm clones.
216
217Configuration:
218
219[patrol]
220#minpoolhosts=5000
221
222patricia, patricianick, patriciasearch
223--------------------------------------
224
225Implements finding nicks based on CIDR prefixes.
226
227proxyscan
228---------
229
230Does on-connect proxy scans and glines open proxies.
231
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
246request
247-------
248
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
262#auth=R
263#authid=1780711
264# Auth to S
265#user=R
266#password=bla
267
268serverlist
269----------
270
271Implements the serverlist command which shows various information about
272connected servers (including their network latency).
273
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
283settime
284-------
285
286Provides commands to set the network time.
287
288splitlist
289---------
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
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
310trojanscan
311----------
312
313Used to find and gline drones on the network.
314
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
340trusts
341------
342
343Implements connection limits. Supports the TRUST protocol which is used
344by quakenet-iauthd to determine whether to allow users to connect to the
345network.
346
347You will need to load the trusts_master module on exactly one of your newserv
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
370https://hg.quakenet.org/iauthd/ to enforce connection limits using IAuth rather
371than g:lines.
372
373whowas, whowas_channels
374-----------------------
375
376Keeps track of historical user records. Used by the glines module to chase
377nicks and by newsearch.
378
379The whowas_channels module optionally keeps track of which channels users
380were on.
381
382Configuration:
383
384[whowas]
385maxentries=1000
386
387xsb
388---
389
390Provides newserv<->newserv communication capabilities. Used by the trusts
391modules to sync trusts between newserv instances.
392
393Configuration:
394
395[xsb]
396servicemask=*.services.netsplit.net