11 ms·
Ergo Chat – A modern IRC server written in Go
- donio 2y agoI've been running Ergo for the past year for my friends/family chat. I went this route because of the ease of hosting, very low resource requirements and a protocol and codebase that I feel I can understand and debug if needed. The v3 chathistory support and the always-on[1] multi-client[2] features paired with modern clients (like Goguma) go a long way at providing a modern chat environment. Most others on the server don't even know that they are using IRC. The built-in websocket support is another key feature for me since it lets me to provide a web client just by serving some static files (I use Gamja for this). [1] always-on: https://github.com/ergochat/ergo/blob/master/docs/USERGUIDE.md#always-on https://github.com/ergochat/ergo/blob/master/docs/USERGUIDE.... [2] multiclient: https://github.com/ergochat/ergo/blob/master/docs/USERGUIDE.md#multiclient https://github.com/ergochat/ergo/blob/master/docs/USERGUIDE....
- nolist_policy 2y agoInteresting, does push notification work? Will phones receive messages and notify while sleeping?
- donio 2y agoThis explains the notification options with Goguma, the mobile client we use: https://codeberg.org/emersion/goguma/src/branch/master/doc/notifications.md https://codeberg.org/emersion/goguma/src/branch/master/doc/n... I didn't bother setting up proper push notification so we use the "Servers supporting chathistory" mode. This means that when the app is not in the foreground a workmanager task polls every few minutes. So in this mode notifications can be delayed by a few minutes which is fine for our use case.
- stackskipton 2y agoAs heavy Discord user, it's nice to see that IRC is still kicking and might be available if/when Discord ZIRP gas runs out.
- arcanemachiner 2y agoJust think of all that information, stuck in the walled garden, away from the prying eyes of search engines or any other forms of public discoverability. Just waiting to get flushed down the drain or shoved into the training data of a future round of AI crapware...
- ycuser2 2y agoIRC is also a walled garden.
- TonyTrapp 2y agoIRC is pretty much the opposite of the definition of a walled garden. Its content is not discoverable by search engines by default, but that is not the definition of a walled garden, which is typically a synonym for closed platforms where you have no choice how to access their content (e.g. being forced to use a specific client software).
- tryauuum 2y agoHm, for me the definition of the walled garden is "you have to have an account to see any discussions"
- fl0id 2y agoWhich you don’t need for irc. Also pretty sure that’s not an accurate definition as you can be walked without needing an account technically.
- deleted 2y ago[deleted]
- sandos 2y agoBut in general IRC is not really archived etc? So just as throw-away as Discord imo.
- kyawzazaw 2y agoyour family and friends care enough to download and set this up?
- eddieroger 2y agowhy would they need to download and setup a server? can't they just log in to OP's with the client of their choice?
- kyawzazaw 2y agoi am asking about download the client and even registering and entering a password
- scrapcode 2y agoAlthough I understand your point, and certainly have some friends that would feel like they're hacking the gibson connecting to an irc server, is Discord et. al really that much different?
- kyawzazaw 2y agodiscord is totally different. I assure you they are not going to download Signal, Whatsapp. there is massive network effect involved and inertia Even getting people to use a different messaging app (such as Facebook Messenger) already installed on their phones is difficult.
- mikepurvis 2y agoIt’s an inertia issue. I already have iMessage, FB Messenger, WhatsApp, and Signal as “primary” messaging apps, plus Instagram and LinkedIn and Teams as secondary— my tolerance would be basically zero for installing something else to connect with a specific person or friend group.
- prmoustache 2y agoThat is because you already have an absurd lots of them though. I have whatsapp and conversations and that's it. I only use teams on my professional computer, you will never see me install "work" on my personal smartphone and nobody needs a linkedin app, the website is enough.
- Suppafly 2y ago>(like Goguma)(I use Gamja for this). Is everything related to potatoes lol?
- donio 2y agoYep, both are by the same author (emersion) and there is definitely a running theme in the project names.
- okasaki 2y agoI think ircd is the wrong layer to attach those features to. You can run something like thelounge and have that on any server.
- qudat 2y agoI disagree. I run all comms for https://pico.sh https://pico.sh through IRC on libera and people really struggle to onboard into IRC. People will pop-in ask a question, then leave because they arrive to a chat that is empty and didnt see any activity in 5mins and bounce. We tried to offer a bouncer instance for users and even that had a barrier to entry because it requires creating 2 accounts: one for libera and one for pico. I think about us switching to ergo every few months because I think the onboarding experience will be much nicer. Logging into a channel for the first time and see the chat log will make people a lot more motivated to stay.
- superkuh 2y agoI agree. The reason IRC is so good is that it is mostly stateless and stores very little information beyond lists of IPs associated with each socket it's stuffing messages into. Once a server starts hosting for people there are a huge set of problems and pressures. IRC is the text chat layer of the internet. It's not by itself, it's part of a larger network of open protocols. If you avail yourself to these it far exceeds the capabilities of even the most featureful walled corporate garden.
- deleted 2y ago[deleted]
- skulk 2y agoYou must have a truly mind-boggling amount of social capital to be able to switch your family/friends off of a mega platform like Discord or WhatsApp. Do you just onboard every single person who wants to talk to any of them also? Or do they see your system as "how to reach donio"
- donio 2y agoNobody is on a single messaging platform these days they also use other stuff of course. They look at it as a simple way to reach this group of people.
- averageRoyalty 2y agoYou'd be surprised how easy it is to move a group chat to a new platform. Often you'll need to run a couple through, but people expect to be on multiple platforms.
- avhception 2y agoI'm in the process of switching over from ngircd to ergo and have contributed a FreeBSD initscript to ergo. My little IRC community has been going on for what must be more than 15 years now. There has been a noticeable slowdown this year. Maybe it will be the end of the line in a few years. Nice to hear that at least there are others out there. I have vivid memories of the first time I connected my Nokia to a laptop and used mobile dialup-internet from the passenger seat of a car to connect to the IRC server while going down the Autobahn. Mobile internet was unheard of at the time, so it was totally exciting!
- be_erik 2y agoJust in time for taking my chatops onprem. Clear text orchestration with a chat log is pretty nice. !docker-restart :)
- th0th 2y agoIt feels really nice to see stuff like this while the most of the people think Slack, Discord and a few others are the only choices. I recently went through the hassle of deciding on something small for my family + company circle. Mainly considered XMPP and Matrix, and went with Matrix. Didn't know there was such a thing as "always-on" on IRC tho.
- fishgoesblub 2y agoHave you had any issue with messages/notifications not be sent/received with Matrix? I wanted to try Matrix for friends and family, but either I would never get the message until I opened the app, or I'd get the notification but my phone wouldn't vibrate. Eventually settled on XMPP with Conversations on Android.
- th0th 2y agoNot really, I didn't have any delivery-related issues, and didn't get any complaints from other people as well. I have mixed feelings towards Matrix due to; 1. The only stable and maintained implementation is "matrix-synapse" and it is written in Python. 2. The most commonly used client is "element", and it is governed by the same people. So it feels we are the mercy of a single company. I wanted hard to go with a more established protocol like XMPP but failed to get a server running properly :)
- nurple 2y agoNot sure if you tried prosody[0], but I found it rather powerful and simple to configure, including multiuser chat(muc) and peering. It's written in lua and has a module system so it's easy to extend. In particular I used the dovecot auth module[1] so users could login with their email credentials and I could manage a single user repo. 0. https://prosody.im/ https://prosody.im/ 1. https://modules.prosody.im/mod_auth_dovecot https://modules.prosody.im/mod_auth_dovecot
- th0th 2y agoYep, Prosody was one of my failed attempts :P I am running everything on a kubernetes cluster, so a maintained helm chart is the first thing I check when running something. I didn't have much luck with XMPP servers with this. That IMAP auth trick is really awesome thinking BTW, kudos!
- resters 2y agolet's hope this replaced slack and all the gimmickware.
- dzhiurgis 2y agoWhat’s wrong with Slack?
- okwhateverdude 2y agoLook under the hood sometime and witness the lovecraftian horror. You can enable the electron dev console via env var. Everything from how they layout the page, to the underlying structure for messages and threads (and how they are accessed) is super complex.
- laurentlb 2y agoI find it super expensive if you want to have the history.
- dzhiurgis 2y agoTo me, lack of history is a feature, not a bug. Document your shit in proper places.
- resters 2y agoIMHO it's expensive and not at all better than IRC, plus it helps kill IRC which was a core part of the public internet, open source culture, etc. I also find it annoying that the creators of slack pretend they invented something original.
- modinfo 2y agoA year ago I used this server for my friends, then it was called oragono. I really recommend it.
- nik736 2y agoIs it possible to send Webhooks to specific channels of an Ergo/any other IRC server?
- Svip 2y agoWhenever IRC comes along, someone mentions its lack of chathistory/backlog as a missing feature. Having witnessed what Discord have wrought, I am now in the firm belief that backlog - at least for communities - is an anti-feature. Because the logs persists between sessions, people start to post things there for perpetuity, a task classically reserved for bulletin forums. Without a server-side backlog, the chat is fleeting, and everyone knows that, so to preserve important content, people know to save it somewhere else. This keeps the chat as it was meant to; a live chat, mimicking that of a human conservation, where nothing is recorded until someone makes the conscientious effort to do so.
- deleted 2y ago[deleted]
- sph 2y agoFully agreed, but let's not forget the psychological quirk of Discord moderators loving to divide the world into neat little boxes, so the mark of any established server is the myriad of different topic channels. Every single community has become a silo with their own memes channel. It's like they emulate modern social media websites where they try to keep you engaged and in one spot forever. I find it dystopian and power-tripping personalities trying to invent rules upon rules on their little kingdom is really not conducive to spontaneous socialisation. Now, sorry, you cannot contribute to this conversation because you haven't fully read the rules on #welcome, didn't complete the captcha from our bot and, worse of all, you have not chosen a role for yourself.
- Mashimo 2y agoDo you think the same people would behave differently as an IRC server mod?
- nonrandomstring 2y agoI do. See my suggestion above. Software shapes behaviour. If you design software for social interaction you are designing mass behaviours.
- emmanueloga_ 2y agoIRC is often romanticized, but after working with its protocol spec, I found it rather unsavory. Its unstructured message format looks like this: :User1 PRIVMSG User2 :Hello, are you receiving this message? While this might look fine at first glance, the lack of more regular structure caused issues. Some messages are easier to parse than others. Each implementation introduced quirks and variations, creating countless edge cases and hairy parsing code. To be fair, IRC _was_ a product of its time... but s-expressions were invented in the 1950s, so adding more structure and rigor to the messages wasn't out of reach. My memories are from a long time ago so I may be overreacting... perhaps the Ergo authors can comment on their experiences if they are around here! I heard about IRCv3 but I doubt that effort solved most of my main gripes with the protocol. If I were to work on a messaging app today, I'd look elsewhere for inspiration. From a quick search, it seems there's room for a modern and _simple_ protocol for chat, simpler than XMPP or Matrix. Essentially, we need a protocol that is for messaging what Gemini is for HTTP. Stretch: squinting a bit, the NATS client protocol looks close to a starting point for something like that [1]. -- 1: https://docs.nats.io/reference/reference-protocols/nats-protocol https://docs.nats.io/reference/reference-protocols/nats-prot...
- Tepix 2y agoMatrix was invented because XMPP was getting too complex. Are we once again at a point where it's time to start over? A federated asynchronous group chat protocol with modern e2e encryption for desktop and mobile use (thus, not always online) is impossible to build without a faire share of complicated corner cases.
- Gormo 2y ago> Are we once again at a point where it's time to start over? Ask Sisyphus. In the meantime, while everything else keeps going through newer iterations of XKCD 927 (https://xkcd.com/927/ https://xkcd.com/927/), IRC keeps chugging along, and gaining new features and functionality as it enters its fourth decade despite the previous commenter's gripes.
- 2y ago
- sn0n 2y agoCan I connect with.... Bersirc?
- gnabgib 2y agoThose are all IRC clients (this is a server)
- sn0n 2y agoYea I thought I was replying to a comment but it tossed up top, so I edited.
- apetresc 2y agoMaybe, but is there a particular reason you need to use a ~20-year-abandoned IRC client when there's literally dozens of actively-maintained ones for any platform you could reasonably think of?
- siva7 2y agoWhat's wrong with teams?
- miningape 2y agoWhat's right with teams? Every time I open that miserable app I want to deep fry my computer
- Tepix 2y agoFor starters, it's closed source, centralized and proprietary. You have no control over your data and the product's future.
- joeyguerra 2y agoMS Teams is designed to create siloed teams and organizations. It discourages public chat and collaboration. It encourages private group chats.
- prmoustache 2y agoeverything?
- theandrewbailey 2y agoIt should be pretty easy to list one thing then, like the fact that Teams doesn't cook bacon.
- RadiozRadioz 2y agoI refuse to believe this isn't a bait comment. Given that there aren't any humans who like Teams, this is either a joke or you're an alien.
- stackghost 2y agoIt's the singular worst piece of software I've ever used.
- linsomniac 2y agoI think the answer is no, but can Ergo connect to other IRC servers? I'd like to set it up linked with my existing ngircd, for my users to try out, and then if it goes well shut down ngircd, which is a pattern I've used before when migrating between servers.
- crtasm 2y agoIt doesn't support any linking at present: https://github.com/ergochat/ergo/blob/stable/docs/MANUAL.md#scalability https://github.com/ergochat/ergo/blob/stable/docs/MANUAL.md#...
- LinuxBender 2y agoHere [1] is a table that has IRCv3 features by platform and then view each platforms web site to see all the standard features they support outside of IRCv3. FWIW one of the most popular by market share is UnrealIRCD [2]. [1] - https://ircv3.net/software/servers.html https://ircv3.net/software/servers.html [2] - https://www.ircstats.org/servers https://www.ircstats.org/servers