Why Self-Host?
Full Control
Own your data completely. No third-party access to your messages, files, or user information.
All Features Unlocked
Voice, video, search, custom emojis, and all premium features are available in self-hosted deployments.
Privacy First
Keep communications within your infrastructure. Perfect for sensitive communities and organizations.
Customizable
Modify and extend Fluxer to meet your specific needs. Licensed under AGPLv3.
What You Get
Core Features
- Real-time messaging with typing indicators, reactions, and threaded replies
- Voice & video calls powered by LiveKit with screen sharing support
- Rich media including link previews, attachments, and GIF search
- Communities and channels with granular permission controls
- Custom expressions with emoji and sticker uploads
- Full-text search via Meilisearch or Elasticsearch
Architecture Flexibility
- Monolith Mode (Recommended)
- Microservices Mode
All services run in a single container for simple deployment:
- fluxer_server - Unified HTTP API, WebSocket gateway, and web app
- valkey - Redis-compatible cache and coordination
- SQLite - Embedded database (default)
Deployment Options
Docker Compose
Quick deployment with
docker compose up. Recommended for most users.Distributed Setup
Multi-node Cassandra cluster with regional LiveKit servers.
System Requirements
Minimum (Monolith Mode)
- CPU: 2 cores
- RAM: 4 GB
- Storage: 20 GB SSD
- OS: Linux (Ubuntu 22.04+, Debian 12+, or RHEL 9+)
- Network: Public IP or reverse proxy with domain
Recommended (Production)
- CPU: 4-8 cores
- RAM: 8-16 GB
- Storage: 100 GB+ SSD (depends on media retention)
- Network: 1 Gbps network, dedicated public IP for voice/video
Voice and video require UDP port access. If deploying behind Cloudflare Tunnels or similar HTTP-only proxies, you’ll need to expose UDP ports 3478, 7881, and 50000-50100 directly.
What’s Included
The Fluxer monolith (ghcr.io/fluxerapp/fluxer-server:stable) includes:
| Component | Purpose |
|---|---|
| HTTP API | REST endpoints for all application logic |
| WebSocket Gateway | Real-time message delivery and presence (Erlang) |
| Media Proxy | Image/video processing and CDN |
| Admin Panel | Web-based administration interface |
| Marketing Site | Optional public landing page |
| S3-compatible Storage | Built-in object storage (filesystem-backed) |
| Job Queue | Background task processing |
Technology Stack
Backend Services
Backend Services
- TypeScript and Node.js for HTTP services
- Hono web framework for all HTTP endpoints
- Erlang/OTP for the WebSocket gateway (real-time messaging)
- SQLite (default) or Cassandra for data persistence
Infrastructure
Infrastructure
- Valkey (Redis-compatible) for caching and rate limiting
- Meilisearch or Elasticsearch for full-text search
- LiveKit for voice and video (optional)
- NATS for message queuing in microservices mode
Client Application
Client Application
- React and Electron for desktop/web
- Rust compiled to WebAssembly for performance-critical code
License
Fluxer is licensed under AGPLv3. You are free to:- Run the software for any purpose
- Study and modify the source code
- Distribute copies and modified versions
Next Steps
Quick Start
Follow the Quick Start Guide to deploy Fluxer with Docker Compose in under 10 minutes.
Configure
Learn about Configuration Options to customize your instance.
Add Voice
Set up LiveKit for voice and video to enable real-time calls.
Scale
Review Scaling Strategies when you’re ready to grow.
Getting Help
- Documentation: https://docs.fluxer.app
- Source Code: https://github.com/fluxerapp/fluxer
- Security Issues: https://fluxer.app/security
- Email: [email protected]