1
0
Fork 1
mirror of https://github.com/fluxerapp/fluxer.git synced 2026-02-25 11:59:20 -08:00
Fluxer is a free and open-source chat platform designed as a self-hostable alternative to Discord. https://fluxer.app
  • TypeScript 83.1%
  • Erlang 7.5%
  • CSS 5.4%
  • MDX 2.1%
  • JavaScript 0.7%
  • Other 1.1%
Find a file
2026-02-23 00:24:48 +01:00
.devcontainer Added support for developing in devcontainer (#480) 2026-02-23 00:24:48 +01:00
.github chore: use discussions for feature requests 2026-02-18 23:20:58 +00:00
.vscode Added support for developing in devcontainer (#480) 2026-02-23 00:24:48 +01:00
config refactor: squash branch changes 2026-02-21 16:41:56 +00:00
dev refactor progress 2026-02-17 12:22:36 +00:00
fluxer_admin refactor progress 2026-02-17 12:22:36 +00:00
fluxer_api refactor progress 2026-02-17 12:22:36 +00:00
fluxer_app fix(app): add masking of phones to settings 2026-02-21 16:57:09 +00:00
fluxer_app_proxy fix: various fixes to things + simply app proxy sentry setup 2026-02-19 01:23:38 +00:00
fluxer_desktop refactor progress 2026-02-17 12:22:36 +00:00
fluxer_devops fix: various fixes to sentry-reported errors and more 2026-02-18 15:38:51 +00:00
fluxer_docs fix(docs): remove unreferenced image 2026-02-21 16:57:09 +00:00
fluxer_gateway [skip ci] fix(gateway): perf optimisations 2026-02-22 18:47:45 +00:00
fluxer_integration fix: various fixes to sentry-reported errors and more 2026-02-18 15:38:51 +00:00
fluxer_marketing fix: various fixes to sentry-reported errors and more 2026-02-18 15:38:51 +00:00
fluxer_media_proxy refactor progress 2026-02-17 12:22:36 +00:00
fluxer_relay refactor progress 2026-02-17 12:22:36 +00:00
fluxer_relay_directory refactor progress 2026-02-17 12:22:36 +00:00
fluxer_server fix: various fixes to sentry-reported errors and more 2026-02-18 15:38:51 +00:00
fluxer_static refactor progress 2026-02-17 12:22:36 +00:00
media chore: improve readme 2026-01-05 23:54:40 +00:00
packages fix: various fixes to sentry-reported errors 2026-02-21 16:56:50 +00:00
patches refactor progress 2026-02-17 12:22:36 +00:00
scripts refactor: squash branch changes 2026-02-21 16:41:56 +00:00
tsconfigs refactor progress 2026-02-17 12:22:36 +00:00
.dockerignore refactor progress 2026-02-17 12:22:36 +00:00
.editorconfig initial commit 2026-01-01 21:05:54 +00:00
.envrc refactor progress 2026-02-17 12:22:36 +00:00
.gitattributes initial commit 2026-01-01 21:05:54 +00:00
.gitignore fix: various fixes to sentry-reported errors and more 2026-02-18 15:38:51 +00:00
.ignore refactor progress 2026-02-17 12:22:36 +00:00
.lfsconfig refactor progress 2026-02-17 12:22:36 +00:00
.npmrc refactor progress 2026-02-17 12:22:36 +00:00
.nvmrc refactor progress 2026-02-17 12:22:36 +00:00
.prettierignore refactor progress 2026-02-17 12:22:36 +00:00
.tool-versions refactor progress 2026-02-17 12:22:36 +00:00
biome.json refactor progress 2026-02-17 12:22:36 +00:00
CODE_OF_CONDUCT.md chore: add contributing.md and code of conduct 2026-01-05 14:09:46 +00:00
compose.yaml refactor: squash branch changes 2026-02-21 16:41:56 +00:00
CONTRIBUTING.md chore: remove CLA 2026-02-18 16:41:53 +00:00
devenv.lock refactor progress 2026-02-17 12:22:36 +00:00
devenv.nix fix: various fixes to sentry-reported errors and more 2026-02-18 15:38:51 +00:00
devenv.yaml refactor progress 2026-02-17 12:22:36 +00:00
flake.lock refactor progress 2026-02-17 12:22:36 +00:00
knip.json refactor progress 2026-02-17 12:22:36 +00:00
LICENSE chore: use the correct license template 2026-01-06 14:40:10 +00:00
LICENSING.md refactor progress 2026-02-17 12:22:36 +00:00
package.json refactor progress 2026-02-17 12:22:36 +00:00
pnpm-lock.yaml refactor: squash branch changes 2026-02-21 16:41:56 +00:00
pnpm-workspace.yaml refactor: squash branch changes 2026-02-21 16:41:56 +00:00
README.md Added support for developing in devcontainer (#480) 2026-02-23 00:24:48 +01:00
SECURITY.md chore: add security.md 2026-01-05 14:33:56 +00:00
tsconfig.json refactor progress 2026-02-17 12:22:36 +00:00
turbo.json refactor progress 2026-02-17 12:22:36 +00:00

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.

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 developers@fluxer.app.

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.

  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.

Devcontainer (experimental)

There is experimental support for developing in a VS Code Dev Container / GitHub Codespace without Nix. The .devcontainer/ directory provides a Docker Compose setup with all required tooling and backing services.

# Inside the dev container, start all processes:
process-compose -f .devcontainer/process-compose.yml up

Open the app at http://localhost:48763 and the dev email inbox at http://localhost:48763/mailpit/. Predefined VS Code debugging targets are available in .vscode/launch.json.

Warning

Bluesky OAuth is disabled in the devcontainer because it requires HTTPS. All other features work normally.

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.