Introduction
Fluxer is an open-source, self-hosted instant messaging and VoIP platform designed for friends, groups, and communities. It provides a familiar server-and-channel experience with text chat, voice calls, media sharing, and role management, all under your control on your own infrastructure.
What Fluxer Does
- Provides real-time text messaging with channels, threads, and direct messages
- Supports voice and video calling with WebRTC-based VoIP
- Allows creating servers with custom roles, permissions, and invite links
- Handles file and media uploads with inline previews for images, videos, and links
- Offers markdown formatting, emoji reactions, and message pinning
Architecture Overview
Fluxer is built with TypeScript across the stack. The back-end uses a Node.js server with WebSocket connections for real-time message delivery and WebRTC signaling for voice channels. Data is stored in a relational database, and media files are saved to configurable storage backends. The front-end is a single-page application that maintains persistent WebSocket connections for instant updates.
Self-Hosting & Configuration
- Deploy with Docker Compose using the provided configuration files
- Set environment variables for database connection, storage paths, and TURN server settings
- Configure a reverse proxy (Nginx or Caddy) with SSL for production deployments
- Adjust rate limits and file upload size caps in the server configuration
- Back up the database and media storage directory on a regular schedule
Key Features
- Server-and-channel model familiar to users of Discord-style platforms
- End-to-end voice communication with configurable TURN/STUN relay servers
- Granular role-based permissions per server and per channel
- Self-hosted with full data ownership and no telemetry
- Active open-source development with community contributions
Comparison with Similar Tools
- Rocket.Chat — mature enterprise chat with Omnichannel support; Fluxer focuses on community and friend-group use cases with a simpler UX
- Matrix/Element — federated protocol with broad interoperability; Fluxer is a single-instance app that is simpler to deploy
- Revolt — similar Discord alternative; Fluxer differentiates with its VoIP integration and TypeScript-first codebase
- Mattermost — targets enterprise teams with compliance features; Fluxer is lighter weight for personal and community servers
- Zulip — threaded conversation model for large organizations; Fluxer uses a channel-based layout closer to Discord
FAQ
Q: Is Fluxer a Discord clone? A: Fluxer draws inspiration from Discord's server-and-channel model but is fully open-source and self-hosted, giving you complete control over your data and infrastructure.
Q: Does Fluxer support federation? A: Currently Fluxer operates as a single-instance platform. Federation is not supported, keeping the deployment and admin experience simple.
Q: What are the hardware requirements? A: A small VPS with 1-2 GB RAM is sufficient for small communities. Voice channels require additional bandwidth, and a TURN server is recommended for NAT traversal.
Q: Can I customize the look and feel? A: The front-end source is included in the repository. You can modify themes, branding, and layout by editing the TypeScript/CSS source and rebuilding.