2022-07-31 18:00:45 -04:00
2021-10-21 16:05:00 -04:00
2021-12-16 14:38:22 -05:00
2019-01-01 12:57:12 -08:00
2021-10-21 16:03:43 -04:00
2021-12-11 15:00:30 -05:00
2018-08-18 11:37:24 -07:00
2019-07-08 18:39:33 -07:00
2022-07-31 17:25:53 -04:00
2021-10-21 16:03:43 -04:00
2022-07-31 18:00:45 -04:00
2021-12-16 14:46:05 -05:00
2021-10-21 16:03:43 -04:00
2021-10-21 16:03:43 -04:00
2016-10-07 16:34:33 -07:00
2021-12-14 19:13:23 -05:00
2022-06-03 15:32:59 -04:00
2022-06-03 15:32:59 -04:00
2018-08-18 11:40:23 -07:00
2018-08-18 11:40:23 -07:00
2022-07-31 18:00:41 -04:00
2021-10-21 16:03:43 -04:00
2021-10-21 16:03:43 -04:00
2021-10-21 16:03:43 -04:00
2021-10-21 16:03:43 -04:00
2021-10-21 16:03:43 -04:00
2021-12-11 19:28:35 -05:00
2022-06-03 15:47:50 -04:00
2021-10-21 16:03:43 -04:00
2021-12-13 13:23:28 -05:00
2021-10-21 16:03:43 -04:00
2022-07-31 18:00:41 -04:00
2021-10-21 16:03:43 -04:00
2021-10-21 16:03:43 -04:00
2021-10-21 16:03:43 -04:00

terrarium

Build
Status Go Report
Card

terrarium is an IRC server with a focus on being small and understandable, originally forked from horgh/catbox. The goal is to create an easy-to-configure I2P IRC server which is highly stable and secure, while retaining the ability to link with non-I2P IRC servers using TLS in order to bridge anonymous and non-anonymous chat. For now, Bridged servers are not anonymous, this may change in the future as I evaluate the feasibility of outproxies or Tor.

Features

  • Server to server linking
  • IRC operators
  • Private (WHOIS shows no channels, LIST isn't supported)
  • Flood protection
  • K: line style connection banning
  • TLS

terrarium implements enough of RFC 1459 to be recognisable as IRC and be minimally functional. It will intentionally omit unnecessary features. Priority features are those which enable moderation and provide more flexible security.

Plugin Installation URL's

A guide to installing I2P plugins can be found on the I2P web site.

Inside I2P

Outside I2P

Installation

  1. Clone the software from i2pgit.org (git clone https://i2pgit.org/idk/terrarium go/src/i2pgit.org/idk/terrarium && cd go/src/i2pgit.org/idk/terrarium).
  2. Build from source (go build).
  3. Configure terrarium through config files. There are example configs in the conf directory. All settings are optional and have defaults.
  4. Run it, e.g. ./terrarium -conf terrarium.conf. You might run it via systemd via a service such as:
[Service]
ExecStart=/home/ircd/terrarium/terrarium -conf /home/ircd/terrarium/terrarium.conf
Restart=always

[Install]
WantedBy=default.target

Configuration

terrarium.conf

Global server settings.

opers.conf

IRC operators.

servers.conf

The servers to link with.

users.conf

Privileges and hostname spoofs for users.

The only privilege right now is flood exemption.

TLS

A setup for a network might look like this:

  • Give each server a certificate with 2 SANs: Its own hostname, e.g. server1.example.com, and the network hostname, e.g. irc.example.com.
  • Set up irc.example.com with DNS round-robin listing each server's IP.
  • List each server by its own hostname in servers.conf.

Clients connect to the network hostname and verify against it. Servers connect to each other by server hostname and verify against it.

I2P

An example I2P configuration can be found in:

conf/catbox-i2p.conf

That's all the docs I have for now

Why the name?

It was forked from an IRC server called catbox which had a focus on simplicity and understandability. It now has the ability to connect to other IRC servers through I2P Tunnels. Clearnet is to I2P Tunnels is sort of like Catbox is to Terrarium.

Logo

terrarium logo (c) 2017 Bee

Description
An I2P-Focused fork of the catbox IRC server, an IRC server focused on simplicity and understandability which supports server-to-server linking. Catbox=>Terrarium because catboxes are usually open, terrariums are closed and may be linked by tunnels.
Readme 864 KiB
Languages
Go 95.5%
HTML 2.3%
Makefile 1.3%
CSS 0.9%