1BIP.CONF(5)                   File Formats Manual                  BIP.CONF(5)
2
3
4

NAME

6       bip.conf - Configuration file for BIP IRC Proxy
7
8

SYNOPSIS

10       ~/.bip/bip.conf
11
12

DESCRIPTION

14       A BIP configuration file consists of a list of variable affectations or
15       sections. It contains the global options, networks  definitions,  users
16       configuration,   users   connections   declarations.  Each  section  is
17       described in this manpage.
18
19       The bip.conf skeleton should be something like this :
20
21       option1 = value;
22       option2 = value;
23        ...
24
25       network {
26           net_opt = value;
27           ...
28           server { ... };
29           server { ... };
30       };
31        ...
32
33       user {
34           user_opt = value;
35           ...
36           connection {
37               conn_opt = value;
38               ...
39               channel { ... };
40           };
41           connection {
42               conn_opt = value;
43               ...
44               channel { ... };
45               channel { ... };
46               ...
47           };
48       };
49
50

SYNTAX RULES

52       The syntax is quite simple :
53
54              ·   everything after the # character is ignored (comments)
55
56              ·   each variable affectation must be finished with a ;
57
58              ·   each section { } must be finished with a ;
59
60       If you use vim you will probably want to  use  vim  with  the  provided
61       bip.vim  syntax  file  to avoid common syntax and lexical mistakes. You
62       can also find an example configuration file along with BIP.
63
64       By default, bipdir is the $HOME/.bip directory and the parent directory
65       for  client certificate, configuration, logs, pid, oidentd. If environ‐
66       ment variable $HOME doesn't exist, -s parameter must be used.
67
68

GLOBAL OPTIONS

