An XMPP server written in Go.
jackal is a free, open-source, high performance XMPP server which aims to be known for its stability, simple configuration and low resource consumption.
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)
To start using jackal, install Go 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
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.
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
- XEP-0030 Service Discovery
- XEP-0049 Private XML Storage
- XEP-0054 vcard-temp
- XEP-0077 In-Band Registration
- XEP-0092 Software Version
- XEP-0138 Stream Compression
- XEP-0160: Best Practices for Handling Offline Messages
- XEP-0199 XMPP Ping
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.
jackal is licensed under the Mozilla Public License, Version 2.0. See LICENSE for the full license text.
If you have any suggestion or question:
Miguel Ángel Ortuño, ortuman@protonmail.com