Find a file
Simon Ser 6c1634799a
Allow multiple listeners, default to ircs
Users can now specify multiple "listen" directives in their
configuration file. If -listen is specified on the CLI, it's added to
the list of listeners.

Listeners are now parsed as URLs. If the scheme is missing "ircs" is
assumed. URLs allow to enable/disable TLS on a per-listener basis and
will be used for Unix sockets too.

The default listening address is changed from irc+insecure://:6667 to
ircs://:6697. This avoids setting up an insecure listener opened to
everybody.
2020-06-04 20:16:23 +02:00
cmd Allow multiple listeners, default to ircs 2020-06-04 20:16:23 +02:00
config Allow multiple listeners, default to ircs 2020-06-04 20:16:23 +02:00
doc Allow multiple listeners, default to ircs 2020-06-04 20:16:23 +02:00
.build.yml ci: add builds.sr.ht manifest 2020-03-18 10:28:58 +01:00
.gitignore doc: document "network delete" 2020-04-01 17:38:09 +02:00
bridge.go Add support for multiple user channel memberships 2020-05-11 12:25:49 +02:00
conn.go Introduce ircConn 2020-06-04 17:27:57 +02:00
db.go Implement upstream SASL EXTERNAL support 2020-06-02 11:24:22 +02:00
downstream.go Introduce ircConn 2020-06-04 17:27:57 +02:00
go.mod Remove some IRCv3 constants 2020-03-19 14:51:45 +01:00
go.sum Remove some IRCv3 constants 2020-03-19 14:51:45 +01:00
irc.go Add support for TAGMSG and client message tags 2020-05-27 23:48:08 +02:00
LICENSE Switch license to AGPLv3 2020-02-07 17:41:51 +01:00
logger.go Parse timestamp from message tags in messageLogger.Append 2020-04-08 10:19:33 +02:00
Makefile Move man page to doc/ 2020-03-27 19:23:41 +01:00
README.md Allow multiple listeners, default to ircs 2020-06-04 20:16:23 +02:00
ring.go Remove Ring.consumers 2020-04-07 14:46:31 +02:00
server.go Remove keepAlivePeriod 2020-06-04 18:38:04 +02:00
service.go Introduce ircConn 2020-06-04 17:27:57 +02:00
upstream.go Introduce ircConn 2020-06-04 17:27:57 +02:00
user.go Add network update command 2020-06-04 13:04:39 +02:00

soju

builds.sr.ht status

A user-friendly IRC bouncer.

  • Multi-user
  • Support multiple clients for a single user, with proper backlog synchronization
  • Support connecting to multiple upstream servers via a single IRC connection to the bouncer

Usage

go run ./cmd/sojuctl create-user <username>
go run ./cmd/soju -listen irc+insecure://127.0.0.1:6667

Then connect with username <username>/chat.freenode.net and join #soju.

See the man page at doc/soju.1.scd for more information.

Contributing

Send patches on the mailing list or on GitHub, report bugs on the issue tracker. Discuss in #soju on Freenode.

License

AGPLv3, see LICENSE.

Copyright (C) 2020 Simon Ser