Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xe/tetra
Next generation extended services for TSora
https://github.com/xe/tetra
atheme completed-project go irc lua
Last synced: about 2 months ago
JSON representation
Next generation extended services for TSora
- Host: GitHub
- URL: https://github.com/xe/tetra
- Owner: Xe
- License: zlib
- Created: 2014-07-07T21:00:02.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-08-29T18:16:31.000Z (over 9 years ago)
- Last Synced: 2024-06-20T06:38:19.146Z (6 months ago)
- Topics: atheme, completed-project, go, irc, lua
- Language: Go
- Homepage:
- Size: 3.29 MB
- Stars: 9
- Watchers: 5
- Forks: 2
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Tetra
[![GoDoc](https://godoc.org/github.com/Xe/Tetra?status.svg)](https://godoc.org/github.com/Xe/Tetra)
Tetra is an extended services package for TS6 IRC daemons with Lua and
Moonscript support.## Features
- JSON API
- Lua / Moonscript script loading
- Hooking on protocol events
- Hooking on arbitrary events
- Client/Channel/Server link tracking
- Statistics via influxdb
- Persistent data via etcd
- Atheme integration### Things still in progress
- Feature parity with Cod
- Documentation on migration from Cod to Tetra
- Scripts being able to define webpagesBuilding a script for Tetra is as easy as:
```moonscript
Command "PING", ->
"PONG"
```## Installation
### From git
You need the following buildtime dependencies:
- `liblua5.1-dev`
- `golang`
- `libsqlite3-dev`Example commands to set up the global environment needed for Tetra are in the
included `Dockerfile`.```console
$ go get github.com/Xe/Tetra
$ cd $GOPATH/github.com/Xe/Tetra
```Continue with configuration.
### From a tarball
Install `liblua5.1-dev` then extract the tarball and continue with
configuration.## Configuration
Look at the example config, copy it to `etc/config.yaml` or set
`TETRA_CONFIG_PATH` to a file on the disk. Edit the config to your needs.## Running
You need to set up `etcd` for runtime key->value support for Tetra. You also
need to set up InfluxxDB if you want to have Tetra track channel and server
statistics. An instance of Atheme with the XMLRPC module loaded is required.You need the following lua rocks:
- `luasocket`
- `moonscript`
- `yaml`
- `json4lua`
- `lsqlite3`All are available in [moonrocks](http://rocks.moonscript.org).