]> jfr.im git - irc/quakenet/newserv.git/blame - MODULES
Implement support for user modes +q and +Q.
[irc/quakenet/newserv.git] / MODULES
CommitLineData
d1b8e200
GB
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
34You can create a user on your control instance using /msg N hello (where N is
35the nick of your control instance). You need to be opered in order to use this
36command.
37
38Once you have an account you should have a look at /msg N showcommands for a
39list of available commands.
40
41Configuration:
42
43[control]
44nick=N3
45
46auth
47~~~
48
49Supports sending AC tokens. You should only use this module if you don't have
50some other form of authentication service on your network (such as Q). This
51module lets opers use arbitrary account names and IDs.
52
53chanfix
54~~~~~~
55
56Keeps track of channel ops and can be used to re-op opless channels.
57
58chanserv
59~~~~~~~
60
61This is QuakeNet's channel service (Q). In order to load this module you will
62need also need to load the pqsql module.
63
64pqsql
65~~~~
66
67Provides support for PostgreSQL database queries.
68
69Configuration:
70
71[pqsql]
72host=127.0.0.1
73port=5432
74username=gunnar
75password=changeme
76
77dbapi2
78~~~~~
79
80Implements database functionality used by some other modules. In addition to
81loading the dbapi2 module you will also need to load one of the database
82provider modules: sqlite-dbapi2 or pqsql-dbapi2
83
84fakeusers
85~~~~~~~~
86
87Provides a way to spawn fake users.
88
89glines
90~~~~~
91
92Implements gline commands and general gline functionality that is used by other
93modules.
94
95helpmod2
96~~~~~~~
97
98This is QuakeNet's G service. It is primarily used on official support channels.
99
100invalidbans
101~~~~~~~~~~
102
103This module automatically removes invalid IPv6 bans as these can desync channel
104modes on snircd 1.3.4a.
105
106jupe
107~~~
108
109Provides commands to set, list and remove jupes.
110
111lua
112~~
113
114Provides support for Lua scripts. For an example of a fairly complex script
115have a look at the labspace repository at http://hg.quakenet.org/lua-labspace/
116
117Configuration:
118
119[lua]
120scriptdir=./luascripts
121script=labspace
122
123Note: You will need to create the script directory in your newserv
124installation directory (e.g. "luascripts" in this example) and symlink the
125lua/lib directory into it.
126
127newsearch
128~~~~~~~~
129
130Provides functionality to search for nicks and channels based on certain
131criteria.
132
133miscreply
134~~~~~~~~
135
136Implements rping and various other status query commands.
137
138proxyscan
139~~~~~~~~
140
141Does on-connect proxy scans and glines open proxies.
142
143request
144~~~~~~
145
146This is QuakeNet's channel service request bot (R). Some of the module
147parameters are not configurable - instead you will have to modify the
148request/request.h header file and recompile the module.
149
150serverlist
151~~~~~~~~~
152
153Implements the serverlist command which shows various information about
154connected servers (including their network latency).
155
156settime
157~~~~~~
158
159Provides commands to set the network time.
160
161splitlist
162~~~~~~~~
163
164Keeps track of servers that were lost during a netsplit. This module is used
165by chanfix to determine when it shouldn't re-op users.
166
167trojanscan
168~~~~~~~~~
169
170Used to find and gline drones on the network.
171
172trusts
173~~~~~
174
175Implements connection limits. Supports the TRUST protocol which is used
176by quakenet-iauthd to determine whether to allow users on the network.
177
178You will need to load the trusts_master module on one of your newserv
179instances. All other instances should load the trusts_slave module in order
180to receive replication updates from the trusts master:
181
182[trusts]
183master=1
184#masterserver=trusts.services.netsplit.net # Only used if master=0
185
186In most cases you will also want to load the trusts_management module on
187your trusts master. This module provides commands to add, modify and delete
188trusts.
189
190If you want to enforce connection limits on your network you can use the
191trusts_policy module:
192
193[trusts_policy]
194enforcepolicy_irc=1
195enforcepolicy_auth=0
196trustport=5776
197server=gnb.netsplit.net,changeme
198server=test.gnb.netsplit.net,changeme
199
200You can use the QuakeNet IAuth daemon available at
201http://hg.quakenet.org/iauthd/ to enforce connection limits using IAuth rather
202than g:lines.
203
204whowas
205~~~~~
206
207Keeps track of historical user records. Used by the glines module to chase
208nicks and by newsearch.
209
210xsb
211~~
212
213Provides replication capabilities. Used by the trusts modules to sync
214trusts between newserv instances.
215
216Configuration:
217
218[xsb]
219servicemask=*.services.netsplit.net