diff options
author | Badlop <badlop@process-one.net> | 2022-04-22 20:32:57 +0200 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2022-05-04 02:39:30 +0200 |
commit | bb2cb19a5c2b3be07d44c32a3dc164d293e791c9 (patch) | |
tree | b23ef73c161b0dc7f464d49571fe8a29ff7aba79 /README.md | |
parent | Installers: Add job to create draft release (diff) |
Move some content from README to new COMPILE and CONTAINER files
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 255 |
1 files changed, 85 insertions, 170 deletions
@@ -6,190 +6,105 @@ ejabberd Community Edition [![Translation status](https://hosted.weblate.org/widgets/ejabberd/-/ejabberd-po/svg-badge.svg "Translation status in Weblate")](https://hosted.weblate.org/projects/ejabberd/ejabberd-po/) [![Hex version](https://img.shields.io/hexpm/v/ejabberd.svg "Hex version")](https://hex.pm/packages/ejabberd) -ejabberd is a distributed, fault-tolerant technology that allows the creation -of large-scale instant messaging applications. The server can reliably support -thousands of simultaneous users on a single node and has been designed to -provide exceptional standards of fault tolerance. As an open source -technology, based on industry-standards, ejabberd can be used to build bespoke -solutions very cost effectively. +[ejabberd][im] is an open-source, +robust, scalable and extensible realtime platform built using [Erlang/OTP][erlang], +that includes [XMPP][xmpp] Server, [MQTT][mqtt] Broker and [SIP][sip] Service. -Key Features ------------- - -- **Cross-platform** - ejabberd runs under Microsoft Windows and Unix-derived systems such as - Linux, FreeBSD and NetBSD. - -- **Distributed** - You can run ejabberd on a cluster of machines and all of them will serve the - same XMPP domain(s). When you need more capacity you can simply add a new - cheap node to your cluster. Accordingly, you do not need to buy an expensive - high-end machine to support tens of thousands concurrent users. - -- **Fault-tolerant** - You can deploy an ejabberd cluster so that all the information required for - a properly working service will be replicated permanently on all nodes. This - means that if one of the nodes crashes, the others will continue working - without disruption. In addition, nodes also can be added or replaced ‘on - the fly’. - -- **Administrator-friendly** - ejabberd is built on top of the Open Source Erlang. As a result you do not - need to install an external database, an external web server, amongst others - because everything is already included, and ready to run out of the box. - Other administrator benefits include: - - Comprehensive documentation. - - Straightforward installers for Linux. - - Docker packaging to help with deploy / development on Linux, Windows or MacOS. - - Deb and RPM packaging to support most Linux distributions. - - Web administration. - - Shared roster groups. - - Command line administration tool. - - Can integrate with existing authentication mechanisms. - - Capability to send announce messages. - -- **Internationalized** - ejabberd leads in internationalization. Hence it is very well suited in a - globalized world. Related features are: - - Translated to 25 languages. - - Support for IDNA. - -- **Open Standards** - ejabberd is the first Open Source XMPP server claiming to fully comply to - the XMPP standard. - - Fully XMPP-compliant. - - XML-based protocol. - - Many protocols supported. - - -Additional Features -------------------- - -Moreover, ejabberd comes with a wide range of other state-of-the-art features: - -- **Modularity** - - Load only the modules you want. - - Extend ejabberd with your own custom modules. - -- **Security** - - SASL and STARTTLS for c2s and s2s connections. - - STARTTLS and Dialback s2s connections. - - Web Admin accessible via HTTPS secure access. - -- **Databases** - - Internal database for fast deployment (Mnesia). - - Native MySQL support. - - Native PostgreSQL support. - - ODBC data storage support. - - Microsoft SQL Server support. - -- **Authentication** - - Internal authentication. - - PAM, LDAP and ODBC. - - External authentication script. - -- **Others** - - Support for virtual hosting. - - Compressing XML streams with Stream Compression (XEP-0138). - - Statistics via Statistics Gathering (XEP-0039). - - IPv6 support both for c2s and s2s connections. - - Multi-User Chat module with support for clustering and HTML logging. - - Users Directory based on users vCards. - - Publish-Subscribe component with support for Personal Eventing. - - Support for web clients: HTTP Polling and HTTP Binding (BOSH). - - Component support: interface with networks such as AIM, ICQ and MSN. - - -Quickstart guide ----------------- - -### 0. Requirements - -To compile ejabberd you need: - - - GNU Make. - - GCC. - - Libexpat ≥ 1.95. - - Libyaml ≥ 0.1.4. - - Erlang/OTP ≥ 19.3. - - OpenSSL ≥ 1.0.0. - - Zlib ≥ 1.2.3, for Stream Compression support (XEP-0138). Optional. - - PAM library. Optional. For Pluggable Authentication Modules (PAM). - - ImageMagick's Convert program and Ghostscript fonts. Optional. For CAPTCHA - challenges. - - Elixir ≥ 1.10.3. Optional. Alternative to build ejabberd - -If your system splits packages in libraries and development headers, you must -install the development packages also. - -### 1. Compile and install on *nix systems +Check the features in [ejabberd.im][im], [ejabberd Docs][features], +[ejabberd at ProcessOne][p1home], and a list of [supported protocols and XEPs][xeps]. -To compile ejabberd, execute the following commands. The first one is only -necessary if your source tree didn't come with a `configure` script (In this -case you need autoconf installed). - - ./autogen.sh - ./configure - make - -To install ejabberd, run this command with system administrator rights (root -user): - - sudo make install - -These commands will: - -- Install the configuration files in `/etc/ejabberd/` -- Install ejabberd binary, header and runtime files in `/lib/ejabberd/` -- Install the administration script: `/sbin/ejabberdctl` -- Install ejabberd documentation in `/share/doc/ejabberd/` -- Create a spool directory: `/var/lib/ejabberd/` -- Create a directory for log files: `/var/log/ejabberd/` - - -### 2. Start ejabberd - -You can use the `ejabberdctl` command line administration script to -start and stop ejabberd. For example: - - ejabberdctl start - - -For detailed information please refer to the -[ejabberd Documentation](https://docs.ejabberd.im) +Installation +------------ -### 3. Use ejabberd locally +There are several ways to install ejabberd: -Alternatively, you can setup ejabberd without installing in your system: +- Source code: compile yourself, see [COMPILE](COMPILE.md) +- Installers from [ProcessOne Downloads][p1dl] (run/deb/rpm for x64) +- Installers from [ejabberd GitHub Releases][releases] (run/deb/rpm for x64 and arm64) +- Container image from [ejabberd Docker Hub][hubecs], see [ecs README][docker-ecs-readme] (for x64) +- Container image from [ejabberd Github Packages][packages], see [CONTAINER](CONTAINER.md) (for x64 and arm64) +- Using your [Operating System package][osp] +- Using the [Homebrew][homebrew] package manager - ./configure --with-rebar=rebar3 - make dev -Or, if you have Elixir available and plan to develop Elixir code: +Documentation +------------- - ./configure --with-rebar=mix - make dev +Please check the [ejabberd Docs][docs] website. -Check the full list of targets: +When compiling from source code, you can get some help with: + ./configure --help make help +Once ejabberd is installed, try: -Translation ------------ - -Using any gettext editor, you can improve the translation files found in -`priv/msgs/*.po`, and then submit your changes. + ejabberdctl help + man ejabberd.yml -Alternatively, a simple way to improve translations is using our Weblate project: -https://hosted.weblate.org/projects/ejabberd/ejabberd-po/ +Development +----------- -Links ------ - -- Documentation: https://docs.ejabberd.im -- Community site: https://www.ejabberd.im -- ejabberd commercial offering and support: https://www.process-one.net/en/ejabberd +Bug reports and features are tracked using [GitHub Issues][issues], +please check [CONTRIBUTING](CONTRIBUTING.md) for details. + +Translations can be improved online [using Weblate][weblate] +or in your local machine as explained in [Localization][localization]. + +Documentation for developers is available in [ejabberd docs: Developers][docs-dev]. + +Security reports or concerns should preferably be reported privately, +please send an email to the address: contact [at] process-one [dot] net +or some other method from [ProcessOne Contact][p1contact]. + +For commercial offering and support, including _ejabberd Business Edition_ +and _Fluux (ejabberd in the Cloud)_, please check [ProcessOne ejabberd page][p1home]. + + +Community +--------- + +There are several places to get in touch with other ejabberd developers and administrators: + +- [ejabberd XMPP chatroom][muc]: ejabberd@conference.process-one.net +- [Mailing list][list] +- [GitHub Discussions][discussions] +- [Stack Overflow][stackoverflow] + + +License +------- + +ejabberd is released under the GNU General Public License v2 (see [COPYING](COPYING.md)), +and [ejabberd translations](https://github.com/processone/ejabberd-po/) under MIT License. + + +[discussions]: https://github.com/processone/ejabberd/discussions +[docker-ecs-readme]: https://github.com/processone/docker-ejabberd/tree/master/ecs#readme +[docs-dev]: https://docs.ejabberd.im/developer/ +[docs]: https://docs.ejabberd.im +[erlang]: https://www.erlang.org/ +[features]: https://docs.ejabberd.im/admin/introduction/ +[github]: https://github.com/processone/ejabberd +[homebrew]: https://docs.ejabberd.im/admin/installation/#homebrew +[hubecs]: https://hub.docker.com/r/ejabberd/ecs/ +[im]: https://ejabberd.im/ +[issues]: https://github.com/processone/ejabberd/issues +[list]: https://lists.jabber.ru/mailman/listinfo/ejabberd +[localization]: https://docs.ejabberd.im/developer/extending-ejabberd/localization/ +[mqtt]: https://mqtt.org/ +[muc]: xmpp:ejabberd@conference.process-one.net +[osp]: https://docs.ejabberd.im/admin/installation/#operating-system-packages +[p1contact]: https://www.process-one.net/en/company/contact/ +[p1dl]: https://www.process-one.net/en/ejabberd/downloads/ +[p1home]: https://www.process-one.net/en/ejabberd/ +[packages]: https://github.com/processone/ejabberd/pkgs/container/ejabberd +[releases]: https://github.com/processone/ejabberd/releases +[sip]: https://en.wikipedia.org/wiki/Session_Initiation_Protocol +[stackoverflow]: https://stackoverflow.com/questions/tagged/ejabberd?sort=newest +[weblate]: https://hosted.weblate.org/projects/ejabberd/ejabberd-po/ +[xeps]: https://www.process-one.net/en/ejabberd/protocols/ +[xmpp]: https://xmpp.org/ |