No description
  • Elixir 99.8%
  • Dockerfile 0.2%
Find a file
Igorj Gorjaĉev 103e121039
All checks were successful
run bromal ci pipeline / build and run tests (push) Successful in 4m57s
complement integration tests / run-complement (push) Successful in 13m2s
build and push oci image / build (push) Successful in 3m15s
run bromal ci pipeline / run linters (push) Successful in 5m52s
run bromal ci pipeline / generate sbom (push) Successful in 4m9s
complement: make TestRoomState pass (#22)
2026-07-08 23:28:42 +03:00
.forgejo/workflows ci: add gotestfmt for complement action (#3) 2026-06-19 16:48:12 +03:00
ci add ci pipeline (#4) 2026-06-05 18:48:58 +03:00
complement docker: install erlang-syntax-tools 2026-07-03 22:49:56 +03:00
config config: fix full path when using nested subsections 2026-06-11 08:37:22 +03:00
docker docker: install erlang-syntax-tools 2026-07-03 22:49:56 +03:00
lib complement: make TestRoomState pass (#22) 2026-07-08 23:28:42 +03:00
priv defconfig: disable all interfaces 2026-06-09 15:40:00 +03:00
test api: fix rooms/.../joined_members output format (#22) 2026-07-08 15:43:12 +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 add ci pipeline (#4) 2026-06-05 18:48:58 +03:00
mix.exs deps: update httpoison (fixes internal tests) 2026-07-03 23:12:49 +03:00
mix.lock deps: update phoenix (vulnerable) and others 2026-07-08 21:11:09 +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.