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