Verteiron/fluxer

A free and open source instant messaging and VoIP platform built for friends, groups, and communities.

★ 0Forks 0GitHub ↗Compare

Project website ↗

README

Note

Learn about the developer behind Fluxer, the goals of the project, the tech stack, and what's coming next.

Read the launch blog post · View full roadmap

Fluxer graphic logo

Donate Documentation AGPLv3 License

Fluxer

Fluxer is a free and open source instant messaging and VoIP platform for friends, groups, and communities. Self-host it and every feature is unlocked.

Quick links

Features

Fluxer showcase

Real-time messaging – typing indicators, reactions, and threaded replies.

Voice & video – calls in communities and DMs with screen sharing, powered by LiveKit.

Rich media – link previews, image and video attachments, and GIF search via KLIPY.

Communities and channels – text and voice channels organised into categories with granular permissions.

Custom expressions – upload custom emojis and stickers for your community.

Self-hostable – run your own instance with full control of your data and no vendor lock-in.

Note

Native mobile apps and federation are top priorities. If you'd like to support this work, donations are greatly appreciated. You can also share feedback by emailing [email protected].

Self-hosting

Note

New to Fluxer? Follow the self-hosting guide for step-by-step setup instructions.

TBD

Deployment helpers

  • livekitctl – bootstrap a LiveKit SFU for voice and video

Development

Tech stack

  • TypeScript and Node.js for backend services
  • Hono as the web framework for all HTTP services
  • Erlang/OTP for the real-time WebSocket gateway (message routing and presence)
  • React and Electron for the desktop and web client
  • Rust compiled to WebAssembly for performance-critical client code
  • SQLite for storage by default, with optional Cassandra for distributed deployments
  • Meilisearch for full-text search and indexing
  • Valkey (Redis-compatible) for caching, rate limiting, and ephemeral coordination
  • LiveKit for voice and video infrastructure

Devenv development environment

Fluxer supports development through devenv only. It provides a reproducible Nix environment and a single, declarative process manager for the dev stack. If you need a different setup, it is currently unsupported.

  1. Install Nix and devenv using the devenv getting started guide.
  2. Enter the environment:
devenv shell

If you use direnv, the repo includes a .envrc that loads devenv automatically – run direnv allow once.

Getting started

Start all services and the development server with:

devenv up

Open the instance in a browser at your dev server URL (e.g. http://localhost:48763/).

Emails sent during development (verification codes, notifications, etc.) are captured by a local Mailpit instance. Access the inbox at your dev server URL + /mailpit/ (e.g. http://localhost:48763/mailpit/).

Voice on a remote VM

If you develop on a remote VM behind Cloudflare Tunnels (or a similar HTTP-only tunnel), voice and video won't work out of the box. Cloudflare Tunnels only proxy HTTP/WebSocket traffic, so WebRTC media transport needs a direct path to the server. Open these ports on the VM's firewall:

Port Protocol Purpose
3478 UDP TURN/STUN
7881 TCP ICE-TCP fallback
50000-50100 UDP RTP/RTCP media

The bootstrap script configures LiveKit automatically based on domain.base_domain in your config.json. When set to a non-localhost domain, it enables external IP discovery so clients can connect directly for media while signaling continues through the tunnel.

Documentation

To develop the documentation site with live preview:

pnpm dev:docs

Contributing

Fluxer is free and open source software licensed under AGPLv3. Contributions are welcome.

See CONTRIBUTING.md for development processes and how to propose changes, and CODE_OF_CONDUCT.md for community guidelines.

Security

Report vulnerabilities at fluxer.app/security. Do not use public issues for security reports.

License

Copyright (c) 2026 Fluxer Contributors

Licensed under the GNU Affero General Public License v3:

Copyright (c) 2026 Fluxer Contributors

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
details.

You should have received a copy of the GNU Affero General Public License along
with this program. If not, see https://www.gnu.org/licenses/

See LICENSING.md for details on commercial licensing and the CLA.

Contributors

hampus-fluxerJiralite

Issues