ejabberd

强大、无处不在且可大规模扩展的Jabber/XMPP即时消息平台。(Robust, ubiquitous and massively scalable Jabber / XMPP Instant Messaging platform.)

Github星跟蹤圖

ejabberd Community Edition

ejabberd是一种分布式容错技术,可以创建大规模的即时消息应用程序。 该服务器可以在单个节点上可靠地支持数千个并发用户,并且旨在提供出色的容错标准。 作为一种基于行业标准的开源技术,ejabberd可用于以极具成本效益的方式构建定制解决方案。

主要功能

  • 跨平台 ejabberd在Microsoft Windows和Unix衍生系统(如Linux,FreeBSD和NetBSD)下运行。
  • 分布式 您可以在一组计算机上运行ejabberd,它们将为相同的XMPP域提供服务。当您需要更多容量时,只需向群集添加一个新的廉价节点即可。因此,您不需要购买昂贵的高端机器来支持数万个并发用户。
  • 容错 您可以部署ejabberd群集,以便在所有节点上永久复制正常工作服务所需的所有信息。这意味着如果其中一个节点崩溃,其他节点将继续工作而不会中断。此外,节点也可以“即时”添加或替换。
  • 管理员友好 ejabberd建立在开源Erlang之上。因此,您不需要安装外部数据库,外部Web服务器等,因为所有内容都已包含在内,并且已准备好开箱即用。其他管理员权益包括:
    • 全面的文档。
    • 适用于Linux和Mac OS X的直接安装程序。
    • 网站管理。
    • 共享名册组。
    • 命令行管理工具。
    • 可以与现有的认证机制整合。
    • 能够发送通知消息。
  • 国际化 ejabberd在国际化方面处于领先地位。因此它非常适合于 全球化的世界。相关功能是:
    • 翻译成25种语言。
    • 支持IDNA。
  • 开放标准
    ejabberd是第一个声称完全遵守的开源Jabber服务器 XMPP标准。
    • 完全符合XMPP。
    • 基于XML的协议。
    • 支持多种协议。

其他功能

此外,ejabberd还提供了其他各种最先进的功能:

  • 模块化
    • 只加载你想要的模块。
    • 用您自己的自定义模块扩展ejabberd。
  • 安全
    • 适用于c2s和s2s连接的SASL和STARTTLS。
    • STARTTLS和Dialback s2s连接。
    • 可通过HTTPS安全访问访问的Web Admin。
  • 数据库
    • 用于快速部署的内部数据库(Mnesia)。
    • Native MySQL支持。
    • 本地PostgreSQL支持。
    • ODBC数据存储支持。
    • Microsoft SQL Server支持。
  • 验证
    • 内部身份验证。
    • PAM,LDAP和ODBC。
    • 外部验证脚本。
  • 其他
    • 支持虚拟主机。
    • 使用流压缩压缩XML流(XEP-0138)。
    • 通过统计信息收集统计(XEP-0039)。
    • IPv6支持c2s和s2s连接。
    • 支持群集和HTML记录的多用户聊天模块。
    • 基于用户vCards的用户目录。
    • 发布订阅组件,支持个人事件。
    • 支持Web客户端:HTTP轮询和HTTP绑定(BOSH)。
    • IRC传输。
    • 组件支持:与网络(如AIM,ICQ和MSN)的接口。

快速入门指南

0.要求

编译ejabberd需要:

  • GNU Make。
  • GCC
  • Libexpat 1.95或更高版本。
  • Libyaml 0.1.4或更高版本。
  • Erlang/OTP 17.5或更高版本。
  • OpenSSL 1.0.0或更高版本,适用于STARTTLS,SASL和SSL加密。
  • 支持流压缩的Zlib 1.2.3或更高版本(XEP-0138)。可选的。
  • PAM库。可选的。适用于可插入认证模块(PAM)。
  • GNU Iconv 1.8或更高版本,用于IRC传输(mod_irc)。可选的。不 在使用GNU Libc的系统上需要。
  • ImageMagick的转换程序。可选的。对于CAPTCHA挑战。

如果您的系统在库和开发包头中拆分包,则必须 也安装开发包。

1.编译并安装在*nix系统上

要编译ejabberd,请执行以下命令。第一个只是 如果你的源代码树没有配置 configure 脚本(在这里 你需要安装autoconf)。

./autogen.sh
./configure
make

要安装ejabberd,请使用系统管理员权限(root)运行此命令 用户):

sudo make install

这些命令将会:

  • 在/etc/ejabberd/
  • 中安装配置文件
  • 在/lib/ejabberd/中安装ejabberd二进制文件,头文件和运行时文件
  • 安装管理脚本:/sbin/ejabberdctl
  • 在/share/doc/ejabberd/中安装ejabberd文档
  • 创建一个假脱机目录:/var/lib/ejabberd/
  • 为日志文件创建一个目录:/var/log/ejabberd/

2.启动ejabberd

您可以使用 ejabberdctl 命令行管理脚本 开始和停止ejabberd。例如:

ejabberdctl开始

有关详细信息,请参阅ejabberd安装和 操作指南可在线获取并在源码的 doc 目录中找到压缩包。

开发

为了协助ejabberd的发展,特别是 测试套件的执行,Vagrant环境可在 https://github.com/processone/ejabberd-vagrant-dev

要从存储库目录以开发模式启动ejabberd,您可以 键入一个命令,如:

EJABBERD_CONFIG_PATH=ejabberd.yml erl -pa ebin -pa deps/*/ebin -pa test -pa deps/elixir/lib/*/ebin/ -s ejabberd

链接

概覽

名稱與所有者processone/ejabberd
主編程語言Erlang
編程語言Shell (語言數: 14)
平台BSD, Linux, Unix-like, Windows
許可證Other
發布數106
最新版本名稱24.02 (發布於 2024-02-27 10:34:39)
第一版名稱v0.1.0 (發布於 2010-02-03 15:10:10)
創建於2010-02-08 10:37:25
推送於2024-04-25 00:55:28
最后一次提交2024-04-24 17:23:53
星數5.9k
關注者數275
派生數1.5k
提交數9.4k
已啟用問題?
問題數3324
打開的問題數186
拉請求數500
打開的拉請求數10
關閉的拉請求數203
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

ejabberd Community Edition

Build Status Hex version

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.

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.

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.

If your system splits packages in libraries and development headers, you must
install the development packages also.

1. Compile and install on *nix systems

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 Installation and
Operation Guide available online and in the doc directory of the source
tarball.

Development

In order to assist in the development of ejabberd, and particularly the
execution of the test suite, a Vagrant environment is available at
https://github.com/processone/ejabberd-vagrant-dev.

To start ejabberd in development mode from the repository directory, you can
type a command like:

EJABBERD_CONFIG_PATH=ejabberd.yml erl -pa ebin -pa deps/*/ebin -pa test -pa deps/elixir/lib/*/ebin/ -s ejabberd
去到頂部