Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/horgh/catbox
🐈📦 A small IRC server
https://github.com/horgh/catbox
chat daemon distributed-systems irc irc-server ircd server tls
Last synced: about 1 month ago
JSON representation
🐈📦 A small IRC server
- Host: GitHub
- URL: https://github.com/horgh/catbox
- Owner: horgh
- License: agpl-3.0
- Created: 2016-10-07T23:37:27.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-10-27T22:06:54.000Z (about 5 years ago)
- Last Synced: 2024-06-20T01:55:56.726Z (7 months ago)
- Topics: chat, daemon, distributed-systems, irc, irc-server, ircd, server, tls
- Language: Go
- Homepage:
- Size: 701 KB
- Stars: 29
- Watchers: 6
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: COPYING
Awesome Lists containing this project
README
![catbox](doc/catbox-with-text.png)
[![Build
Status](https://travis-ci.org/horgh/catbox.svg)](https://travis-ci.org/horgh/catbox)
[![Go Report
Card](https://goreportcard.com/badge/github.com/horgh/catbox)](https://goreportcard.com/report/github.com/horgh/catbox)catbox is an IRC server with a focus on being small and understandable. The
goal is security.# Features
* Server to server linking
* IRC operators
* Private (WHOIS shows no channels, LIST isn't supported)
* Flood protection
* K: line style connection banning
* TLScatbox implements enough of [RFC 1459](https://tools.ietf.org/html/rfc1459)
to be recognisable as IRC and be minimally functional. I likely won't add
much more and don't intend it to be complete. If I don't think something is
required it likely won't be here.# Installation
1. Download catbox from the Releases tab on GitHub, or build from source
(`go build`).
2. Configure catbox through config files. There are example configs in the
`conf` directory. All settings are optional and have defaults.
3. Run it, e.g. `./catbox -conf catbox.conf`. You might run it via systemd
via a service such as:```
[Service]
ExecStart=/home/ircd/catbox/catbox -conf /home/ircd/catbox/catbox.conf
Restart=always[Install]
WantedBy=default.target
```# Configuration
## catbox.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.# Why the name?
My domain name is summercat.com, cats love boxes, and a tribute to
ircd-ratbox, the IRC daemon I used in the past.# Logo
catbox logo (c) 2017 Bee