]>
Commit | Line | Data |
---|---|---|
d1b8e200 | 1 | newserv Modules |
005396ab | 2 | =============== |
d1b8e200 GB |
3 | |
4 | This is a brief overview of the newserv modules. | |
5 | ||
6 | core | |
005396ab | 7 | ---- |
d1b8e200 GB |
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 | |
005396ab | 13 | ---------------------------------------------------- |
d1b8e200 GB |
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 | |
005396ab | 20 | --------- |
d1b8e200 GB |
21 | |
22 | Implements functionality for creating local users that are "connected" to the | |
23 | newserv instance. | |
24 | ||
25 | control | |
005396ab | 26 | ------- |
d1b8e200 GB |
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 | ||
d1b8e200 GB |
34 | Configuration: |
35 | ||
36 | [control] | |
37 | nick=N3 | |
fb0b5a22 GB |
38 | #ident=control |
39 | #hostname=your.hostname.here | |
005396ab | 40 | #realname=newserv Control Service |
fb0b5a22 | 41 | #authname=C |
d1b8e200 | 42 | |
e7b7b171 | 43 | control_commands |
005396ab | 44 | ---------------- |
e7b7b171 GB |
45 | |
46 | Provides commonly-used oper commands. | |
47 | ||
48 | control_management | |
005396ab | 49 | ------------------ |
e7b7b171 GB |
50 | |
51 | Provides user management commands. | |
52 | ||
d1b8e200 | 53 | auth |
005396ab | 54 | ---- |
d1b8e200 GB |
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 | |
005396ab | 61 | ------- |
d1b8e200 GB |
62 | |
63 | Keeps track of channel ops and can be used to re-op opless channels. | |
64 | ||
65 | chanserv | |
005396ab | 66 | -------- |
d1b8e200 GB |
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 | |
005396ab | 72 | ----- |
d1b8e200 GB |
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 | |
005396ab | 85 | ------ |
d1b8e200 GB |
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 | |
005396ab | 92 | --------- |
d1b8e200 GB |
93 | |
94 | Provides a way to spawn fake users. | |
95 | ||
96 | glines | |
005396ab | 97 | ------ |
d1b8e200 GB |
98 | |
99 | Implements gline commands and general gline functionality that is used by other | |
100 | modules. | |
101 | ||
fb0b5a22 | 102 | geoip |
005396ab | 103 | ----- |
fb0b5a22 GB |
104 | |
105 | Provides geo-location services for other modules. | |
106 | ||
107 | Configuration: | |
108 | ||
109 | [geoip] | |
110 | #db=GeoIP.dat | |
111 | ||
d1b8e200 | 112 | helpmod2 |
005396ab | 113 | -------- |
d1b8e200 GB |
114 | |
115 | This is QuakeNet's G service. It is primarily used on official support channels. | |
116 | ||
117 | invalidbans | |
005396ab | 118 | ----------- |
d1b8e200 GB |
119 | |
120 | This module automatically removes invalid IPv6 bans as these can desync channel | |
121 | modes on snircd 1.3.4a. | |
122 | ||
123 | jupe | |
005396ab | 124 | ---- |
d1b8e200 GB |
125 | |
126 | Provides commands to set, list and remove jupes. | |
127 | ||
128 | lua | |
005396ab | 129 | --- |
d1b8e200 GB |
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 | |
005396ab | 145 | --------- |
d1b8e200 GB |
146 | |
147 | Provides functionality to search for nicks and channels based on certain | |
148 | criteria. | |
149 | ||
e7b7b171 | 150 | nickwatch |
005396ab | 151 | --------- |
e7b7b171 GB |
152 | |
153 | Implements event-based nicksearch queries. | |
154 | ||
d1b8e200 | 155 | miscreply |
005396ab | 156 | --------- |
d1b8e200 GB |
157 | |
158 | Implements rping and various other status query commands. | |
159 | ||
fb0b5a22 GB |
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 | ||
e7b7b171 | 167 | patrol |
005396ab | 168 | ------ |
e7b7b171 GB |
169 | |
170 | Implements functionality to spawn trojanscan swarm clones. | |
171 | ||
172 | Configuration: | |
173 | ||
174 | [patrol] | |
175 | #minpoolhosts=5000 | |
176 | ||
fb0b5a22 | 177 | patricia, patricianick, patriciasearch |
005396ab | 178 | -------------------------------------- |
fb0b5a22 GB |
179 | |
180 | Implements finding nicks based on CIDR prefixes. | |
181 | ||
d1b8e200 | 182 | proxyscan |
005396ab | 183 | --------- |
d1b8e200 GB |
184 | |
185 | Does on-connect proxy scans and glines open proxies. | |
186 | ||
187 | request | |
005396ab | 188 | ------- |
d1b8e200 | 189 | |
7e6b4e43 GB |
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 | |
d1b8e200 GB |
203 | |
204 | serverlist | |
005396ab | 205 | ---------- |
d1b8e200 GB |
206 | |
207 | Implements the serverlist command which shows various information about | |
208 | connected servers (including their network latency). | |
209 | ||
210 | settime | |
005396ab | 211 | ------- |
d1b8e200 GB |
212 | |
213 | Provides commands to set the network time. | |
214 | ||
215 | splitlist | |
005396ab | 216 | --------- |
d1b8e200 GB |
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 | |
005396ab | 222 | ---------- |
d1b8e200 GB |
223 | |
224 | Used to find and gline drones on the network. | |
225 | ||
226 | trusts | |
005396ab | 227 | ------ |
d1b8e200 GB |
228 | |
229 | Implements connection limits. Supports the TRUST protocol which is used | |
fb0b5a22 GB |
230 | by quakenet-iauthd to determine whether to allow users to connect to the |
231 | network. | |
d1b8e200 | 232 | |
fb0b5a22 | 233 | You will need to load the trusts_master module on exactly one of your newserv |
d1b8e200 GB |
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 | ||
fb0b5a22 | 259 | whowas, whowas_channels |
005396ab | 260 | ----------------------- |
d1b8e200 GB |
261 | |
262 | Keeps track of historical user records. Used by the glines module to chase | |
263 | nicks and by newsearch. | |
264 | ||
fb0b5a22 GB |
265 | The whowas_channels module optionally keeps track of which channels users |
266 | were on. | |
267 | ||
d1b8e200 | 268 | xsb |
005396ab | 269 | --- |
d1b8e200 | 270 | |
005396ab CP |
271 | Provides newserv<->newserv communication capabilities. Used by the trusts |
272 | modules to sync trusts between newserv instances. | |
d1b8e200 GB |
273 | |
274 | Configuration: | |
275 | ||
276 | [xsb] | |
277 | servicemask=*.services.netsplit.net |