A free and open source instant messaging and VoIP platform built for friends, groups, and communities. https://fluxer.app
  • TypeScript 64.7%
  • Go 13.2%
  • Gleam 8.8%
  • CSS 6.8%
  • Erlang 5.4%
  • Other 1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-11 02:53:30 +01:00
.devcontainer fix(dev): lack of proper setup of JSON schemas and direnv (#3852) 2026-11-05 15:26:51 +01:00
.github feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
config/env feat(domain): prepare the move to fluxer.com (#3768) 2026-11-01 18:12:17 +01:00
deploy feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
fluxer_admin feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
fluxer_api fix(push): stop masking 18+ pushes for adults who may see them (#4022) 2026-11-11 00:54:02 +01:00
fluxer_app feat(app): restore app state from an encrypted boot snapshot (#4020) 2026-11-11 00:44:26 +01:00
fluxer_app_proxy feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
fluxer_common feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
fluxer_desktop feat(desktop): restore windows from an encrypted boot state (#4021) 2026-11-11 00:44:44 +01:00
fluxer_docs feat(rexctl): add opt-in migrations (#4009) 2026-11-09 20:51:15 +01:00
fluxer_gateway fix(push): stop masking 18+ pushes for adults who may see them (#4022) 2026-11-11 00:54:02 +01:00
fluxer_gifs feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
fluxer_media_proxy fix(media-proxy): download svg attachments as svg (#4027) 2026-11-11 02:53:30 +01:00
fluxer_messages feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
fluxer_native feat(rexctl): run instances on fluxerd (#4008) 2026-11-09 20:50:54 +01:00
fluxer_push fix(push): stop masking 18+ pushes for adults who may see them (#4022) 2026-11-11 00:54:02 +01:00
fluxer_rexctl fix(rexctl): pin images in overlays without services (#4026) 2026-11-11 02:33:32 +01:00
fluxer_server feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
fluxer_snowflakes feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
fluxer_static feat(i18n): add ten new languages (#3996) 2026-11-09 16:35:03 +01:00
fluxer_svc feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
fluxer_unfurl feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
fluxer_users feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
packages fix(push): stop masking 18+ pushes for adults who may see them (#4022) 2026-11-11 00:54:02 +01:00
packaging feat(rexctl): run instances on fluxerd (#4008) 2026-11-09 20:50:54 +01:00
patches fix(desktop): collapse unpacked dirs when merging universal apps (#4025) 2026-11-11 02:05:08 +01:00
tools build(native): add native dist and image (#4007) 2026-11-09 20:50:30 +01:00
tsconfigs chore(repo): prune dead code and duplicate abstractions (#3413) 2026-10-12 13:09:42 +02:00
.dockerignore fix(build): keep desktop native crates in docker build contexts (#4023) 2026-11-11 01:11:23 +01:00
.editorconfig chore: drop the devcontainer verify script and stale ignores 2026-10-24 20:55:20 +02:00
.envrc workspace: reconcile latest Fluxer into the open source release and continue development there 2026-06-16 06:41:37 +02:00
.gitattributes ci(helm): check generated deploy files and force lf endings 2026-10-24 20:55:13 +02:00
.gitignore build(native): add native dist and image (#4007) 2026-11-09 20:50:30 +01:00
.ignore chore: clean up repository metadata (#1571) 2026-08-12 14:50:00 +02:00
biome.json feat(app): add regional and date format settings (#3997) 2026-11-09 16:48:09 +01:00
Cargo.lock feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
Cargo.toml build(native): add native dist and image (#4007) 2026-11-09 20:50:30 +01:00
deny.toml build(desktop): make the linux build packageable offline (#3989) 2026-11-09 14:43:05 +01:00
eslint.config.mjs fix(app): do not crash when the browser translates the page (#2624) 2026-09-09 01:24:14 +02:00
knip.json feat(desktop): restore windows from an encrypted boot state (#4021) 2026-11-11 00:44:44 +01:00
LICENSE chore: use the correct license template 2026-01-06 14:40:10 +00:00
Makefile build(native): add native dist and image (#4007) 2026-11-09 20:50:30 +01:00
package.json ci: drop eunit and desktop test runs, add env and email checks 2026-10-24 20:55:01 +02:00
pnpm-lock.yaml fix(desktop): collapse unpacked dirs when merging universal apps (#4025) 2026-11-11 02:05:08 +01:00
pnpm-workspace.yaml fix(desktop): collapse unpacked dirs when merging universal apps (#4025) 2026-11-11 02:05:08 +01:00
README.md docs(readme): point android downloads to the stable builds (#4024) 2026-11-11 01:18:24 +01:00
rust-toolchain.toml feat(server): run rust services in one process (#4003) 2026-11-09 20:48:54 +01:00
tsconfig.json refactor progress 2026-02-17 12:22:36 +00:00

Fluxer logo

Download Documentation Donate AGPLv3 License

Get it on Flathub

Fluxer

Important

Bug reports and feature requests have moved to feedback.fluxer.com. Sign in with your Fluxer account to post, vote and follow updates. GitHub Issues and Discussions are closed. Report security vulnerabilities privately through fluxer.com/security.

Fluxer is a free and open source instant messaging and VoIP chat app built for friends, groups, and communities.

Fluxer running side by side on a desktop monitor and a phone

Download

Windows macOS Linux Android iOS
Installer (x64) Disk image Flatpak Google Play Beta paused
Installer (ARM64) Flathub APK
Portable (x64) deb (x64) Obtainium (most phones)
Portable (ARM64) deb (ARM64) Obtainium (degoogled phones)
rpm (x64)
rpm (ARM64)
AppImage (x64)
AppImage (ARM64)
tar.gz (x64)
tar.gz (ARM64)

The macOS disk image runs on both Apple silicon and Intel. Windows and Linux need the build matching your processor.

On Linux, prefer a repository over a single file so Fluxer updates with the rest of your system.

Linux package repositories

The package is fluxer for stable and fluxer-canary for canary. apt and dnf subscribe to one channel per entry file. pacman and Flatpak serve both from one repository.

Flatpak

Fluxer's own Flatpak repository gets every update the day we release it. Open the stable or the canary reference file and your software manager takes over. Some desktops also accept flatpak+https://pkgs.fluxer.com/flatpak/fluxer.flatpakref in the address bar.

From a terminal:

flatpak install https://pkgs.fluxer.com/flatpak/fluxer.flatpakref

Stable is also on Flathub, but Flathub can be a few weeks behind and has no canary:

flatpak install flathub app.fluxer.Fluxer

Debian and Ubuntu

sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL -o /etc/apt/keyrings/fluxer-archive-keyring.gpg https://pkgs.fluxer.com/keys/fluxer-archive-keyring.gpg
sudo curl -fsSL -o /etc/apt/sources.list.d/fluxer.sources https://pkgs.fluxer.com/deb/fluxer.sources
sudo apt update && sudo apt install fluxer

For canary, use the canary entry file and package.

sudo curl -fsSL -o /etc/apt/sources.list.d/fluxer-canary.sources https://pkgs.fluxer.com/deb/fluxer-canary.sources
sudo apt update && sudo apt install fluxer-canary

A .deb installed from a download only updates once its channel's entry is added.

Fedora and RHEL

sudo curl -fsSL -o /etc/yum.repos.d/fluxer.repo https://pkgs.fluxer.com/rpm/fluxer.repo
sudo dnf install fluxer

For canary, use the canary entry file and package.

sudo curl -fsSL -o /etc/yum.repos.d/fluxer-canary.repo https://pkgs.fluxer.com/rpm/fluxer-canary.repo
sudo dnf install fluxer-canary

RHEL, Rocky, Alma and CentOS Stream need sudo dnf install epel-release first, because their base repositories lack libXScrnSaver. Fedora does not.

Arch Linux

The repository is signed, so pacman needs the key once:

sudo pacman-key --init
curl -fsSL -o /tmp/fluxer-archive-keyring.asc https://pkgs.fluxer.com/keys/fluxer-archive-keyring.asc
sudo pacman-key --add /tmp/fluxer-archive-keyring.asc
sudo pacman-key --lsign-key 09D01339EE128925F75E675C855C5BDE34D205D2

--lsign-key is what makes pacman trust it. Then add the repository:

sudo tee -a /etc/pacman.conf >/dev/null <<'REPO'

[fluxer]
SigLevel = Required TrustedOnly
Server = https://pkgs.fluxer.com/arch/$repo/os/$arch
REPO
sudo pacman -Syu fluxer

Write $repo and $arch literally. Both are pacman variables, not shell ones, hence the quoted heredoc.

Full setup notes, including canary, are in the Linux repositories documentation.

Other ways to run it

Documentation

License

The source is licensed under the AGPL-3.0-or-later license.

Fluxer artwork, such as the logo, icons, badges and default avatars, is licensed under CC BY-SA 4.0. Third-party material keeps its own terms, listed in fluxer_static/THIRD_PARTY_LICENSES.md.

Use of the Fluxer name and logo is covered by the name and marks policy.