* Erlang, haproxy, rabbitmq, redis, postgres, cassandra, chef
* 10+ billion irc lines stored at the last count
* Thousands of IPv6 IRC connections - we give each user their own IPv6 address. Main site also works over ipv6.
* Thousands of IPv4 connections too
* Open source android and ios apps: https://blog.irccloud.com/mobile-apps-open-sourced/
* API: https://github.com/irccloud/irccloud-tools/wiki/API-Overview
* Details on our security, password storage, etc: https://www.irccloud.com/privacy
I've mentioned this on HN before, but we moved our hosting off Hetzner and on to Black Lotus for the ddos-protection.
We see fairly frequent ddos attacks, from a few hundred mbit to 10+ gbit. They aren't impacting service since we moved to black lotus.
I really want an IRC kernel with an API, so I can have all sorts of clients on different machines/platforms, but it seems to be impossible at the moment, without using the horrible bouncers.
Here's what I'd speculate:
- Redis: message lists for active users
- Postgres: account details
- Cassandra: all messages
All the irc messages end up in cassandra, via rabbitmq. We use local redis as a cache for the most recent messages. Our cassandra cluster is on EC2 (~11ms away from our other hardware, which is in LA).
For me, it's only really useful with a backlog of perhaps 7 days, the rest I would like to have permanently deleted, it would make me feel more comfortable using the service.
I'm not judging, i simply ask because a lot of people are connecting to Freenode/Freenode-like locations where he majority of the channels are already logged 24/7 by you, countless others, and bots publishing the content to the web.
If you're not comfortable with terminal based clients, you can run a bouncer like znc and connect with your irc client of choice.
But then again, if you're using IRC today then you probably have this figured out already.
I ran a bouncer for a while, but honestly, it's really nice being able to pay these guys a few bucks and have them deal with it. It has a matching Android app, and the transition between my various machines is very smooth.
But really, the main reason I use them is because I don't have to mess with running a bouncer or using a console-based IRC client. It's one less piece of mental clutter for me.
Do I just have less time? Are the services just better? Or is something more fundamental changing in the fabric of the web? (Maybe this is what the indieweb folks are trying to harken back to?)
I don't feel like doing that anymore. I'd rather spend the time on something else.
† behavior covers both technical (features, compatibility...) and ideological (privacy, openness...) areas.
Same could be said for hosting a site, or hosting your code, or using EC2 instances, or buying precooked meals, and so on.
Sometimes people would rather have others deal with it and use their own time on other things.
The dropbox comparison is a bad one because it takes way more effort to set it up -- without spending a ton of effort you won't get anywhere near what dropbox offers.
I personal use a terminal client, but sometimes I'd like to have a client that I can use a mouse on, or is more responsive over bad connections, which can be painful.
And then bouncers have tons of problems. They really require understanding what's going on, and you have all types of channel connection problems. And in particular, they are difficult to handle messages that came in offline, or on other machines. And just are much more complicated then they should be.
And both have other problems, like difficulty reconnecting and the like.
I'm not sure irccloud will solve these problems. But there are for sure many problems that neither an ssh connection or a bouncer solve.
Or has it recently got such support ?
If anyone's curious, here it is:
In addition to this they have a fantastic iOS client.
As much as I love the interface and idea (I really do) and I love the App, for me as an operator it requires making large exceptions in my connection limiting.
I usually only allow 25 connected users from a single IP, and I use GeoIP to get people a node near them- so- when people connect using irccloud they lose that benefit, and it means I have 100's of connections from ealing.irccloud.com-
in the past there has also been some issue with availability, it's weird when netsplit like events happen and you have no control. (although I believe they fixed the issue with ddos)
personally, I don't use irccloud day to day, I use xchat and 'Palaver' for iPhone, which my friend develops- he also maintains ZNC so his app has push notifications on highlight. (as long as you're not connected to ZNC or your client is marked 'Away')
Everything of his is open source (except palaver I think, it's paid), so; if you're interested in IRC I'd take a poke.
he also intends on making a web client, similar to irccloud, however he's terrible at design so don't hold your breath.
Some ircds by default limit sessions per ipv6 /64, but that's easily changed if needed.
we always use ipv6 if an AAAA record exists, and fall back to v4 if that fails.
As an aside: one doesn't exclude the other. Though I'll admit the combination doesn't happen quite that much.
I also really admire their licensing strategy. The entire project is open source; build it yourself or pay us to do it (then we'll throw in support as well).
Expandable using scripts written in AppleScript, Ruby,
Python, Perl, PHP, and Objective-C.
[Though maybe I'm just being pedantic.]
I've been running Quassel-core on a linux-server and the client on all my endpoints and it works fantastically. Plus I am in control of everything. Replaced irssi+tmux for me instantly.
From their website:
"Quassel IRC is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core -- much like the popular combination of screen and a text-based IRC client such as WeeChat, but graphical."
Seems too limited to be useful. Setting up an IRC server, with a bouncer on a $5/month droplet would be more useful.
But we don't act as a traditional bouncer yet. Maybe in future.. it's all about the web app and mobile apps for the time being.
We were on the HN frontpage when we first launched. It went ok, but we got a strong message that we needed a free plan.
After holding out for a year, we've finally added one. You should try it out! :)
One question: how do you compete with some of the other IRC bouncer services that seem to offer their bouncers for free? It seems like there are at least a couple that are running on just donations (found with the same search 'irc bouncer hosting').
I think it comes down to reliability. We offer a service with very little downtime (only a few hours in 2013 during a large, planned transition we were doing).
Additionally, we do a lot of support for folks, usually with fast response times.
I've talked to a few folks coming from community hosted bouncers and I hear, anecdotally, stuff in line with the above.
Sure, it's primarily used for gaming, but the ability exists to use a text-based client, and everything is encrypted by default.
You connect to a server using http://irc.lc/<servername>/<channel>, say like http://irc.lc/freenode/ruby. Its pretty cool too, worth checking out.
At best you could build something like HipChat or Olark using IRC as a backbone and hide all the complexity of it from the end user and maybe then you have a chance.
Finally, less people are using IRC all the time. If you look at channels that have been around a long time, they've got less users than they used to.
as a result, despite the awesome features of XMPP, IRC is simply more extentable and easy to develop around- whilst also being basic to implement.
Maybe it's changed, but I remember trying to communicate w/ IRC servers via telnet (prior to netcat) a while ago (maybe 8 years) and I do recall that most of them have deviated from the 'official' spec (specifically the initial connection handshake). I actually had a chat about this with the epic4 devs at the time.
At least XMPP has an official spec. My impression of the IRC world is that it's a de-facto standard. Though there are many implementations that one can clean the details from, cracking open irssi-core to figure out what the protocol is seems a little more difficult than reading an RFC and dealing w/ XML (it's not like we don't have tools built around XML; I would lean heavily on XPath).
Personally I use Irissi with an extension that pushes hilights to my phone and connecting via SSH isn't a big issue on any device.
I'm using my bouncer on for about 10 years now and never missed one line of chat in about 5 IRC Networks (Quakenet/ Freenode/ ETG/ Gamesurge/ OFTC).