Merge pull request #379 from weiss/polish-readme

Polish the README file a bit
This commit is contained in:
Evgeny Khramtsov 2014-12-17 18:36:05 +03:00
commit 8781c8346b
1 changed files with 112 additions and 108 deletions

220
README
View File

@ -1,115 +1,121 @@
Ejabberd Community Edition, by ProcessOne ejabberd Community Edition, by ProcessOne
----------------------------------------- =========================================
ejabberd is a distributed, fault-tolerant technology that allows the creation ejabberd is a distributed, fault-tolerant technology that allows the creation
of large-scale instant messaging applications. of large-scale instant messaging applications. The server can reliably support
The server can reliably support thousands of simultaneous users on a single thousands of simultaneous users on a single node and has been designed to
node and has been designed to provide exceptional standards of fault provide exceptional standards of fault tolerance. As an open source
tolerance. technology, based on industry-standards, ejabberd can be used to build bespoke
As an open source technology, based on industry-standards, ejabberd can be solutions very cost effectively.
used to build bespoke solutions very cost effectively.
Key Features: 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 and Mac OS X.
- 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 Jabber server claiming to fully comply to
the XMPP standard.
- Fully XMPP-compliant.
- XML-based protocol.
- Many protocols supported.
- Cross-platform: ejabberd runs under Microsoft Windows and Unix derived Additional Features
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 Jabber 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, Mac OS X.
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 Jabber 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: Moreover, ejabberd comes with a wide range of other state-of-the-art features:
- Modular - **Modularity**
Load only the modules you want. - Load only the modules you want.
Extend ejabberd with your own custom modules. - Extend ejabberd with your own custom modules.
- Security
SASL and STARTTLS for c2s and s2s connections. - **Security**
STARTTLS and Dialback s2s connections. - SASL and STARTTLS for c2s and s2s connections.
Web Admin accessible via HTTPS secure access. - STARTTLS and Dialback s2s connections.
- Databases - Web Admin accessible via HTTPS secure access.
Internal database for fast deployment (Mnesia).
Native MySQL support. - **Databases**
Native PostgreSQL support. - Internal database for fast deployment (Mnesia).
ODBC data storage support. - Native MySQL support.
Microsoft SQL Server support. - Native PostgreSQL support.
- Authentication - ODBC data storage support.
Internal Authentication. - Microsoft SQL Server support.
PAM, LDAP and ODBC.
External Authentication script. - **Authentication**
- Others - Internal authentication.
Support for virtual hosting. - PAM, LDAP and ODBC.
Compressing XML streams with Stream Compression (XEP-0138). - External authentication script.
Statistics via Statistics Gathering (XEP-0039).
IPv6 support both for c2s and s2s connections. - **Others**
Multi-User Chat module with support for clustering and HTML logging. - Support for virtual hosting.
Users Directory based on users vCards. - Compressing XML streams with Stream Compression (XEP-0138).
Publish-Subscribe component with support for Personal Eventing. - Statistics via Statistics Gathering (XEP-0039).
Support for web clients: HTTP Polling and HTTP Binding (BOSH). - IPv6 support both for c2s and s2s connections.
IRC transport. - Multi-User Chat module with support for clustering and HTML logging.
Component support: interface with networks such as AIM, ICQ and MSN - Users Directory based on users vCards.
- Publish-Subscribe component with support for Personal Eventing.
- Support for web clients: HTTP Polling and HTTP Binding (BOSH).
- IRC transport.
- Component support: interface with networks such as AIM, ICQ and MSN.
Quickstart guide: Quickstart guide
================= ----------------
### 0. Requirements
0. Requirements
---------------
To compile ejabberd you need: To compile ejabberd you need:
- GNU Make - GNU Make.
- GCC - GCC.
- Libexpat 1.95 or higher - Libexpat 1.95 or higher.
- Libyaml 0.1.4 or higher - Libyaml 0.1.4 or higher.
- Erlang/OTP R15B or higher. - Erlang/OTP R15B or higher.
- OpenSSL 0.9.8 or higher, for STARTTLS, SASL and SSL encryption. - OpenSSL 0.9.8 or higher, for STARTTLS, SASL and SSL encryption.
- Zlib 1.2.3 or higher, for Stream Compression support - Zlib 1.2.3 or higher, for Stream Compression support (XEP-0138). Optional.
(XEP-0138). Optional.
- PAM library. Optional. For Pluggable Authentication Modules (PAM). - PAM library. Optional. For Pluggable Authentication Modules (PAM).
- GNU Iconv 1.8 or higher, for the IRC Transport - GNU Iconv 1.8 or higher, for the IRC Transport (mod_irc). Optional. Not
(mod_irc). Optional. Not needed on systems with GNU Libc. needed on systems with GNU Libc.
- ImageMagick's Convert program. Optional. For CAPTCHA challenges. - ImageMagick's Convert program. Optional. For CAPTCHA challenges.
1. Compile and install on *nix systems ### 1. Compile and install on *nix systems
--------------------------------------
To compile ejabberd execute the commands: To compile ejabberd execute the commands:
@ -123,16 +129,15 @@ To install ejabberd, run this command with system administrator rights
These commands will: These commands will:
- Install the configuration files in `/etc/ejabberd/` - Install the configuration files in `/etc/ejabberd/`
- Install ejabberd binary, header and runtime files in `/lib/ejabberd/` - Install ejabberd binary, header and runtime files in `/lib/ejabberd/`
- Install the administration script: `/sbin/ejabberdctl` - Install the administration script: `/sbin/ejabberdctl`
- Install ejabberd documentation in `/share/doc/ejabberd/` - Install ejabberd documentation in `/share/doc/ejabberd/`
- Create a spool directory: `/var/lib/ejabberd/` - Create a spool directory: `/var/lib/ejabberd/`
- Create a directory for log files: `/var/log/ejabberd/` - Create a directory for log files: `/var/log/ejabberd/`
2. Start ejabberd ### 2. Start ejabberd
-----------------
You can use the `ejabberdctl` command line administration script to You can use the `ejabberdctl` command line administration script to
start and stop ejabberd. For example: start and stop ejabberd. For example:
@ -141,15 +146,14 @@ start and stop ejabberd. For example:
For detailed information please refer to the ejabberd Installation and For detailed information please refer to the ejabberd Installation and
Operation Guide available online and in the doc directory of sources tarball. Operation Guide available online and in the `doc` directory of the source
tarball.
Links: Links
====== -----
- Guide: http://www.process-one.net/docs/ejabberd/guide_en.html
- Official site: https://www.process-one.net/en/ejabberd
- Community site: http://www.ejabberd.im
- Forum: http://www.process-one.net/en/forum
- Guide: https://www.process-one.net/docs/ejabberd/guide_en.html
- Official site: https://www.process-one.net/en/ejabberd
- Community site: https://www.ejabberd.im
- Forum: https://www.process-one.net/en/forum