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