IRC in 2024!?

Not_OlesNot_Oles Provider

It's been like 30 years since I last touched IRC. :)

I want to set up my own IRC server, and an IRC bouncer, and an IRC client. 🤠

How to start? Best, simplest, 100% open source, run on Linux or *BSD: IRC server, bouncer, and client? :)

Nothing against existing server servicess, but I want to self-host an IRC server, just for fun. Also, for right now, just IRC; no need for integration with other messaging services.

«13

Comments

  • Hell yeah bro bring back the old days!!!!

    The Yeti has left the building.

  • edited March 2024

    Server;
    modern - https://github.com/ergochat/ergo (with built in bouncer for your users and other cool shit)
    classic - https://www.unrealircd.org/

    Bouncer;
    https://wiki.znc.in/ZNC

    Clients;
    GUI - https://hexchat.github.io/ https://konversation.kde.org/
    CLI - https://weechat.org/

    This is the software I used, all of it is nice.
    Also can't mention IRC without mentioning I2P, a great way for anon chatting on IRC :)
    My favorite implementation of I2P: https://github.com/PurpleI2P/i2pd

  • The Lounge is a really nice modern client that you can host on a very tiny vps (easily alongside other things). Have never messed with the server part of things so not sure on that part!

  • Take a look at these guys, interesting approach to user run network: https://ircnow.org

  • How does IRC compare to Discord?

  • Are EFNet, IRCNet, Undernet and DALNet still going strong?

  • Not_OlesNot_Oles Provider

    Guys, how about the Simple IRC Client (sic) from suckless.org? :)

  • Not_OlesNot_Oles Provider

    @Not_Oles said:
    Guys, how about the Simple IRC Client (sic) from suckless.org? :)

    "The suckless client sic provides a good tiny irc client but it is a bit too hardcore to use it on a daily basis. First, sic input is driven by a standard fgets and hence, no line editing goodies are supported except the ones provided by the tty kernel driver (^U ^H and friends). Second, sic will mess up the output if a message appears while typing a line. Third, sic does not multiplex channels (but it is a feature!). Finally, I wanted my client to provide infinite scrollback."

    -- https://c9x.me/irc/

    chronos@penguin:~/src/irc$ ls
    irc.c  Makefile  README
    chronos@penguin:~/src/irc$ make
    cc -std=c99 -Os -D_POSIX_C_SOURCE=201112 -D_GNU_SOURCE -D_XOPEN_CURSES -D_XOPEN_SOURCE_EXTENDED=1 -D_DEFAULT_SOURCE -D_BSD_SOURCE    irc.c  -lncursesw -lssl -lcrypto -o irc
    chronos@penguin:~/src/irc$ ls
    irc  irc.c  Makefile  README
    chronos@penguin:~/src/irc$ 
    

    Now all I have to do is read about libera.chat and actually try it. :) But, it's getting late here. 😴 So maybe tomorrow. :)

  • Still using IRC on a daily basis.
    People are more helpful and nicer than stackoverflow.

  • edited March 2024

    IRC server: InspIRCd or UnrealIRCd
    IRC services: Anope or Atheme (chanserv, nickserv, botserv, hostserv...)
    Web gateway: thelounge (all people won't use IRC clients nowaday) - link it with IRC server

  • @Joseph said: Are EFNet, IRCNet, Undernet and DALNet still going strong?

    Nah, only us, old farts, idle there.

  • Not_OlesNot_Oles Provider

    Guys, what do you think about this? It runs on NodeJS! Thanks! Tom

    https://github.com/realrasengan/dwebchat

    IRC (formerly dwebchat)

    This is POC for Internet Relay Chat. This is the IRC that was meant to be built, but IPv4 destroyed the ability for everyone to be a peer online.

    How it Works

    Everyone is a server, and everyone is a client.

    Private messages send directly from person to person (client <-> server).

    Channels are relays hosted by users - if you own the name 'joseon' then you own the channel namespace 'joseon' and 'joseon/'

    Protocol is RFC1459

  • edited March 2024

    If you want to run self hosted IRC server I am suggesting you to use some proper solution (InspIRCd or UnrealIRCd as example) in constant development not some hobby projects that come and go.

  • somiksomik OG Hostbusters

    @Not_Oles said:
    Guys, what do you think about this? It runs on NodeJS! Thanks! Tom

    https://github.com/realrasengan/dwebchat

    IRC (formerly dwebchat)

    This is POC for Internet Relay Chat. This is the IRC that was meant to be built, but IPv4 destroyed the ability for everyone to be a peer online.

    How it Works

    Everyone is a server, and everyone is a client.

    Private messages send directly from person to person (client <-> server).

    Channels are relays hosted by users - if you own the name 'joseon' then you own the channel namespace 'joseon' and 'joseon/'

    Protocol is RFC1459

    How did you even find this? According to commit history, this was created just last week!

    I speak fluent sarcasm and broken logic. | I would agree with you, but thæn we’d both be wrong.

  • Not_OlesNot_Oles Provider

    @somik said: How did you even find this?

    The author posted it to HN: https://news.ycombinator.com/item?id=39730938

    I saw it there.

    rasengan 21 hours ago | prev [–]

    While this is a POC, it 'works' in the sense that you can send and receive messages, join channels, and communicate in said channels.
    (JOIN, PART, PRIVMSG, NOTICE, QUIT, NAMES are implemented)

    All users are both clients and servers. Nobody owns the network. Names are authenticated against Handshake and so are TLS certificates and signatures.

    Channels are owned by the person who owns said namespace - for example, if your name is bob, then you own bob and bob/*

    Tl;dr:

    This makes it impossible for anyone to take over your IRC.

    sirbribri 19 hours ago | parent | next [–]

    Would it prevent what you did to freenode?

    rasengan 17 hours ago | root | parent | next [–]

    Nobody will own IRC once this is finished. :-)

  • @Not_Oles said:

    @somik said: How did you even find this?

    The author posted it to HN: https://news.ycombinator.com/item?id=39730938

    I saw it there.

    rasengan 21 hours ago | prev [–]

    While this is a POC, it 'works' in the sense that you can send and receive messages, join channels, and communicate in said channels.
    (JOIN, PART, PRIVMSG, NOTICE, QUIT, NAMES are implemented)

    All users are both clients and servers. Nobody owns the network. Names are authenticated against Handshake and so are TLS certificates and signatures.

    Channels are owned by the person who owns said namespace - for example, if your name is bob, then you own bob and bob/*

    Tl;dr:

    This makes it impossible for anyone to take over your IRC.

    sirbribri 19 hours ago | parent | next [–]

    Would it prevent what you did to freenode?

    rasengan 17 hours ago | root | parent | next [–]

    Nobody will own IRC once this is finished. :-)

    Trust rasengan at your peril. There's a reason for the "Would it prevent what you did to freenode?" comment.

    It is interesting that it auth's against Handshake thought.

  • DPDP OG
    edited March 2024

    @skorous said: rasengan

    LOL, haven't heard/seen that name for some time.

    Last I saw him was when he dropped by a private channel I'm in, somewhere in 2021.

    "The imitator dooms himself to hopeless mediocrity." — Ralph Waldo Emerson

  • Not_OlesNot_Oles Provider

    @skorous said: Trust rasengan at your peril. There's a reason for the "Would it prevent what you did to freenode?" comment.

    Link please! I saw that and looked on Google, but didn't find anything helpful.

  • Not_OlesNot_Oles Provider
    edited March 2024

    @Not_Oles said:

    @skorous said: Trust rasengan at your peril. There's a reason for the "Would it prevent what you did to freenode?" comment.

    Link please! I saw that and looked on Google, but didn't find anything helpful.

    Oh! NVM! I got it now.

    Thanks! :)

  • Not_OlesNot_Oles Provider

    FWIW I seem to have ircII running well enough to connect to Libera and also to a local ngIRCd. Maybe I will try a couple other clients and servers too. It's a re-beginning. . . .

  • Otus9051Otus9051 The Original Freeloader

    Sign me up!!!

    youtube.com/watch?v=k1BneeJTDcU

  • Not_OlesNot_Oles Provider

    Looking at UnrealIRCd and Ergo.

  • Not_OlesNot_Oles Provider

    @Otus9051 said:
    Sign me up!!!

    Thanks! Not quite ready yet, but you certainly can get on when it is. :)

  • Otus9051Otus9051 The Original Freeloader

    @Not_Oles said:

    @Otus9051 said:
    Sign me up!!!

    Thanks! Not quite ready yet, but you certainly can get on when it is. :)

    If you need help with anything, I'm available then.
    Have a month off because the last session at school ended, 10th grade from April.
    I've had a bit of experience wirh IRC Servers (makes me think, what did I not have experience with?).

    youtube.com/watch?v=k1BneeJTDcU

  • @Joseph said:
    How does IRC compare to Discord?

    I always see Discord as the modern IRC equivalent. And you could argue that Twitter/Threads/Bluesky (aka the text based social media) are too as some IRC channels were not just about real time chat.

    I'm not that young, but probably just a bit too young to fully understand IRC. I dabbled in it when I was at high school, but never fully embraced it.

  • @Not_Oles said:

    @skorous said: Trust rasengan at your peril. There's a reason for the "Would it prevent what you did to freenode?" comment.

    Link please! I saw that and looked on Google, but didn't find anything helpful.

    https://www.reddit.com/r/HobbyDrama/comments/q6k9md/ircfreenode_this_is_not_a_hostile_takeover_says/

    Andrew was a really nice guy until he got rich, then something happened and he lost it completely.

  • You may need to compile ircII yourself to get the latest security fixes. I found this was very easy to do under Debian, however (even making my own .deb).

    This is a great news blog for monitoring IRC developments: https://www.ilmarilauhakangas.fi/

  • I suspect much of that crowd is using Lemmy these days.

  • Not_OlesNot_Oles Provider

    Trying isssi. . . .

  • Not_OlesNot_Oles Provider
    edited March 2024

    @Not_Oles said:
    Trying isssi. . . .

    isssi doesn't seem to work. Maybe irssi might work. :)

    Edit: irssi works well enough to connect to Libera. . . .

  • @Not_Oles said:
    Trying isssi. . . .

    Irssi, finally on the right track... :) ircII belongs to the museum :)

  • Not_OlesNot_Oles Provider

    I decided to try compiling ircII from source code. I got the current code with wget https://ircii.warped.com/ircii-current.tar.bz2. After unzipping and untarring, the default compile requires only a configure and a make.

    For LESbians who haven't seen compiling yet, maybe you might be interested in seeing the source code file directory before and after compiling. Here's before:

    [Not_Oles@polonium ircii]$ ls
    aclocal.m4  ChangeLog  configure.in  doc   include  ircbug.in    mkinstalldirs  README  source
    bsdinstall  configure  contrib       help  INSTALL  Makefile.in  NEWS           script  todo
    [Not_Oles@polonium ircii]$ ls source
    aes.c          edit.c              icb.c       keys.c        notice.c   server.c      translat.c
    alias.c        empty_metakeys.inc  if.c        lastlog.c     notify.c   signals.c     vars.c
    cast.c         exec.c              ignore.c    list.c        numbers.c  sl.c          whois.c
    cipher-test.c  flood.c             input.c     log.c         output.c   sl_irc.c      window.c
    crypt.c        funny.c             ircaux.c    mail.c        parse.c    ssl.c         wserv.c
    ctcp.c         help.c              irc.c       menu.c        queue.c    status.c      wterm.c
    dcc.c          history.c           ircflush.c  mksignals.pl  reg.c      strcasestr.c
    debug.c        hold.c              ircio.c     names.c       scandir.c  strsep.c
    digraph.inc    hook.c              ircsig.c    newio.c       screen.c   term.c
    [Not_Oles@polonium ircii]$
    

    And, here's after:

    [Not_Oles@polonium ircii]$ ls
    aclocal.m4     ctcp.o   history.o  ircbug      log.o          numbers.o  sl_irc.o      whois.o
    alias.o        dcc.o    hold.o     ircbug.in   mail.o         output.o   sl.o          window.o
    bsdinstall     debug.o  hook.o     ircflush    Makefile       parse.o    source        wserv
    ChangeLog      defs.h   icb.o      ircflush.o  Makefile.in    queue.o    ssl.o         wserv.o
    config.h       doc      if.o       ircio       menu.o         README     status.o      wterm.o
    config.log     edit.o   ignore.o   ircio.o     mkinstalldirs  reg.o      strcasestr.o
    config.status  exec.o   include    irc.o       names.o        scandir.o  strsep.o
    configure      flood.o  input.o    ircsig.o    newio.o        screen.o   term.o
    configure.in   funny.o  INSTALL    keys.o      NEWS           script     todo
    contrib        help     irc        lastlog.o   notice.o       server.o   translat.o
    crypt.o        help.o   ircaux.o   list.o      notify.o       signals.o  vars.o
    [Not_Oles@polonium ircii]$ 
    

    The file called irc is the result. The files which end in .o are "object" files, which get linked together to make the final irc result.

    [Not_Oles@polonium ircii]$ file irc
    irc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=9da3386f434227331960468a4e64c9125f26759b, for GNU/Linux 3.2.0, with debug_info, not stripped
    [Not_Oles@polonium ircii]$ 
    

    The irc file and a few more files are installed with make install.

    Probably I am going to compile irssi too. :)

  • Not_OlesNot_Oles Provider

    @Mumbly said:

    @Not_Oles said:
    Trying isssi. . . .

    Irssi, finally on the right track... :)

    Luckily I already have ninja and meson lying around.

    ircII belongs to the museum :)

    So do I! :)

  • edited March 2024

    @Not_Oles said:

    ircII belongs to the museum :)

    So do I! :)

    Somehow I expected that answer but even you don't use Mosaic browser or even Netscape Navigator anymore. Or wait... do you?! :)
    Out there are also a bit more advanced forks of ircII called Epic (https://www.epicsol.org/) and BitchX (https://bitchx.sourceforge.net/) but really don't be a masochist and stick with Irssi.

  • edited March 2024

    Ah, network, yes ... Another good reason to stick with something proven as InspIRCd or UnrealIRCd is that once you run an IRCd you may want to link it with someone in the future to create a network. And those people for sure won't run some obscure part-time half-baked personal project who will be abandoned once developer get tired of it, but proper actively developed IRC server, so most likely one of those two.
    Linking IRC servers into the bigger network with friends is fun. I run voluntarily a pretty casual local non-tech IRC community (with soccer moms, random perverts and all in between) consisting 7 InspIRCd IRC servers (+Anope services) and it seems like a constant work ... in a good "hobby" way. I think you may enjoy with something similar.
    Something as TheLounge or KiwiIRC (webchat interface linked to server) is almost a must as many people today won't bother with proper IRC client.

  • Not_OlesNot_Oles Provider

    @Mumbly said:

    @Not_Oles said:

    ircII belongs to the museum :)

    So do I! :)

    Somehow I expected that answer but even you don't use Mosaic browser or even Netscape Navigator anymore. Or wait... do you?! :)

    I still use Lynx almost every day. :) I love how Lynx renders everything in one column, without distracting side panels. I love to Lynx the pages many pages today which render as mostly white space with a little text in tiny type. :)

    Out there are also a bit more advanced forks of ircII called Epic (https://www.epicsol.org/) and BitchX (https://bitchx.sourceforge.net/)

    I have to look at these! Thanks for mentioning them!

    but really don't be a masochist and stick with Irssi.

    What is it about ircII which is masochistic? It can't be the simplicity, because there are smarter people than me who use IRC clients way more simple than ircII. For example, the French guy from Yale who works at Google Brain has https://c9x.me/irc/ . As another example, the "hobbyist" programmer who politely responds to email, has https://github.com/mcpcpc/kirc and https://github.com/mcpcpc/irc2

    I looked at the code for ircII and for irssi. There is more code in irssi, and a very contemporary build system (meson + ninja, the same as is used to compile Chromium browser). It seems possibly simpler and possibly easier to understand the ircII code than the irssi code. Besides, even if I do end up using irssi, playing with ircII helps satisfy my historical curiosity.

    So, yeah, I don't get the "masochistic" part. Could you please explain that? What is masochistic about ircII? Thanks!

  • Not_OlesNot_Oles Provider

    @root said:
    @Not_Oles - you intend to start an IRC network?

    No present intention to take over the IRC world. :) I think, maybe, just maybe, I might run an IRC server for MetalVPS. :)

  • Not_OlesNot_Oles Provider
    edited March 2024

    @Mumbly said:
    Ah, network, yes ... Another good reason to stick with something proven as InspIRCd or UnrealIRCd is that once you run an IRCd you may want to link it with someone in the future to create a network. And those people for sure won't run some obscure part-time half-baked personal project who will be abandoned once developer get tired of it, but proper actively developed IRC server, so most likely one of those two.
    Linking IRC servers into the bigger network with friends is fun. I run voluntarily a pretty casual local non-tech IRC community (with soccer moms, random perverts and all in between) consisting 7 InspIRCd IRC servers (+Anope services) and it seems like a constant work ... in a good "hobby" way. I think you may enjoy with something similar.
    Something as TheLounge or KiwiIRC (webchat interface linked to server) is almost a must as many people today won't bother with proper IRC client.

    What you say is helpful, that I should keep in mind possibly wanting someday to link with other servers.

    Your comments above about ngircd led me to look at InspIRCd and UnrealIRCd. If you hadn't posted, I might have just gone ahead with ngircd. After reading the build and configure instructions for UnrealIRCd, it seems more complex than ngircd, but with more features. And UnrealIRCd has good documentation. I also liked that UnrealIRCd is programmed in C. I am still trying to understand a little bit of C. . . .

    Thanks for your comments! Have a good day! :)

  • Not_OlesNot_Oles Provider

    @root said:
    There are more than 480 IRC networks available. I did not know this.

    Maybe you might be interested in https://susam.net/simplicity-of-irc.html . It's from 2022, but it drew 70 comments on HN six days ago, please see https://news.ycombinator.com/item?id=39689090 .

  • @Not_Oles said:

    @root said:
    There are more than 480 IRC networks available. I did not know this.

    Maybe you might be interested in https://susam.net/simplicity-of-irc.html . It's from 2022, but it drew 70 comments on HN six days ago, please see https://news.ycombinator.com/item?id=39689090 .

    I love IRC. I am an old user of IRC, since 1999. Problem is that many people no longer use it. In my opinion projects can simply partner with an existing IRC network, instead of opening a new one.

    I don't want to discourage you. I would want to open a new network myself too, for the fun of it, but I just don't see a good reason with so many networks out there.

  • Not_OlesNot_Oles Provider

    @root said: I don't want to discourage you.

    Thanks! Good will is much appreciated!

    I would want to open a new network myself too, for the fun of it, but I just don't see a good reason with so many networks out there.

    It's not like I want to open a new network or take over IRC. I just thought it might be fun to take a look at it. And maybe try it. People say that IRC still is used in many Open Source projects. So maybe I might meet a few friends via IRC. Even just one would be fine. It's not a big deal for me. Not something I have to accomplish. Just a little fun! :)

    Thanks again for your donation! :) Cheers! :)

  • @Not_Oles said:

    @root said: I don't want to discourage you.

    Thanks! Good will is much appreciated!

    I would want to open a new network myself too, for the fun of it, but I just don't see a good reason with so many networks out there.

    It's not like I want to open a new network or take over IRC. I just thought it might be fun to take a look at it. And maybe try it. People say that IRC still is used in many Open Source projects. So maybe I might meet a few friends via IRC. Even just one would be fine. It's not a big deal for me. Not something I have to accomplish. Just a little fun! :)

    Thanks again for your donation! :) Cheers! :)

    Cheers. I hope you get a server up and running. I guess you intend to use IRC for chat support?

  • Not_OlesNot_Oles Provider

    @root said: I guess you intend to use IRC for chat support?

    Yes. Hopefully! :)

  • @Not_Oles said:

    @root said: I guess you intend to use IRC for chat support?

    Yes. Hopefully! :)

    If you don't want to complicate your life too much you could also just open your own channel for it on libera.chat or oftc.net

    "How miserable life is in the abuses of power..."
    F. Battiato ---

  • @carlin0 said:

    @Not_Oles said:

    @root said: I guess you intend to use IRC for chat support?

    Yes. Hopefully! :)

    If you don't want to complicate your life too much you could also just open your own channel for it on libera.chat or oftc.net

    Yeah, but I guess he wants it for support. Having the IRC Operator status helps him to kill or k-line IPs from server, as opposed to just banning from channel.

    On the other hand, you could be right, a channel ban should be more than enough, while a k-line might be overkill.

    IRCd offers this great flexibility to manage stuff and configure it as you want it, including allowing just one IP (on which some web application is hosted for customers to connect for support).

  • Having your own IRC server gives you more power, but you also take the risk of receiving DDOS

    "How miserable life is in the abuses of power..."
    F. Battiato ---

  • @Not_Oles now you have garnered the Yeti's attention. I miss the old days and I think I have an idea now.

    Let's see if I can find the time to get it off the ground now.

    The Yeti has left the building.

  • @carlin0 said:
    Having your own IRC server gives you more power, but you also take the risk of receiving DDOS

    DDoS attacks used to be a problem for IRC due to script kiddies attacking one another over IRC (or IRC servers directly). This was done to expose a victim's IP upon automated connection to a new IRC server from network, then use that exposed IP as target for a direct DDoS attack against their victim.

    Nowadays many providers include IRCd in their terms since it was known for DDoS back in the good old days of IRC. However, this is no longer the case, as IRC has slowly decreased in popularity, while it evolved a lot in security (such as hashing IP automatically before establishing connection to avoid client exposure, clone detection, IP reputation detection, and much more). Basically the reason of DDoS is no longer there, while also enabling features which makes it harder to expose someone.

    With this in mind, implementing IRC for support is a great and free self-hosted alternative.

Sign In or Register to comment.