Giter Site home page Giter Site logo

catbox's Introduction

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.

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

catbox's People

Contributors

eyedeekay avatar horgh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.