BIP.CONF(5)
π NAME π
okay so bestie, this is bip.conf β the configuration file for BIP IRC Proxy, aka the BIP.CONF(5) page from the File Formats Manual. it's giving config-file royalty, periodt. π
β¨ SYNOPSIS β¨
~/.bip/bip.conf
π¦ DESCRIPTION π¦
A BIP configuration file is literally just a list of variable affectations or sections. It's got the global options, networks definitions, users configuration, and users connections declarations. Each section is described in this manpage, so don't worry, bestie.
The bip.conf skeleton should be something like this:
option1 = value;
option2 = value;
...
network {
net_opt = value;
...
server { ... };
server { ... };
};
...
user {
user_opt = value;
...
connection {
conn_opt = value;
...
channel { ... };
};
connection {
conn_opt = value;
...
channel { ... };
channel { ... };
...
};
};
π SYNTAX RULES π
The syntax is quite simple, fr fr:
- everything after the
#character is ignored (comments) - each variable affectation must be finished with a
; - each section
{ }must be finished with a;
If you use vim you will probably want to use vim with the provided bip.vim syntax file to avoid common syntax and lexical mistakes. You can also find an example configuration file along with BIP.
By default, bipdir is the $HOME/.bip directory and the parent directory for client certificate, configuration, logs, pid, oidentd. If environment variable $HOME doesn't exist, -s parameter must be used.
π GLOBAL OPTIONS π
okay so here's the tea, bestie β these are the global options that set the vibe for everything else. no cap. π
client_side_sslβ default:false. Whentrue, clients will need to connect to BIP using SSL. You'll also need to generate a SSL cert/key pair inbipdir/bip.pem(usually~/.bip/bip.pemor/var/lib/bip/bip.pem) orclient_side_ssl_pemif defined.client_side_ssl_pemβ default:<bipdir>/bip.pem. Set this to the full path of the cert/key pair bip should use to accept clients SSL connections.client_side_ciphersβ OpenSSL cipher lists used for clients SSL connections. If not set, OpenSSL default ciphers will be used.client_side_dh_paramβ default:<bipdir>/dh.pem. DH parameters filename. Used for clients SSL connections, Supply at least 2048-bit parameters.ssl_default_ciphersβ OpenSSL cipher lists used for server connections. If not set, OpenSSL default ciphers will be used.ipβ default:0.0.0.0. Listening IP address. This is the IP address bip will listen for incoming client connections.logβ default:true. Whentrue, the log system is enabled. Else, BIP will not write a single log file. Backlog is then stored into memory.log_systemβ default:true. Whentrue, system messages such as connection errors are logged. Else, BIP will not write system logs.log_formatβ default:%u/%n/%Y-%m/%c.%d.log. Determines the log filename depending on:%uusername (name inuser { };section)%nnetwork name (name inconnection { };section)%cchannel name%Y4 digits year%m2 digits month%d2 digits day
log_levelβ default:1. Specify the verbosity of BIP from0(fatal errors) to6(huge debug output)log_rootβ default:<bipdir>/logs. Main log directory. Sub-directories and files will be created from there depending onlog_format.log_sync_intervalβ default:5. Defines the delay between each logfiles sync to the disk. Must be a non null positive integer.reconn_timerβ default:120. Defines the initial delay (in seconds) before a reconnection attempt. The delay increases with the number of attempts:delay = reconn_timer * number of attemptspid_fileβ default:<bipdir>/bip.pid. Defines the file where BIP's pid will be stored. BIP checks if this file exists and if the pid is still alive upon startup. If true, BIP refuses to start.write_oidentdβ default:false. Must be set totrueto overwrite oidentd configs.oidentd_fileβ default:<bipdir>/.oidentd.conf. oidentd configuration file (if oidentd enabled).portβ default:7778. The port on which BIP should listen for clients.
πΈ NETWORK SECTION πΈ
This section allows you to declare a network for use in the connection sections. It may appear more than once in the configuration file.
sslβ default:false. Iftrue, BIP will connect to this network using SSL only. You cannot mix SSL servers and non-SSL servers in the same network section. This is by choice, we believe it's a bad idea.ssl_ciphersβ override globalssl_default_ciphers. OpenSSL cipher lists used for this network.nameβ It's the network name used in the connection section. Please note that this value is not used inlog_format, since it uses the variable name from the connection section.
π SERVER SUB-SECTION π
BIP will cycle through the server sections list when reconnecting to a network. It may appear more than once in a network section.
hostβ The server's hostname or IP address.portβ default:6667. The server port to connect to.
π USER SECTION π
This section allows you to define the users allowed to connect to BIP and their options. It may appear more than once in the configuration file.
adminβ default:false. If a user has admin set totrue, he'll become a bip administrator, which allows him for example to reload bip from IRC or to see the user configuration.backlogβ default:true. Enable or disable the whole backlog system, which allows clients to see a log replay upon connection.backlog_alwaysβ default:false. Iftrue, clients will always receivebacklog_lineslog lines, even if they were already sent before. That means : Ifbacklog_alwaysisfalse, backlog will be reset whenever there is no more client connected to a network. Else backlog will not be reset. This option should of course not be enabled ifbacklog_linesis0! If you still want to do so, don't forget to/BIP BLRESETsometimes.backlog_linesβ default:10. If set to0, BIP will replay all the logs since last client disconnect. Else, it'll replay exactlybacklog_lineslines on each channel and privates. Be aware that BIP will replaybacklog_lineslines of all privates, even if there are more. For example if Coyote told you 12 lines and then RoadRunner 6, you'll only have a replay of the 6 RoadRunner's lines and the last 4 of Coyote's.backlog_timestampβ default:time.nonedisables timestamps in backlogged lines,timeordatetimeallow one to select the timestamp format in backlogged lines.backlog_no_timestampβ default:false. This parameter is deprecated, usebacklog_timestampinstead.falseimpliesbacklog_timestamp = noneandtrueimpliesbacklog_timestamp = time.backlog_reset_on_talkβ default:false. Whentrue, backlog will be reset upon client talk (channel/private message or action). It means that next time you log to your bip session, the backlogging will start at the time right after your last words on that specific channel or query.backlog_reset_connectionβ default:false. Whentrue,backlog_reset_on_talkoption above is changed in that the whole network backlog is reset when you talk in the network.backlog_msg_onlyβ default:false. Whentrue, bip will backlog only channel/private messages/notices. No topic change, nick change, user quit/part/join will be backlogged upon connection.bip_use_noticeβ default:false. Ifbip_use_noticeistrue, bip's notifications to the clients will be send as notices instead of private messages. For example, this setting applies to disconnection notifications or/BIPcommand replies.default_nickβ The default nick option for each connection section where no nick is defined. See CONNECTION SECTION for more details.default_realnameβ The default realname option for each connection section where no realname is defined. See CONNECTION SECTION for more details.default_userβ The default user option for each connection section where no user is defined. See CONNECTION SECTION for more details.nameβ The username. It'll be used to authenticate to bip and inlog_format.passwordβ The password. It MUST be generated withbipmkpwor it'll not work.ssl_check_modeβ default:none. Tells whether BIP should check the server SSL certificate and against what. Can benonefor no check at all,cato check if the cert is signed by a Certificate Authority in repository, orbasicto check if cert exists in repository. The repository is defined byssl_check_store. This allows a "ssh-like" private key generation scheme. Note that inbasicmode:- expired certificates that are in the store are considered valid.
- CA-signed certificates are considered valid even if not in store.
ssl_check_storeβ default: not set. This repository is browsed by BIP when a SSL certificate or CA check is needed. Inssl_check_modebasicit must be a file, to which certificates you choose to trust will be appended. Inssl_check_modecait may be a single file containing one or more trusted certificates concatenated together betweenBEGIN CERTIFICATEandEND CERTIFICATElines, a directory containing individual certificates in PEM format which has been processed byc_rehash, or unset, in which case bip will attempt to use the default certificate store of the OpenSSL it is built against.ssl_client_certfileβ default: not set. Some networks (OFTC at least) allow you to authenticate to nickserv services using a client side certificate. Make this variable point to the.pemfile to use this feature.
okay bestie, we're back and we're in the connection part π carry on, no thoughts, just vibes and correct config.
π CONNECTION SUB-SECTION π
Each connection section is basically the situationship contract between a user and the networks they wanna connect to. So it has to be declared inside the User sections, and yeah you can use it more than once. Main character energy, but make it reusable. π
away_nick(default: not set) β set this and, whenever there are no more clients attached, BIP will switch your nickname to thisaway_nick. The second a client connects again, your nickname is restored. It's giving "brb but make it a whole identity". πno_client_away_msg(default: not set) β lets you set an away message. It gets set when the last client disconnects, and removed when a client connects. Auto-away but the cool kind. π¦follow_nick(default:false) β set it totrueand every time you change nick, BIP stores the new nickname as your new default nickname value. That way, if you get disconnected from the server, BIP restores the correct nickname. Not it restoring your 2019 nickname, no ma'am. πautojoin_on_kick(default:true) β set tofalseand BIP will not try to re-join a channel you got kicked from. Sometimes you just need space, and that's valid. β¨ignore_first_nick(default:false) β set totrueand BIP ignores the nickname your client sends on connect. Every nickname change after that gets processed like normal, though. πignore_server_capab(default:true) β by default BIP just ignores it when a server advertises theCAPABfeature. Here's the lore: servers that support this can prefix each line with a+or a-depending on whether a user is registered or not, and xchat checks if a server has theCAPABfeature and enables it. So if you have two clients connected to one bip connection β one that supports this mode and one that doesn't β you'll see all the pluses and minuses on every line in the client that doesn't supportCAPAB. To dodge that whole mess, when a server advertisesCAPABbip just removes it. You can set this option tofalseto keep usingCAPAB(if, for example, you only ever use clients that support it). π«Άnetworkβ the network name. Peep the NETWORK SECTION. πlog(override global log) β whentrue, file logs are enabled for this connection. Whenfalse, no log file is written and logs are kept in memory. πnickβ BIP will send that string as your nickname upon connect. If you don't specify it, anddefault_nicknameis specified in the user section, BIP will use that default nickname string instead. πon_connect_sendβ you can specify this field more than once. BIP sends the text as-is to the server. Super useful for a greet on connect, or for sending your NickServ password. π₯passwordβ this is the IRC server password, and it's sent only upon connection to the IRC server. Don't get it twisted with the other passwords, bestie. πrealnameβ BIP sends that string as the realname part (the description in your whois result) upon connect. If you don't specify it, anddefault_realnameis specified in the user section, BIP uses that default realname string. βsasl_mechanismβ tells BIP to use the specified SASL mechanism. Currently supported:PLAIN,EXTERNAL. ThePLAINmechanism requiressasl_usernameandsasl_password, and it's the default if those are set. π§sasl_usernameβ this connection's username to pass on using SASL authentication. πsasl_passwordβ this connection's password to pass on using SASL authentication. πsource_portβ if specified, tells BIP to connect from this port to the IRC server. πΈssl_check_mode(default: the user's option) β see thessl_check_modeoption in the User section. πuserβ BIP sends that string as the user part (usually the bit between!and@in a whois result) upon connect. It's also used by the oidentd support (if enabled). If you don't specify it, anddefault_useris specified in the user section, BIP uses that default user string. πvhostβ if specified, BIP will usevhostas the IP address to bind to when connecting to the IRC server. That lets you use a specific IP address for this network when you've got more than one. This option is totally useless to anyone who only has one IP address. ngl, if that's you, scroll on. π
πΊ CHANNEL SUB-SUB-SECTION πΊ
This section defines the list of channels to join for a user on a particular network. You'll find it inside the connection sections, and it can appear more than once in a connection section. Yes, more than once. Yes, that's the point. π¦
nameβ the channel name (#bip,&bip, ...). πkeyβ the channel key if you need one. πbacklog(default:true) β enable or disable backlogging for this particular channel. But listen: setting this totruewill NOT enable the backlog system β check the user section for that. This one's just the per-channel switch, okay? Don't @ me. π
π» IRC CLIENT CONFIGURATION π»
On your IRC client, set up as many IRC servers as you have connections defined in your connection section. One for each, matching set. β¨
Host and port must match the values defined in the ip and port global options.
The password must be username:password:connectionname where:
usernameis the name defined in the user section;passwordis the clear text value of the password corresponding to the hashed password defined in the user section;connectionnameis the name defined in the connection sub-section.
π SEE ALSO π
π AUTHOR π
bip authors:
Arnaud 'nohar' Cornet LoΓ―c 'Kyoshiro' Gomez
Thanks to jj, YS and lafouine, for hanging around while we were coding. Crypto shamelessly taken from Christophe 'sexy' Devine. This man page is written by LoΓ―c 'Kyoshiro' Gomez. π«Ά
and that's the whole page, bestie β no cap, you're now fully certified in BIP.CONF(5). This version is dated 2 January 2022 and belongs to BIP.CONF(5), so if you're reading this in the future and something doesn't match, blame the timeline, not me. π mwah, go configure something iconic. π
β¨
π¦ where this page comes from
- debian bookworm: bip 0.9.3-1+b2 Β· GPL-2.0-only
- debian trixie: bip 0.9.3-1.1 Β· GPL-2.0-only
- nixpkgs unstable: bip 0.9.3
- ubuntu jammy: bip 0.9.3-1 Β· GPL-2.0-only
- ubuntu noble: bip 0.9.3-1build2 Β· GPL-2.0-only
- ubuntu questing: bip 0.9.3-1.1
- ubuntu resolute: bip 0.9.3-1.2 Β· GPL-2.0-only
- ubuntu stonking: bip 0.9.3-1.2build1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms