IRCNow

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
openbsd:irc:psybnc [2020/07/29 00:53]
jrmu
openbsd:irc:psybnc [2020/08/05 17:28] (current)
fizi
Line 1: Line 1:
-====== The Trouble with ZNC ====== 
- 
-  - ZNC requires one connection per network. If a user wants to connect to 10 networks at once (freenode, ircnow, dal, efnet, etc), it requires him to set up 10 independent connections on his IRC client. This is almost impossible with mobile apps and very confusing for GUI apps. Practical experience has shown that <30% of bouncer users know how to do this. If you rely on ZNC, you will lose >70% of potential users. ZNC developers have declared they have zero interest in fixing this design flaw; in fact, they are proud of it. 
-  - ZNC is not designed for casual users. It requires reading far too much documentation in order to use. For example, typing /msg *status help shows a wall of text that only a sysadmin could understand. You have jargon like AddTrustedServerFingerprint,​ ClearAllChannelBuffers,​ and SetUserBindHost -- words that only a sysadmin could understand after reading through several pages of wikis. As sysadmins, we should configure all this for the end-user so the end-user does not have to read a single page of documentation. 
-  - ZNC relies on a web panel. There are two problems. First, I suspect this web panel cannot be easily customized without recompiling. Secondly, it does not follow the UNIX philosophy of Do One Thing and Do It Well. There is no need to bundle a web server with a bouncer. These should be two separate programs because they deal with two separate protocols/​objectives. If you think about the matter critically, you will realize that users don't need a webpanel at all. There'​s nothing in the webpanel that could not be configured and managed by sysadmins on behalf of users. 
-  - ZNC is written in C++, an ugly and inelegant language. 
-  - ZNC throttles users when you first start up ZNC and connect everyone. However, the throttling is done in a very stupid manner -- each connection is attempted and throttled serially, even if the networks being connected to are different. These connections should be done in parallel rather than serially. For example, if you have 30 independent networks to connect to and a 30 second throttling delay, it would take 15 minutes with ZNC, but it should only take 5 seconds with a proper bouncer that connects to all 30 networks simultaneously (no need to throttle because they are all unique). 
-  - If a server doesn'​t have a properly signed SSL cert, ZNC will disconnect until the user adds the SSL fingerprint manually. This confuses >90% of users. They always blame our bouncer for not working properly. To make matters worse, ZNC then insists upon reconnecting every minute or so and failing in the same manner. And because ZNC does connection throttling, this slows everyone from being able to connect. You as a sysadmin are forced to manually disconnect networks that have SSL certs that aren't properly signed, or else in a few weeks, your ZNC becomes so slow (due to all the throttling) that it takes >10 mins to connect. 
-  - This same error also occurs when our bouncers are GLINEd. Again, ZNC stupidly tries to reconnect every minute, causing everyone to suffer from connection throttling, even if they are not GLINEd. 
-  - ZNC developers most likely have no interest in fixing any of the above design flaws. And even if they did, you'd be at the mercy of their development team, which may take years before they fix it. You are better off forking the code yourself. 
- 
-====== Why psyBNC ====== 
- 
-  - ZNC requires one connection per network 
- 
 Note: you may want to create a new user for psybnc using the '​adduser'​ command? Or use chroot? Clarification should be added here. Note: you may want to create a new user for psybnc using the '​adduser'​ command? Or use chroot? Clarification should be added here.
  
Line 264: Line 249:
 <​code>​ <​code>​
 $ make $ make
 +</​code>​
 +After running $make command , if you get this message....
 +
 +System: OpenBSD
 +DNS Library (c-ares): Not Available
 +
 +Your system does not appear to have the c-ares liberary installed. This library is required for psyBNC to do DNS lookups (as of version 2.4)
 +
 +Then you need to add this package prior to run $ make command.
 +
 +<​code>​
 +doas pkg_add libcares
 +</​code>​
 +
 +After adding the package now you can run the below commands.
 +
 +<​code>​
 +$ make
 +</​code>​
 +
 +Running psyBNC
 +<​code>​
 $ ./psybnc $ ./psybnc
 +</​code>​
 +
 +Now open your preferred irc client and write:
 +
 +<​code>​
 +/server host:port password
 +</​code>​
 +
 +For example, assuming these are your parameters:
 +
 +Host/IP : 82.211.13.24
 +Port : 31337
 +Pass : abcdef
 +
 +you must type:
 +
 +<​code>​
 +/server 82.211.13.24:​31337 abcdef
 </​code>​ </​code>​
  
 It is possible then you may wish to see [[openbsd:​rc.d]] to add psybnc to system startup. It is possible then you may wish to see [[openbsd:​rc.d]] to add psybnc to system startup.