Skip to main content
Glama
LIVEKIT_SETUP.md9.43 kB
# LiveKit Setup and Usage Guide This guide covers the complete setup and usage of LiveKit integration with Voice Mode, including the LiveKit server, frontend management, and voice conversations. ## Overview Voice Mode now includes full LiveKit integration providing: - **LiveKit server management** - Install, configure, and manage LiveKit server as a system service - **Voice Assistant Frontend** - Web-based interface for voice conversations bundled with Voice Mode - **Service integration** - Unified management alongside Whisper and Kokoro services - **Development and production** support with proper service lifecycle management ## Quick Start ### 1. Install LiveKit Server ```bash # Install LiveKit server (automatically detects platform) voice-mode livekit install # Enable to start at boot/login voice-mode livekit enable # Start the server voice-mode livekit start ``` ### 2. Start Frontend ```bash # Start the Voice Assistant Frontend voice-mode frontend start # Enable to start automatically voice-mode frontend enable # Open in browser voice-mode frontend open ``` ### 3. Access Voice Interface 1. Open http://localhost:3000 in your browser 2. Enter password: `voicemode123` (default) 3. Join or create a room for voice conversations ## Installation Details ### LiveKit Server Installation The `voice-mode livekit install` command: - Downloads LiveKit server binary for your platform (macOS/Linux) - Creates configuration file at `~/.voicemode/config/livekit.yaml` - Sets up systemd (Linux) or launchd (macOS) service files - Configures development credentials for easy setup **Installation locations:** - **macOS**: `/opt/homebrew/bin/livekit-server` - **Linux**: `/usr/local/bin/livekit-server` - **Config**: `~/.voicemode/config/livekit.yaml` - **Logs**: `~/.voicemode/logs/livekit/` ### Frontend Installation The frontend is bundled with Voice Mode and automatically installed. The system: - Prioritizes bundled frontend in the Python package - Falls back to external development locations if needed - Automatically installs Node.js dependencies on first run - Supports multiple package managers (pnpm, npm, yarn) ## Configuration ### LiveKit Server Configuration Edit `~/.voicemode/config/livekit.yaml`: ```yaml # LiveKit development configuration port: 7880 rtc: port_range_start: 50000 port_range_end: 50100 keys: devkey: secret # Enable room auto-creation for development room: auto_create: true # Development logging logging: level: info json: false ``` ### Frontend Configuration Create `~/.voicemode/frontend/.env.local` for custom settings: ```bash # Custom password (optional) LIVEKIT_ACCESS_PASSWORD=your_custom_password # LiveKit server URL (if different) LIVEKIT_SERVER_URL=ws://localhost:7880 ``` ## Service Management All LiveKit services integrate with Voice Mode's unified service management: ### Server Commands ```bash # Status and control voice-mode livekit status voice-mode livekit start voice-mode livekit stop voice-mode livekit restart # Service management voice-mode livekit enable # Start at boot/login voice-mode livekit disable # Don't start automatically # Logs voice-mode livekit logs voice-mode livekit logs --follow ``` ### Frontend Commands ```bash # Status and control voice-mode frontend status voice-mode frontend start voice-mode frontend stop # Service management voice-mode frontend enable voice-mode frontend disable # Utilities voice-mode frontend open # Open in browser voice-mode frontend logs # View logs voice-mode frontend logs -f # Follow logs ``` ### Service Integration Both LiveKit and frontend services work with the unified service management: ```bash # Using the service command voice-mode service livekit status voice-mode service frontend start voice-mode service frontend enable ``` ## Usage Scenarios ### Development Setup For active development: ```bash # Quick start everything voice-mode livekit start voice-mode frontend start # Open the interface voice-mode frontend open ``` ### Production Deployment For persistent services: ```bash # Install and enable all services voice-mode livekit install voice-mode livekit enable voice-mode frontend enable # Services now start automatically at boot/login # Status check voice-mode livekit status voice-mode frontend status ``` ### Troubleshooting Setup ```bash # Check all service status voice-mode livekit status voice-mode frontend status # View logs for issues voice-mode livekit logs --follow voice-mode frontend logs --follow # Restart services voice-mode livekit restart voice-mode frontend restart ``` ## Voice Conversations ### Web Interface 1. **Access**: Navigate to http://localhost:3000 2. **Authentication**: Enter password (default: `voicemode123`) 3. **Room Management**: Create or join rooms for conversations 4. **Voice Control**: Click to start/stop recording and speaking ### API Integration LiveKit server provides REST API and WebSocket endpoints: ```bash # List active rooms curl -H "Authorization: Bearer <jwt_token>" \ http://localhost:7880/twirp/livekit.RoomService/ListRooms \ -H "Content-Type: application/json" -d '{}' ``` **Generate JWT tokens** for API access using development credentials: - **Key**: `devkey` - **Secret**: `secret` ### Frontend Features - **Real-time voice conversations** with AI agents - **Room-based communication** supporting multiple participants - **Automatic room creation** for quick setup - **Responsive web interface** optimized for voice interactions - **WebRTC audio** with LiveKit's optimized transport ## Advanced Configuration ### Custom Ports To change default ports, edit configurations and restart services: **LiveKit server** (`~/.voicemode/config/livekit.yaml`): ```yaml port: 8880 # Change from default 7880 ``` **Frontend** (`.env.local`): ```bash PORT=4000 # Change from default 3000 ``` ### SSL/TLS Setup For production deployments with SSL: 1. Configure reverse proxy (nginx, Apache) 2. Update frontend LIVEKIT_SERVER_URL to use wss:// 3. Ensure LiveKit server accepts secure connections ### Multiple Instances Run multiple LiveKit instances: ```bash # Custom config file livekit-server --config /path/to/custom-config.yaml # Different ports # Edit config files to use different port ranges ``` ## Logs and Monitoring ### Log Locations - **LiveKit server**: `~/.voicemode/logs/livekit/livekit.log` - **Frontend**: `~/.voicemode/logs/frontend/frontend.log` - **System services**: `journalctl --user -u voicemode-livekit.service` ### Health Checks ```bash # Check if services are responding curl -f http://localhost:7880/debug/info || echo "LiveKit not responding" curl -f http://localhost:3000 || echo "Frontend not responding" # Check process status voice-mode livekit status voice-mode frontend status ``` ### Performance Monitoring Monitor resource usage: ```bash # Service memory and CPU usage voice-mode livekit status # Shows memory/CPU voice-mode frontend status # Shows resource usage # System monitoring ps aux | grep livekit ps aux | grep next-server # Frontend process ``` ## Uninstallation ### Remove Services ```bash # Disable and stop services voice-mode livekit disable voice-mode livekit stop voice-mode frontend disable # Uninstall (removes binaries and configs) voice-mode livekit uninstall voice-mode livekit uninstall --remove-all-data # Includes logs ``` ### Clean Removal Complete cleanup: ```bash # Remove all LiveKit data rm -rf ~/.voicemode/logs/livekit/ rm -rf ~/.voicemode/config/livekit.yaml # Remove frontend data rm -rf ~/.voicemode/logs/frontend/ # Remove service files (automatic on uninstall) ``` ## Integration with Voice Mode ### MCP Tools LiveKit services are available as MCP tools for AI agents: - `livekit_install` / `livekit_uninstall` - `livekit_server_start` / `livekit_server_stop` / `livekit_server_status` - `livekit_frontend_start` / `livekit_frontend_stop` / `livekit_frontend_status` - `livekit_frontend_open` / `livekit_frontend_logs` ### Agent Integration AI agents can manage LiveKit services programmatically and create voice conversation rooms for direct interaction. ## Troubleshooting ### Common Issues **Port already in use:** ```bash # Find conflicting process lsof -ti :7880 # LiveKit lsof -ti :3000 # Frontend # Stop conflicting services voice-mode livekit stop voice-mode frontend stop ``` **Permission denied:** ```bash # Fix service permissions (Linux) systemctl --user daemon-reload systemctl --user restart voicemode-livekit.service # Fix binary permissions sudo chmod +x /usr/local/bin/livekit-server ``` **Frontend dependencies:** ```bash # Manual dependency install cd ~/.voicemode/frontend # or bundled location npm install # Check frontend logs voice-mode frontend logs ``` **Service won't start:** ```bash # Check service status systemctl --user status voicemode-livekit.service systemctl --user status voicemode-frontend.service # View system logs journalctl --user -u voicemode-livekit.service -f ``` ### Getting Help 1. **Check logs first**: `voice-mode livekit logs` and `voice-mode frontend logs` 2. **Verify installation**: `voice-mode livekit status` 3. **Test connectivity**: Access http://localhost:3000 and http://localhost:7880 4. **Review configuration**: Check `~/.voicemode/config/livekit.yaml` For additional support, include log outputs and system information when reporting issues.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mbailey/voicemode'

If you have feedback or need assistance with the MCP directory API, please join our Discord server