lala
Self-hosted voice & video chat built on LiveKit with E2EE rooms, screen sharing, and no database.
Ficha actualizada 23 sept 2026, 1:26 · upstream 23 sept 2026, 1:09 · release v0.0.26
Qué es lala
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Lala is a self-hosted voice and video communication platform inspired by Mumble and Discord, built on top of the LiveKit WebRTC server. It eliminates the need for a persistent database or user accounts, instead relying on ephemeral rooms where chat messages are stored over data channels. The application uses HMAC-based identity verification to ensure that only authorized participants can join a room, with passwords encrypted using AES-GCM via WebCrypto. Admin features include kick, ban, and mute capabilities, while the platform supports multiple themes including dark mode, light mode, AMOLED, Discord-style, and Windows XP aesthetics.
The desktop client runs on any modern browser but also includes a native application for Windows that offers an installer with auto-update support. The architecture is designed to be lightweight, with idle usage consuming only about 75 MB of disk space when all four containers are running simultaneously.
- Self-hosted voice chat rooms without requiring any paid subscription or cloud infrastructure
- Private video calls for teams that need end-to-end encryption and no persistent user accounts
- Screen sharing with quality controls and system audio passthrough on Windows systems
- Real-time collaboration tools where data channels store messages rather than a database
- Secure communication rooms using AES-GCM encryption without exposing plaintext to the server
- Multi-theme support allowing users to switch between Discord, Windows XP, AMOLED, or dark/light modes
- End-to-end encryption via WebCrypto AES-GCM ensures no plaintext is ever stored on the server
- No database required — rooms are ephemeral and chat persists only over data channels in LiveKit
- Native Windows desktop client with auto-update support and native screen share picker integration
- LiveKit-based architecture provides robust real-time signaling, ICE negotiation, and media handling out of the box
- Support for multiple audio quality modes including speech, music, and high-quality stereo output
- Built-in RNNoise noise suppression via AudioWorklet to improve call clarity in noisy environments
- No persistent user accounts — each device must be registered with a unique HMAC-based identity, which can be challenging for multi-device setups without proper key management
- Screen sharing quality is limited by the underlying WebRTC implementation and may not match consumer-grade hardware codecs
- TURN server configuration (LIVEKIT_DOMAIN) requires manual setup or DNS resolution to the TURN server endpoint
- The desktop client does not include a built-in screen recording feature, only native screen capture via the OS
- No real-time chat history is retained — messages are ephemeral and stored only in LiveKit's data channel buffer
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
To deploy Lala, you need Docker Compose with four containers: api (Express), web (Vite + React), desktop (Electron), and shared (types). Build images locally using the repo root as context so packages/shared is accessible. Set environment variables including LIVEKIT_URL, LIVEKIT_API_KEY, NODE_IP for ICE negotiation, LALA_REGISTRY/LALA_TAG for image pulling, REDIS_PASSWORD for Redis auth, and ALLOWED_ORIGINS/CSP_CONNECT_SRC for security hardening. Start with `docker compose up -d` to run all services simultaneously. For production-grade deployments, consider using a reverse proxy (nginx) in front of the web container to handle TLS termination, rate limiting, and request routing before reaching LiveKit signaling on port 7880.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.