A scalable, fault-tolerant XMPP instant messaging server written in Erlang, designed for large enterprise installations.
igniterealtime/Openfire
A Java XMPP real-time collaboration server for instant messaging, licensed under Apache 2.0.
Open-source alternative to:Slack
- Stars
- 3,074
- Forks
- 1,399
- Open issues
- 67
- Last commit
- 21 hours ago
What is it?
Openfire is a real-time collaboration (RTC) server built on XMPP, also known as Jabber, the widely adopted open protocol for instant messaging. It lets organizations run their own chat and presence infrastructure rather than relying on a hosted messaging service.
The project is written in Java and is developed as an Ignite Realtime community project. The core server lives in a Maven module, and the build produces a runnable distribution that can be started from a shell script or batch file on different platforms. Its admin interface is internationalised, and the repository includes a plugin build setup for extending the server.
Developers working on the codebase can build the full project with Maven, or build only the core server and its dependencies for faster iteration. Bug reports go through the Ignite Realtime community forum.
Key features
- 01Implements the XMPP protocol for instant messaging and presence.
- 02Includes a web-based admin interface that is internationalised.
- 03Supports a plugin system, with plugins built through Maven.
- 04Runs on multiple platforms via shell and batch startup scripts.
Use cases
- Hosting a self-managed internal chat server for a company or team.
- Adding XMPP-based messaging to an existing application or service.
- Studying or contributing to a large, long-running Java XMPP server codebase.
Quick start
- 1
Build the project with Maven wrapper
./mvnw verify -pl distribution -am - 2
Start Openfire using the shell script
./distribution/target/distribution-base/bin/openfire.sh
Things to know
- Building from source requires a Java toolchain and Maven, and the README covers only the source build path.
- Running on Windows uses a separate batch file, and the IDE cannot launch the server directly.
In collections
Topics
FAQ
- What is Openfire?
- A Java XMPP real-time collaboration server for instant messaging, licensed under Apache 2.0. Openfire is a real-time collaboration (RTC) server built on XMPP, also known as Jabber, the widely adopted open protocol for instant messaging. It lets organizations run their own chat and presence infrastructure rather than relying on a hosted messaging service.
- Is Openfire free to use? What license does it have?
- Openfire is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is Openfire still maintained?
- Actively maintained. The last commit to Openfire was on Nov 6, 2026.
- What can I use Openfire for?
- Hosting a self-managed internal chat server for a company or team. Adding XMPP-based messaging to an existing application or service. Studying or contributing to a large, long-running Java XMPP server codebase.
- How do I install Openfire?
- Build the project with Maven wrapper: ./mvnw verify -pl distribution -am Start Openfire using the shell script: ./distribution/target/distribution-base/bin/openfire.sh
- Where can I get Openfire?
- The source code and installation instructions are on GitHub: https://github.com/igniterealtime/Openfire
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A browser-based XMPP chat client that runs entirely client-side, usable as a standalone app or embedded in existing websites.
Go backend for OCTO, an open workplace where humans and AI agents collaborate, with REST and WebSocket APIs and WuKongIM-based real-time messaging.
Self-hostable instant messaging server in Go with native Android, iOS and web clients, plus JSON/websocket and gRPC APIs.
Java-based XMPP/Jabber chat server, modular and configurable, supporting client connections over TCP, BOSH and WebSockets.
A chat server built on uWebSockets.js that offers an alternative to XMPP, with a Node.js backend, MongoDB and Redis.