No description
  • Elixir 99.8%
  • Dockerfile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Igorj Gorjaĉev 2819836e0d
All checks were successful
run bromal ci pipeline / build and run tests (push) Successful in 4m50s
complement integration tests / run-complement (push) Successful in 13m7s
build and push oci image / build (push) Successful in 3m41s
run bromal ci pipeline / run linters (push) Successful in 6m35s
run bromal ci pipeline / generate sbom (push) Successful in 4m22s
complement: make TestPowerLevels pass (#22)
2026-08-25 00:05:19 +03:00
.forgejo/workflows ci: add gotestfmt for complement action (#3) 2026-06-19 16:48:12 +03:00
ci Revert "ci/manifest: elixir -> elixir-minimal" 2026-07-27 12:12:42 +03:00
complement docker: install erlang-syntax-tools 2026-07-03 22:49:56 +03:00
config unify ErrorJSON 2026-07-15 23:57:11 +03:00
docker docker: install erlang-syntax-tools 2026-07-03 22:49:56 +03:00
lib complement: make TestPowerLevels pass (#22) 2026-08-25 00:05:19 +03:00
priv complement: make TestPowerLevels semi-pass (#22) 2026-07-31 21:45:24 +03:00
test complement: make TestRoomCreate semi-pass (#22) 2026-08-24 16:37:41 +03:00
.formatter.exs add sources 2023-09-28 12:48:06 +03:00
.gitignore add ci pipeline (#4) 2026-06-05 18:48:58 +03:00
AUTHORS big project rework 2024-03-14 13:37:14 +02:00
LICENSE add sources 2023-09-28 12:48:06 +03:00
manifest.scm manifest: elixir -> elixir-minimal 2026-07-27 11:41:16 +03:00
mix.exs deps: update httpoison (fixes internal tests) 2026-07-03 23:12:49 +03:00
mix.lock deps: update 2026-08-24 17:57:15 +03:00
README.org update README.org 2026-04-23 20:08:14 +03:00

Bromal

Overview

Bromal is a lightweight opensource messaging server, that uses the Matrix protocol. It is being developed for the efficient deployment of federated messaging systems with modest resource requirements, as a result, it could be deployed even on small servers, including VPS, without sacrificing essential functionality. The project aims to support server-to-server federation, state resolution for different room versions, end-to-end encryption, a full-featured messaging module, built-in VoIP, automatic TLS certificate acquisition via Let's Encrypt using the ACME protocol, as well as the ability to create a cluster for larger installations.

Fun fact

Bromal is being developed on RISC-V OrangePi RV2 SBC running Guix System.

Current status

This software is under active development. It is half-baked and currently not suitable for any production usage:

  • Not suitable for any kind of usage except for hacking.
  • Internal architecture is subject to change.
  • Lacks most important features.
  • Federation is supported, but no PDUs (there is a primary support for it).
  • No database migrations; schema changes frequently and suddenly.
  • Test coverage is not 100% and may sometimes be outdated.
  • Code in various components is not optimal and will be refactored sooner or later.
  • etc.

Requirements

Bromal currently depends on the following packages:

  • Elixir 1.15+
  • Erlang 26+
  • PostgreSQL 15+
  • ImageMagick (for image manipulation)

Build instructions

mix deps.get
mix compile

Run tests

Bromal tests require access to a PostgreSQL database, so it must be properly installed and configured beforehand. Tests can then be executed as usual:

mix test

Under Guix System

Guix System packaging (vendoring support as in Rust packages) currently is baking here: https://codeberg.org/guix/guix/pulls/3524

guix install bromal
;; TODO

Contributions

Contributions are always welcome, however they are always welcome without ANY use of generative AI/LLMs.

Sponsors

Bromal is funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet Bromal page.

NLnet foundation logo NGI Zero Logo

Many thanks to them! ❤️

License

Bromal is licensed under the AGPLv3 or later. Please consult the LICENSE file for more details.