]> jfr.im git - irc/quakenet/newserv.git/blob - MODULES
CHANSERV: tell user when they can't attempts to auth any more, and drop max attempts...
[irc/quakenet/newserv.git] / MODULES
1 newserv Modules
2 ===============
3
4 This is a brief overview of the newserv modules.
5
6 core
7 ----
8
9 This is not actually a module. Instead, this is the code of the "newserv" binary
10 which provides minimal support for loading modules.
11
12 authext, bans, chanindex, channel, irc, nick, server
13 ----------------------------------------------------
14
15 These modules provide basic support for accounts, channels, nicks and server
16 connections. Virtually all other modules depend on at least some of these
17 modules.
18
19 localuser
20 ---------
21
22 Implements functionality for creating local users that are "connected" to the
23 newserv instance.
24
25 control
26 -------
27
28 Spawns the control user for your newserv instance. The control user provides
29 an IRC-based interface for newserv commands, e.g. to manage loaded modules
30 and modify user accounts.
31
32 Other modules can register their own commands.
33
34 Configuration:
35
36 [control]
37 nick=N3
38 #ident=control
39 #hostname=your.hostname.here
40 #realname=newserv Control Service
41 #authname=C
42
43 control_commands
44 ----------------
45
46 Provides commonly-used oper commands.
47
48 control_management
49 ------------------
50
51 Provides user management commands.
52
53 auth
54 ----
55
56 Supports sending AC tokens. You should only use this module if you don't have
57 some other form of authentication service on your network (such as Q). This
58 module lets opers use arbitrary account names and IDs.
59
60 chanfix
61 -------
62
63 Keeps track of channel ops and can be used to re-op opless channels.
64
65 chanserv
66 --------
67
68 This is QuakeNet's channel service (Q). In order to load this module you will
69 need also need to load the pqsql module.
70
71 pqsql
72 -----
73
74 Provides support for PostgreSQL database queries.
75
76 Configuration:
77
78 [pqsql]
79 host=127.0.0.1
80 port=5432
81 username=gunnar
82 password=changeme
83
84 dbapi2
85 ------
86
87 Implements database functionality used by some other modules. In addition to
88 loading the dbapi2 module you will also need to load one of the database
89 provider modules: sqlite-dbapi2 or pqsql-dbapi2
90
91 fakeusers
92 ---------
93
94 Provides a way to spawn fake users.
95
96 glines
97 ------
98
99 Implements gline commands and general gline functionality that is used by other
100 modules.
101
102 geoip
103 -----
104
105 Provides geo-location services for other modules.
106
107 Configuration:
108
109 [geoip]
110 #db=GeoIP.dat
111
112 helpmod2
113 --------
114
115 This is QuakeNet's G service. It is primarily used on official support channels.
116
117 invalidbans
118 -----------
119
120 This module automatically removes invalid IPv6 bans as these can desync channel
121 modes on snircd 1.3.4a.
122
123 jupe
124 ----
125
126 Provides commands to set, list and remove jupes.
127
128 lua
129 ---
130
131 Provides support for Lua scripts. For an example of a fairly complex script
132 have a look at the labspace repository at http://hg.quakenet.org/lua-labspace/
133
134 Configuration:
135
136 [lua]
137 scriptdir=./luascripts
138 script=labspace
139
140 Note: You will need to create the script directory in your newserv
141 installation directory (e.g. "luascripts" in this example) and symlink the
142 lua/lib directory into it.
143
144 newsearch
145 ---------
146
147 Provides functionality to search for nicks and channels based on certain
148 criteria.
149
150 nickwatch
151 ---------
152
153 Implements event-based nicksearch queries.
154
155 miscreply
156 ---------
157
158 Implements rping and various other status query commands.
159
160 Configuration:
161
162 [miscreply]
163 #admin1=Located at the Union Aerospace Corp. facility, Stroggos
164 #admin2=Network IRC Service
165 #admin3=No administrative info available
166
167 patrol
168 ------
169
170 Implements functionality to spawn trojanscan swarm clones.
171
172 Configuration:
173
174 [patrol]
175 #minpoolhosts=5000
176
177 patricia, patricianick, patriciasearch
178 --------------------------------------
179
180 Implements finding nicks based on CIDR prefixes.
181
182 proxyscan
183 ---------
184
185 Does on-connect proxy scans and glines open proxies.
186
187 request
188 -------
189
190 This is QuakeNet's channel service request bot (R).
191
192 Configuration:
193
194 [request]
195 #nick=R
196 #user=request
197 #host=request.quakenet.org
198 #real=Service Request v0.23
199 #snick=S
200 #sserver=spamscan.quakenet.org
201 #qnick=Q
202 #qserver=cserve.quakenet.org
203
204 serverlist
205 ----------
206
207 Implements the serverlist command which shows various information about
208 connected servers (including their network latency).
209
210 settime
211 -------
212
213 Provides commands to set the network time.
214
215 splitlist
216 ---------
217
218 Keeps track of servers that were lost during a netsplit. This module is used
219 by chanfix to determine when it shouldn't re-op users.
220
221 trojanscan
222 ----------
223
224 Used to find and gline drones on the network.
225
226 trusts
227 ------
228
229 Implements connection limits. Supports the TRUST protocol which is used
230 by quakenet-iauthd to determine whether to allow users to connect to the
231 network.
232
233 You will need to load the trusts_master module on exactly one of your newserv
234 instances. All other instances should load the trusts_slave module in order
235 to receive replication updates from the trusts master:
236
237 [trusts]
238 master=1
239 #masterserver=trusts.services.netsplit.net # Only used if master=0
240
241 In most cases you will also want to load the trusts_management module on
242 your trusts master. This module provides commands to add, modify and delete
243 trusts.
244
245 If you want to enforce connection limits on your network you can use the
246 trusts_policy module:
247
248 [trusts_policy]
249 enforcepolicy_irc=1
250 enforcepolicy_auth=0
251 trustport=5776
252 server=gnb.netsplit.net,changeme
253 server=test.gnb.netsplit.net,changeme
254
255 You can use the QuakeNet IAuth daemon available at
256 http://hg.quakenet.org/iauthd/ to enforce connection limits using IAuth rather
257 than g:lines.
258
259 whowas, whowas_channels
260 -----------------------
261
262 Keeps track of historical user records. Used by the glines module to chase
263 nicks and by newsearch.
264
265 The whowas_channels module optionally keeps track of which channels users
266 were on.
267
268 xsb
269 ---
270
271 Provides newserv<->newserv communication capabilities. Used by the trusts
272 modules to sync trusts between newserv instances.
273
274 Configuration:
275
276 [xsb]
277 servicemask=*.services.netsplit.net