Skip to content

sotoup/jackal

 
 

Repository files navigation

jackal

An XMPP server written in Go.

Build Status GoDoc codecov codebeat badge Codacy Badge Go Report Card License Docker Pulls Join the chat at https://gitter.im/jackal-im/jackal

About

jackal is a free, open-source, high performance XMPP server which aims to be known for its stability, simple configuration and low resource consumption.

Features

jackal supports the following features:

  • Customizable
  • Enforced SSL/TLS
  • Stream compression (zlib)
  • Database connectivity for storing offline messages and user settings (BadgerDB, MySQL 5.7.x)
  • Cross-platform (OS X, Linux)

Installing

Getting Started

To start using jackal, install Go 1.9+ and run go get:

$ go get github.com/ortuman/jackal

This will retrieve the code and install the jackal server application into your $GOBIN path.

By default the application will try to read server configuration from /etc/jackal/jackal.yaml file, but alternatively you can specify a custom configuration path from command line.

$ jackal --config=$GOPATH/src/github.com/ortuman/jackal/example.jackal.yaml

Generate self-signed certificate

jackal server enforces the use of an encrypted connection, so you'll have to provide at least a private key and a self signed certificate. In order to generate them run the following commands:

Generate private key.

openssl genrsa -out server.key 2048

Generate self signed certificate associated to localhost domain.

openssl req -new -x509 -key server.key -out server.crt -days 365 -subj "/C=CN/ST=Madrid/L=Madrid/O=Me/OU=Me/CN=localhost"

MySQL database creation

Grant right to a dedicated 'jackal' user (replace password with your desired password).

echo "GRANT ALL ON jackal.* TO 'jackal'@'localhost' IDENTIFIED BY 'password';" | mysql -h localhost -u root -p

Create 'jackal' database (using previously created password).

echo "CREATE DATABASE jackal;" | mysql -h localhost -u jackal -p

Download lastest version of the MySQL schema from jackal Github repository.

wget https://raw.githubusercontent.com/ortuman/jackal/master/sql/mysql.sql

Load database schema into the database.

mysql -h localhost -D jackal -u jackal -p < mysql.sql

Your database is now ready to connect with jackal.

Run jackal in Docker

Set up jackal in the cloud in under 5 minutes with zero knowledge of Golang or Linux shell using our jackal Docker image.

$ docker pull ortuman/jackal
$ docker run --name jackal -p 5222:5222 ortuman/jackal

Supported Specifications

Join and Contribute

The jackal developer community is vital to improving jackal future releases.

Contributions of all kinds are welcome: reporting issues, updating documentation, fixing bugs, improving unit tests, sharing ideas, and any other tips that may help the jackal community.

Licensing

jackal is licensed under the Mozilla Public License, Version 2.0. See LICENSE for the full license text.

Contact

If you have any suggestion or question:

Miguel Ángel Ortuño, ortuman@protonmail.com

About

An XMPP server written in Go.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%