Self-hosted server software for deploying decentralized and federated communication platforms using the Matrix protocol.
Synapse is a decentralized communication server implementation that enables real-time messaging and data exchange across the global Matrix federation. It functions as a homeserver, allowing operators to host their own nodes while maintaining control over personal data and user identity within a distributed network. The server utilizes a federated messaging protocol to exchange messages and user data with independent servers, ensuring consistent state across the network. To support high-traffic environments, it employs a distributed service architecture that offloads tasks to independent background processes, facilitating horizontal scaling and high availability. The platform includes extensive support for administrative customization and operational management. Operators can extend server functionality through a module-based architecture, integrate external identity providers for centralized single sign-on authentication, and monitor instance health through structured metric exporting. The software also manages its own evolution through schema-versioned database migrations to ensure compatibility during updates.
Synapse is the reference implementation of a Matrix homeserver, providing full support for federation, end-to-end encryption, and the complete suite of features required to host a decentralized communication node.
Element Web is a web-based communication interface and collaboration platform built on the Matrix open standard. It functions as a client application for sending and receiving real-time messages and facilitating decentralized team communication. The project provides a cross-platform messaging interface that operates within web browsers and can be deployed as a standalone desktop application. It includes a multi-language user interface designed to support a global audience through localization.
This repository is a client application for the Matrix protocol rather than a server implementation, meaning it provides the user interface for messaging but lacks the backend infrastructure required to host a homeserver.
libsignal is a cryptographic library that implements the Signal Protocol, providing the core primitives for end-to-end encrypted messaging with forward secrecy and deniable authentication. It includes the Double Ratchet algorithm for iteratively deriving fresh encryption keys per message, and the X3DH key agreement protocol for establishing shared secrets between parties asynchronously. A session state machine maintains cryptographic state across message exchanges, supporting recovery and out-of-order delivery. The library extends beyond basic messaging encryption with capabilities such as zero-knowledge proof group membership verification, which allows confirming a user's group membership without revealing the full group roster. It also supports hardware attestation verification to validate the identity and integrity of remote hardware security modules, and provides for secure device migration—transferring account data from one device to another while preserving encryption keys. Additional scope includes a Rust C FFI bridge that exposes cryptographic functions as a cross-platform API, enabling integration from multiple programming languages without rewriting core logic. The library covers end-to-end encryption, group membership verification, and device migration security as distinct capability areas.
This is a cryptographic library providing the underlying security primitives for messaging, but it is not a Matrix homeserver and lacks the federation, user management, and protocol-specific infrastructure required to host a Matrix instance.
Croc is a command-line utility for sending files and folders between computers using end-to-end encrypted peer-to-peer connections. It employs elliptic curve encryption and key agreement to secure data transmission between remote endpoints. The tool allows users to coordinate transfers using a shared code phrase and supports the operation of custom relay servers to facilitate connections without relying on public infrastructure. It also includes a proxy client to route encrypted traffic through SOCKS5 proxies. Additional capabilities include resumable data transmission for unstable connections, content filtering to exclude specific files or folders, and stream-based data piping for integration with shell pipelines via standard input and output.
This is a peer-to-peer file transfer utility rather than a Matrix homeserver, as it lacks the protocol implementation, user management, and federation capabilities required for decentralized communication.
CryptPad is a self-hosted, zero-knowledge office suite designed for real-time collaborative editing and content management. It provides a privacy-centric infrastructure where documents, files, and notes are encrypted in the browser before transmission, ensuring that the server administrator cannot access the underlying data. The platform implements zero-knowledge user authentication, utilizing cryptographic keys to verify identities so that plain text passwords are never stored on the server. To further isolate sensitive operations, the system employs a security architecture that separates the user interface from cryptographic processes. The suite covers a range of administrative and operational capabilities, including user registration management, instance branding customization, and server parameter configuration. It also includes diagnostic utilities for system configuration and supports containerized deployment for consistent environment installation.
CryptPad is a self-hosted collaborative office suite for real-time document editing, but it does not implement the Matrix protocol or support federation for decentralized communication.
This project is an Ansible-based deployment tool that automates the setup of a fully configured Matrix homeserver using Docker containers. It orchestrates the entire Matrix server stack, including the homeserver itself, a PostgreSQL database, and reverse proxy integration with Traefik for automatic SSL certificate management, all from a single configuration file. The deployment supports connecting a Matrix installation to external messaging platforms like Discord, Slack, Telegram, and WhatsApp through dedicated bridges that run as isolated Docker containers. It also provides the ability to deploy Matrix-compatible web chat clients such as Element, Cinny, or Hydrogen on custom domains for end-user access, and includes a graphical web interface for managing users, rooms, media, and sessions on the homeserver. Additional capabilities include integrating chat bots for reminders, moderation, AI chat, or helpdesk features, redirecting media storage to external S3-compatible object stores, configuring user authentication methods and registration flows, and integrating monitoring services to track server health and performance. The documentation covers installation, configuration, and maintenance of the entire deployment.
This project is a comprehensive automation tool for deploying and managing a full-featured Matrix homeserver stack, providing all the necessary components like database backends, media storage, and federation support in a single, production-ready configuration.