-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
537 lines (440 loc) · 13.8 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
GameSurge ircd config management tool
REQUIREMENTS
libpq/PostgreSQL
libssh2 (http://www.libssh2.org/)
readline
ARGUMENTS
-w, --workdir 'path'
Change the working directory
-s, --ssh-passphrase 'secret'
Set the default SSH passphrase.
No argument or '-' will prompt it via stdin.
-d, --debug
Toggles debug mode.
-b, --batch 'command'
Executes a command and terminates when finished.
Can be used multiple times.
Note that only commands which require no user interaction
should be executed in batch mode.
-c, --no-colors
Disables colorful output.
FILES
~/.gsconf_dir
Default working directory.
May be changed with the -w argument.
gsconf.cfg
Main config file.
See gsconf.cfg.example.
COMMON TASKS
Push changes to the servers
Run 'commit'.
If you want to ensure the generated configs are compared
with the remote ones instead of the local ones (from the
last commit), use 'commit --check-remote'.
Create a server
Run 'addserver' and 'install <server>' and follow the
steps displayed.
Set the primary hub for a server
Run 'autoconnect <server> <hub> on'.
This will automatically disable autoconnect for all
other hubs the server is linked to.
Add a hostmask to an oper
Run 'modoper <name> --addmask <mask>'
Add a new bot server client authorization
Run 'addclientgroup' to add the group and the first
ident/host/ip combination.
Add/remove ident/host/ip combinations for a client authorization group
Run 'editclients <groupname> <server>'.
This will display a list of current combinations and ask
you if you want to delete/add combinations.
Check if server configs have been changed manually.
Run 'checkconf'.
This will compare all remote configs against the ones
cached during the last commit.
CONFIG MANAGEMENT
commit [args] [server]
quicksync [args] [server]
conf quicksync [args] [server]
Generate local config files and upload them to the servers.
This command should be used after any changes!
The following arguments are supported:
--check-remote
Check remote configs if they need to be updated
instead of only checking the local copies.
--update
Automatically update without confirmation.
--rehash
Automatically rehash without confirmation.
--no-rehash
Never rehash and do not ask for confirmation.
rehash <server>
conf rehash <server>
Send SIGHUP to the specified server's ircd process
checkconf [server]
Check remote config file(s) for modifications.
Only usable if live configs exist locally, i.e. not
before the first local->server sync.
conf get-missing
Download all configs from servers which do not exist
locally.
buildconfs [server]
conf build [server]
Generate config file(s).
syncconfs [args] [server]
conf sync [args] [server]
Upload local config files to the servers.
This command can only be used after running `buildconfs'.
Usually it is better to use `commit' which both builds
and syncs the config files.
The following arguments are supported:
--check-remote
Check remote configs if they need to be updated
instead of only checking the local copies.
--update
Automatically update without confirmation.
--rehash
Automatically rehash without confirmation.
--no-rehash
Never rehash and do not ask for confirmation.
getconf <server>
Download the config from the specified server and save
it as a remote config.
Usually not needed.
putconf <server>
Upload the local 'live' config to the specified server.
Usually not needed.
CONNCLASS MANAGEMENT
classes
class list
Display a list of all client connection classes.
classinfo <name>
class info <name>
Display detailed information about a class, including
detailed privileges, opers and clients.
addclass
class add
Create a new client connection class.
Prompts for name, pingfreq, maxlinks, sendQ, recvQ, umodes,
fakehost and opertype.
delclass <name>
class del <name>
Delete the specified client connection class.
Only classes which are not used by any clients/opers can be
deleted. Otherwise the clients/oper using the class are displayed.
modclass <name> <args...>
classmod <name> <args...>
class mod <name> <args...>
class edit <name> <args...>
Modify the specified client connection class.
The following arguments are supported:
--fakehost fakehost
Set the default fakehost.
Setting it to '*' removes it.
--maxlinks number
Set the maxlinks, i.e. the max number
of clients allowed in the class.
Setting it to 0 will not limit them.
--pingfreq 'duration'
Set the ping frequency.
Must be an ircu-style duration.
--sendq bytes
--recvq bytes
Set the sendQ/recvQ buffer size.
--umode
Set the default usermode.
Setting it to '*' removes it.
--priv priv value
Set the specified privilege.
'priv' can be 'chan_limit', 'die', 'flood',
'gline_immune', 'local', 'notargetlimit',
'pseudoflood', 'restart', 'umode_chserv',
'umode_nochan' or 'umode_noidle'.
'value' can be 'yes', 'no' or 'inherit'.
CLIENT AUTHORIZATION MANAGEMENT
clients
client list
Display a list of all client authorizations.
addclientgroup
client addgroup
Create a new client authorization group.
Prompts for name, server, connclass, ident, ip, host,
password and maxlinks.
delclientgroup <groupname> <server>
client delgroup <groupname> <server>
Delete the specified client authorization group on the
specified server.
modclientgroup <groupname> <server> <args...>
clientmodgroup <groupname> <server> <args...>
client modgroup <groupname> <server> <args...>
Modify the specified client authorization.
The following arguments are supported:
--class connclass
Set the connection class.
--maxlinks number
Set the max. number of clients.
Setting it to '*' will use the connclass default.
--password
Set the password the client must specify.
Setting it to '*' will remove the password requirement.
editclients <groupname> <server>
client editclients <groupname> <server>
Edit the clients in the specified client authorization group.
Allows both deleting and adding of ident/host/ip combinations
for the client authorization group.
FORWARD MANAGEMENT
forwards
forward list
Display a list of all forwards.
addforward
forward add
Create a new forward.
Prompts for prefix, target and server.
delforward <prefix> [server]
forward del <prefix> [server]
Delete the specified forward.
NICK JUPE MANAGEMENT
jupes
jupe list
Display a list of all nick jupes.
addjupe
jupe add
Create a new jupe.
Prompts for name and nicks.
deljupe <name>
jupe del <name>
Delete the specified jupe.
SERVER LINK MANAGEMENT
links
link list
Display a list of all server/service links and their
autoconnect states.
addlink
link add
Create a new link between a server/service and a hub.
Prompts for server, hub and autoconnect state.
dellink <server|service> <hub>
link del <server|service> <hub>
Delete the specified link.
autoconnect <server> <hub> <on|off>
link autoconnect <server> <hub> <on|off>
Set the autoconnect state of the specified link.
IRC OPERATOR MANAGEMENT
opers
oper list
Display a list of all opers.
operinfo <name>
oper info <name>
Display detailed information about an oper, including
detailed privileges and hostmasks.
addoper
oper add
Create a new oper.
Prompts for internal name, username, password, connclass,
globalness, servers and hostmasks.
deloper <name>
oper del <name>
Delete an oper.
Prompts for confirmation.
modoper <name> <args...>
opermod <name> <args...>
oper mod <name> <args...>
oper edit <name> <args...>
Modify the specified oper.
The following arguments are supported:
--addmask hostmask
Add a new ident@host mask.
--delmask hostmask
Remove the specified host mask.
--addserver server
Add the oper to the specified server.
--delserver server
Remove the oper from the specified server.
--class connclass
Set the connection class.
--password
Set the oper password.
--suspend
--unsuspend
Suspend/unsuspend the oper (removes his
oper blocks).
--username name
Set the /oper user name.
--priv priv value
Set the specified privilege.
'priv' can be 'chan_limit', 'die', 'flood',
'gline_immune', 'local', 'notargetlimit',
'pseudoflood', 'restart', 'umode_chserv',
'umode_nochan' or 'umode_noidle'.
'value' can be 'yes', 'no' or 'inherit'.
PSEUDO COMMAND MANAGEMENT
pseudos
pseudo list
Display a list of all pseudo commands.
addpseudo
pseudo add
Create a new pseudo command.
Prompts for command, server, target and prepend string.
delpseudo <name> <server|*>
pseudo del <name> <server|*>
Delete the specified pseudo command.
SERVER MANAGEMENT
servers
server list
Display a list of all servers.
serverinfo <server>
server info <server>
Display detailed information about a server, including
link information, ports, opers, clients, jupes and webirc.
exec <server|*> <command>
Execute a shell commands on the specified server.
Output is displayed in realtime.
Using '*' as the server name will execute the command
on all servers and will prompt for confirmation.
putfile <server|*> <local> <remote> [perms]
Upload the specified file to the specified server.
Using '*' as the server name will upload the file
to all servers.
If no perms are given, 0600 will be used.
connect <server|*>
Open a persistent ssh connection to the specified server.
Using '*' as the server name will upload the file
to all servers.
addserver
server add
Create a new server.
Prompts for name, type, numeric, link pass, ips, server
port, description, contact/location/provider information,
connexit snotice flag and SSH login information.
If the server is connected to another server via a
private network, a private ip and a subnet mask must
be entered to ensure proper connectivity from/to both
the hubs in the private network and those which are only
available through public addresses.
delserver <server>
server del <server>
Delete a server.
Prompts for confirmation.
renameserver <server>
server rename <server>
Rename a server.
Prompts for the new name.
editserver <server>
server edit <server>
Edit the specified server.
Prompts for type, numeric, link pass, ips, server port,
description, contact/location/provider information,
connexit snotice flag and SSH login information.
Note that the type cannot be change from/to HUB.
To convert a server to a hub/non-hub, you need to delete
and re-add it.
install <server> [option]
server install <server> [option]
Installs the ircd on the specified server.
The following options are supported, but mainly needed
if a step fails:
--reinstall
Skip the check if ~/ircu exists.
--upload
Upload the source archive even if it alraedy
exists.
Note: Using this switch forces deletion of
the existing source folder.
--unpack
Skip the check if the ircu source archive
exists.
--configure
Start with 'configure' (e.g. if the source
was unpacked manually).
--build
Compile the ircd (e.g. if configure was
run manually).
--install
Install the ircd (e.g. if make was run
manually).
--no-install
--build-only
Stop before executing the 'make install' step.
This option can also be used AFTER another
option.
addport <server>
server addport <server>
Add a port to a server.
Prompts for port number, port type, visibility and
optional bind ip.
If no port is specified, all existing client ports will
be copied with the specified IP, which is required in
this case.
If no ip is specified, the default private/public one
is used depending on the port type.
delport <server> <port> [ip]
server delport <server> <port> [ip]
Delete the specified port.
Prompts for confirmation if ip is not specified and the
port exists on multiple ips.
server addjupe <server> <jupe>
Add the specified nick jupe to the specified server.
server deljupe <server> <jupe>
Remove the specified nick jupe from the specified server.
server addwebirc <server> <webirc-name>
Add the specified webirc authorization to the specified
server.
server delwebirc <server> <webirc-name>
Remove the specified webirc authorization from the
specified server.
SERVICE MANAGEMENT
services
service list
Display a list of all services.
addservice
service add
Create a new service.
Prompts for name, numeric, ip, link pass, hub flag and
uworld flag.
delservice <name>
service del <name>
Delete the specified service.
editservice <name>
service edit <name>
Edit the specified service.
Prompts for numeric, ip, link pass, hub flag and uworld flag.
WEBIRC MANAGEMENT
webircs
webirc list
Display a list of all webirc authorizations.
addwebirc
webirc add
Create a new webirc authorization.
Prompts for name, description, ip, password, ident and
hmac settings.
delwebirc <name>
webirc del <name>
Delete the specified webirc authorization.
editwebirc <name>
webirc edit <name>
Edit the specified webirc authorization.
Prompts for description, ip, password, ident and hmac
settings.
FEATURE MANAGEMENT
features
feature list
Display a list of all ircd features.
delfeature <name> <*|server-type>
feature del <name> <*|server-type>
Delete the specified feature.
Valid server types are '*' for the default, LEAF, HUB,
BOTS and STAFF.
setfeature <name> <*|server-type>
feature set <name> <*|server-type>
Set the specified feature for the specified server type.
This command can both edit existing features or add new
ones.
Valid server types are '*' for the default, LEAF, HUB,
BOTS and STAFF.
MISC
commands
Display a list of all available commands and their aliases.
help <command>
Display a short description if the specified command.
exit
quit
Quit the application.