70       client_side_ssl (default: false)
71              When true, clients will  need  to  connect  to  BIP  using  SSL.
72              You'll   also   need   to   generate  a  SSL  cert/key  pair  in
73              bipdir/bip.pem (usually ~/.bip/bip.pem or  /var/lib/bip/bip.pem)
74              or client_side_ssl_pem if defined.
75
76
77       client_side_ssl_pem (default: <bipdir>/bip.pem)
78              Set this to the full path of the cert/key pair bip should use to
79              accept clients SSL connections.
80
81
82       client_side_ciphers
83              OpenSSL cipher lists used for clients SSL  connections.  If  not
84              set, OpenSSL default ciphers will be used.
85
86
87       client_side_dh_param DH parameters filename (default: <bipdir>/dh.pem)
88              Used  for  clients  SSL  connections,  Supply  at least 2048-bit
89              parameters.
90
91
92       ssl_default_ciphers
93              OpenSSL cipher lists used for server connections.  If  not  set,
94              OpenSSL default ciphers will be used.
95
96
97       ip (default: 0.0.0.0)
98              Listening IP address. This is the IP address bip will listen for
99              incoming client connections.
100
101
102       log (default: true)
103              When true, the log system is enabled. Else, BIP will not write a
104              single log file. Backlog is then stored into memory.
105
106
107       log_system (default: true)
108              When true, system messages such as connection errors are logged.
109              Else, BIP will not write system logs.
110
111
112       log_format (default: %u/%n/%Y-%m/%c.%d.log)
113              Determines the log filename depending on :
114              - %u username (name in user { }; section)
115              - %n network name (name in connection { }; section)
116              - %c channel name
117              - %Y 4 digits year
118              - %m 2 digits month
119              - %d 2 digits day
120
121
122       log_level (default: 1)
123              Specify the verbosity of BIP from 0 (fatal errors)  to  6  (huge
124              debug output)
125
126
127       log_root (default: <bipdir>/logs
128              Main  log  directory.  Sub-directories and files will be created
129              from there depending on log_format.
130
131
132       log_sync_interval (default: 5)
133              Defines the delay between each logfiles sync to the  disk.  Must
134              be a non null positive integer.
135
136
137       reconn_timer (default: 120)
138              Defines  the  initial  delay  (in seconds) before a reconnection
139              attempt.  The delay increases with the number of attempts: delay
140              = reconn_timer * number of attempts
141
142
143       pid_file (default: <bipdir>/bip.pid)
144              Defines  the  file where BIP's pid will be stored. BIP checks if
145              this file exists and if the pid is still alive upon startup.  If
146              true, BIP refuses to start.
147
148
149       oidentd_file (default: <bipdir>/.oidentd.conf)
150              oidentd configuration file (if oidentd enabled).
151
152
153       port (default: 7778)
154              The port on which BIP should listen for clients.
155
156

NETWORK SECTION

158       This  section allows you to declare a network for use in the connection
159       sections. It may appear more than once in the configuration file.
160
161
162       ssl (default: false)
163              If true, BIP will connect to this network using  SSL  only.  You
164              cannot  mix  SSL servers and non-SSL servers in the same network
165              section. This is by choice, we believe it's a bad idea.
166
167
168       ssl_ciphers (override global ssl_default_ciphers)
169              OpenSSL cipher lists used for this network.
170
171
172       name   It's the network name used in  the  connection  section.  Please
173              note  that  this  value is not used in log_format, since it uses
174              the variable name from the connection section.
175
176

SERVER SUB-SECTION

178       BIP will cycle through the server sections list when reconnecting to  a
179       network.  It may appear more than once in a network section.
180
181
182       host   The server's hostname or IP address.
183
184
185       port (default: 6667)
186              The server port to connect to.
187
188

USER SECTION

190       This  section  allows you to define the users allowed to connect to BIP
191       and their options. It may appear more than once  in  the  configuration
192       file.
193
194
195       admin (default: false)
196              If  a user has admin set to true, he'll become a bip administra‐
197              tor, which allows him for example to reload bip from IRC  or  to
198              see the user configuration.
199
200
201       backlog (default: true)
202              Enable or disable the whole backlog system, which allows clients
203              to see a log replay upon connection.
204
205
206       backlog_always (default: false)
207              If true, clients will always receive  backlog_lines  log  lines,
208              even  if  they  were  already sent before. That means : If back‐
209              log_always is false, backlog will be reset whenever there is  no
210              more  client  connected  to  a network. Else backlog will not be
211              reset.  This option should of course not  be  enabled  if  back‐
212              log_lines  is  0  !  If you still want to do so, don't forget to
213              /BIP BLRESET sometimes.
214
215
216       backlog_lines (default: 10)
217              If set to 0, BIP will replay all the logs since last client dis‐
218              connect.  Else, it'll replay exactly backlog_lines lines on each
219              channel and privates.  Be  aware  that  BIP  will  replay  back‐
220              log_lines  lines  of  all  privates, even if there are more. For
221              example if Coyote told you  12  lines  and  then  RoadRunner  6,
222              you'll  only  have  a replay of the 6 RoadRunner's lines and the
223              last 4 of Coyote's.
224
225              backlog_no_timestamp (default: false) If true,  backlogged  line
226              won't include the timestamp.
227
228
229       backlog_reset_on_talk (default: false)
230              When  true, backlog will be reset upon client talk (channel/pri‐
231              vate message or action). It means that next time you log to your
232              bip  session, the backlogging will start at the time right after
233              your last words on that specific channel or query.
234
235
236       backlog_reset_connection (default: false)
237              When true, backlog_reset_on_talk option above is changed in that
238              the  whole network backlog is resetted when you talk in the net‐
239              work.
240
241
242       backlog_msg_only (default: false)
243              When  true,  bip  will   backlog   only   channel/private   mes‐
244              sages/notices. No topic change, nick change, user quit/part/join
245              will be backlogged upon connection.
246
247
248       bip_use_notice (default: false)
249              If bip_use_notice is true, bip's notifications  to  the  clients
250              will  be  send as notices instead of private messages. For exam‐
251              ple, this setting applies to disconnection notifications or /BIP
252              command replies.
253
254
255       default_nick
256              The  default  nick  option  for each connection section where no
257              nick is defined. See CONNECTION SECTION for more details.
258
259
260       default_realname
261              The default realname option for each connection section where no
262              realname is defined. See CONNECTION SECTION for more details.
263
264
265       default_user
266              The  default  user  option  for each connection section where no
267              user is defined. See CONNECTION SECTION for more details.
268
269
270       name   The username. It'll be  used  to  authenticate  to  bip  and  in
271              log_format.
272
273
274       password
275              The  password.  It  MUST  be generated with bipmkpw or it'll not
276              work.
277
278
279       ssl_check_mode (default: none)
280              Tells whether BIP should check the server  SSL  certificate  and
281              against  what.   Can be none for no check at all, ca to check if
282              the cert is signed by a Certificate Authority in repository,  or
283              basic  to  check if cert exists in repository. The repository is
284              defined by ssl_check_store.  This allows  a  "ssh-like"  private
285              key generation scheme. Note that in basic mode:
286               -  expired  certificates  that  are in the store are considered
287              valid.
288               - CA-signed certificates are considered valid even  if  not  in
289              store.
290
291
292       ssl_check_store (default: not set)
293              This  repository  is browsed by BIP when a SSL certificate or CA
294              check is needed.  In ssl_check_mode basic it must be a file,  to
295              which  certificates  you  choose  to  trust will be appended. In
296              ssl_check_mode ca it may be a single file containing one or more
297              trusted  certificates  concatenated  together between BEGIN CER‐
298              TIFICATE and END CERTIFICATE lines, a directory containing indi‐
299              vidual  certificates  in  PEM format which has been processed by
300              c_rehash, or unset, in which case bip will attempt  to  use  the
301              default certificate store of the OpenSSL it is built against.
302
303
304       ssl_client_certfile (default: not set)
305              Some networks (OFTC at least) allow you to authenticate to nick‐
306              serv services using a client side certificate. Make  this  vari‐
307              able point to the .pem file to use this feature.
308
309

CONNECTION SUB-SECTION

311       Each  connection  section associates a user to the networks he wants to
312       connect to. Thus, it must be declared in the User sections, and can  be
313       used more than once.
314
315
316       away_nick (default: not set)
317              If  set,  and  if  there  are  no more client attached, BIP will
318              change  nickname  to  this  away_nick.  Your  nickname  will  be
319              restored upon client connect.
320
321
322       no_client_away_msg (default: not set)
323              This  options  allows you to set an away message. This away mes‐
324              sage will be set when the last client disconnects,  and  removed
325              when a client connects.
326
327
328       follow_nick (default: false)
329              If  set  to true, when you change nick, BIP stores the new nick‐
330              name as the new default nickname value. Thus, if you are discon‐
331              nected from the server, BIP will restore the correct nickname.
332
333
334       autojoin_on_kick (default: true)
335              If  set  to false bip will not attempt to re-join a channel from
336              which you were kicked.
337
338
339       ignore_first_nick (default: false)
340              If set to true, BIP will ignore the nickname sent by the  client
341              upon  connect.   Further  nickname  changes will be processed as
342              usual.
343
344
345       ignore_server_capab (default: true)
346              By default bip ignores when a server advertises the  CAPAB  fea‐
347              ture.  Servers that support this can prefix each line with a "+"
348              or a "-" depending if a user is registered or not. xchat  checks
349              if  a  server has the CAPAB feature and enables it.  If you have
350              two clients connected to a bip  connection,  one  that  supports
351              this  mode  and  one  that  does  not,  you see the plus and the
352              minuses on each line in the client that does not support  CAPAB.
353              To avoid that, when a server advertises CAPAB bip simply removes
354              it. You can set this option to false to keep using CAPAB (if you
355              only use clients that support it for instance).
356
357
358       network
359              The network name. See the NETWORK SECTION.
360
361
362       log (override global log)
363              When  true, the file logs are enabled for this connection.  When
364              false, no log file is written, logs are kept in memory.
365
366
367       nick   BIP will send that string as your nickname upon connect. If  not
368              specified  and if default_nickname is specified in the user sec‐
369              tion, BIP will use that default nickname string.
370
371
372       on_connect_send
373              You can specify this field more than once.  BIP  will  send  the
374              text  as is to the server. It'd be useful for a greet on connect
375              or to send your NickServ password.
376
377
378       password
379              This is the IRC server password, which is sent  upon  connection
380              to the IRC server only.
381
382
383       realname
384              BIP  will  send that string as the realname part (description in
385              whois  result)  upon  connect.   If   not   specified   and   if
386              default_realname  is specified in the user section, BIP will use
387              that default realname string.
388
389
390       source_port
391              If specified, tells BIP to connect from this  port  to  the  IRC
392              server.
393
394
395       ssl_check_mode (default: the user's option)
396              See ssl_check_mode option in User section.
397
398
399       user   BIP  will  send  that string as the user part (usually between !
400              and @ in a whois result) upon connect. It's  also  used  by  the
401              oidentd   support   (if   enabled).  If  not  specified  and  if
402              default_user is specified in the user section, BIP will use that
403              default user string.
404
405
406       vhost  If  specified,  BIP  will use vhost as the IP address to bind to
407              when connecting to the IRC server. It'll allow you to use a spe‐
408              cific  IP  address for this network when you have more than one.
409              This options is totally useless to people who only have  one  IP
410              address.
411
412

CHANNEL SUB-SUB-SECTION

414       This  section defines the list of channels to join for a user on a par‐
415       ticular network. It is to be  found  in  the  connection  sections  and
416       appear more than once in a connection section.
417
418
419       name   The channel name (#bip, &bip, ...).
420
421
422       key    The channel key if needed.
423
424
425       backlog (default: true)
426              Enable  or disable backlogging of this particular channel.  Set‐
427              ting this to true will NOT enable the backlog  system,  see  the
428              user section.
429
430

IRC CLIENT CONFIGURATION

432       On your IRC client, setup as many IRC servers as connections defined in
433       your connection section.
434
435       Host and port must match values defined in ip and port  global  option.
436       The password must be username:password:connectionname where:
437
438
439              ·   username is the name defined in the user section;
440
441              ·   password is the clear text value of the password correspond‐
442                  ing to the hashed password defined in the user section;
443
444              ·   connectionname is the name defined  in  connection  sub-sec‐
445                  tion.
446
447

SEE ALSO

449       bip(1), bipmkpw(1)
450
451

AUTHOR

453       bip authors:
454       Arnaud 'nohar' Cornet
455       Loïc 'Kyoshiro' Gomez
456
457       Thanks to jj, YS and lafouine, for hanging around while we were coding.
458       Crypto shamelessly taken from Christophe 'sexy' Devine.
459       This man page is written by Loïc 'Kyoshiro' Gomez.
460
461
462
463
464                               23 February 2017                    BIP.CONF(5)
Impressum