Giter VIP home page Giter VIP logo

ggircd's Introduction

GGircd Build Status

GGircd is a minimalistic IRC server written in Go with the primary goal of being feature compatible with the zhenya_bot IRC bot and a secondary goal of being easy to configure and deploy.

Implementation Status

GGircd currently implements a subset of IRC protocol as defined in RFC 1459, RFC 2812, and various mailing lists. Notable missing features are any form of server-to-server connections, banning users and various status messages.

Installation

Eventually there will be two ways of installing GGircd: from source and from a pre-built binary. Pre-built binaries don't currently exist, so you are stuck with from source.

Installing From Source

Installing from source will give you the most up to date version of GGircd available. Every effort is made to keep this bug free, but sometimes mistakes are made :(

These instructions assumes you already have installed Go. If you haven't installed Go, you can find easy to follow instructions here.

If you already have Go installed, installing GGircd is as easy as:

go get -u github.com/fimad/ggircd/ggircd
go install github.com/fimad/ggircd/ggircd

Running

After installing the ggircd binary will be placed in $GOPATH/bin. This binary takes the following command line arguments:

  • --config takes a path to the ggircd.conf config file. The default value is /etc/ggircd/ggircd.conf.

  • --log takes an integer and controls the verbosity of GGircd's logging. The higher the number the more verbose the logging. The default value is 3.

Configuration

Before you can run GGircd, you'll need to configure your server. Configuration is done in via a JSON encoded file, the default location of which is /etc/ggircd/ggircd.conf.

The ggircd.conf file at the root of this repository provides the minimal configuration necessary to get a server up and running.

Configuration Options

The following are the possible fields that can appear in the ggircd.conf file along with descriptions and example values.

Name

This is the name of your IRC server.

Example: "ggircd"

Network

This is the name of your IRC network. This field is basically meaningless at the moment because multi-server IRC networks are not currently supported.

Example: "My IRC Network"

Port

The port that GGircd should listen on.

Example: 6667

SSLPort

The port that GGircd should listen on for SSL connections.

Example: 6697

SSLCertificate

An object contain the paths for the private key and certificate files (PEM encoded) that are to be used for SSL connections. If this option is empty, then no SSL port will be opened.

Example: {"KeyFile": "./key.pem", "CertFile": "./cert.pem"}

MOTD

The path to a file containing the message of the day. This file should be line wrapped at 80 columns.

Example: "/etc/ggircd/motd"

DefaultChannelMode

This is the default mode all channels will have when they are first created.

Example: "t"

DefaultUserMode

This is the default mode all users will have when they first connect.

Example: "i"

SpoofHostName (Optional)

If given all connected users will be listed as having this host name.

Example: "i.love.plan9.bell-labs.com"

PingFrequency (Optional)

The frequency (in seconds) to send out PING messages to all connected clients. If no value is given, defaults to 30 seconds.

Example: 30

PongMaxLatency (Optional)

The maximum latency a client can respond to a PING message with without being forcefully disconnected. If no value is given, defaults to 5 seconds.

Example: 5

ggircd's People

Contributors

fimad avatar swphantom avatar

Watchers

James Cloos 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.