Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github refactorized config. May 7, 2018
auth added missing comments. Jul 6, 2018
c2s fixed iq handling bug. Jul 17, 2018
errors Implemented XMPP federation. Jul 6, 2018
host updated travis.yml Jul 6, 2018
log Implemented XMPP federation. Jul 6, 2018
model updated travis.yml Jul 6, 2018
module Bug fixed: register new user presence info Aug 1, 2018
pool module: minor changes. Apr 5, 2018
router added missing comments. Jul 6, 2018
s2s added missing comments. Jul 6, 2018
session updated travis.yml Jul 6, 2018
sql Update mysql.sql Jul 31, 2018
storage updated roster.go Aug 1, 2018
stream added missing comments. Jul 6, 2018
testdata Implemented XMPP federation. Jul 6, 2018
transport use tlsStateQueryable in websocket transport. Jul 6, 2018
util Implemented XMPP federation. Jul 6, 2018
vendor added untracked files. Jul 6, 2018
version fixed iq handling bug. Jul 17, 2018
xml Implemented XMPP federation. Jul 6, 2018
.gitignore added missing comments. Jul 6, 2018
.travis.yml updated dep Jul 6, 2018
CHANGELOG.md updated CHANGELOG Jul 17, 2018
CONTRIBUTORS Update CONTRIBUTORS Apr 17, 2018
Dockerfile updated Dockerfile Jul 6, 2018
Gopkg.toml updated dep Jul 6, 2018
LICENSE Update LICENSE Jun 27, 2018
README.md Update README.md Jul 6, 2018
config.go added missing comments. Jul 6, 2018
config_test.go refactorized config. May 7, 2018
docker.jackal.yml Implemented XMPP federation. Jul 6, 2018
example.jackal.yml Implemented XMPP federation. Jul 6, 2018
main.go Implemented XMPP federation. Jul 6, 2018

README.md

jackal

An XMPP server written in Go.

Build Status GoDoc codecov 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+, MariaDB 10.2+)
  • Cross-platform (OS X, Linux)

Installing

Getting Started

To start using jackal, install Go 1.10+ 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.yml file, but alternatively you can specify a custom configuration path from command line.

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

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 GNU General Public License, Version 3.0. See LICENSE for the full license text.

Contact

If you have any suggestion or question:

Miguel Ángel Ortuño, ortuman@pm.me