]>
Commit | Line | Data |
---|---|---|
d1b8e200 GB |
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 | |
fb0b5a22 GB |
45 | #ident=control |
46 | #hostname=your.hostname.here | |
47 | #realname=NewServ Control Service | |
48 | #authname=C | |
d1b8e200 | 49 | |
e7b7b171 GB |
50 | control_commands |
51 | ~~~~~~~~~~~~~~~ | |
52 | ||
53 | Provides commonly-used oper commands. | |
54 | ||
55 | control_management | |
56 | ~~~~~~~~~~~~~~~~~ | |
57 | ||
58 | Provides user management commands. | |
59 | ||
d1b8e200 GB |
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 | ||
fb0b5a22 GB |
109 | geoip |
110 | ~~~~ | |
111 | ||
112 | Provides geo-location services for other modules. | |
113 | ||
114 | Configuration: | |
115 | ||
116 | [geoip] | |
117 | #db=GeoIP.dat | |
118 | ||
d1b8e200 GB |
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 | ||
e7b7b171 GB |
157 | nickwatch |
158 | ~~~~~~~~ | |
159 | ||
160 | Implements event-based nicksearch queries. | |
161 | ||
d1b8e200 GB |
162 | miscreply |
163 | ~~~~~~~~ | |
164 | ||
165 | Implements rping and various other status query commands. | |
166 | ||
fb0b5a22 GB |
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 | ||
e7b7b171 GB |
174 | patrol |
175 | ~~~~~ | |
176 | ||
177 | Implements functionality to spawn trojanscan swarm clones. | |
178 | ||
179 | Configuration: | |
180 | ||
181 | [patrol] | |
182 | #minpoolhosts=5000 | |
183 | ||
fb0b5a22 GB |
184 | patricia, patricianick, patriciasearch |
185 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
186 | ||
187 | Implements finding nicks based on CIDR prefixes. | |
188 | ||
d1b8e200 GB |
189 | proxyscan |
190 | ~~~~~~~~ | |
191 | ||
192 | Does on-connect proxy scans and glines open proxies. | |
193 | ||
194 | request | |
195 | ~~~~~~ | |
196 | ||
7e6b4e43 GB |
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 | |
d1b8e200 GB |
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 | |
fb0b5a22 GB |
237 | by quakenet-iauthd to determine whether to allow users to connect to the |
238 | network. | |
d1b8e200 | 239 | |
fb0b5a22 | 240 | You will need to load the trusts_master module on exactly one of your newserv |
d1b8e200 GB |
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 | ||
fb0b5a22 GB |
266 | whowas, whowas_channels |
267 | ~~~~~~~~~~~~~~~~~~~~~~ | |
d1b8e200 GB |
268 | |
269 | Keeps track of historical user records. Used by the glines module to chase | |
270 | nicks and by newsearch. | |
271 | ||
fb0b5a22 GB |
272 | The whowas_channels module optionally keeps track of which channels users |
273 | were on. | |
274 | ||
d1b8e200 GB |
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 |