Local Installation
For the official documentation see the LiveKit Self-Hosting Guide.
Prerequisites
-
A Linux environment. The WSL is a viable option if your laptop is running on Windows. you can find the installation guide on the official Microsoft WSL documentation.
-
Install Docker on your linux environment (WSL). Since the default one is Ubuntu, you can find the installation guide on the official Docker documetation
-
Install the LiveKit server on you local Linux environment (not on Docker). You can run it with:
livekit-server --dev
Step 1: Install Redis
LiveKit requires a separate Redis instance to allow concurrent communication between LiveKit and the Egress service.
Install Redis:
sudo apt-get install redis-server
Modify the Redis configuration file:
Edit /etc/redis/redis.conf:
- Comment out the line starting with
bind 127.0.0.1 - Change
protected-mode yestoprotected-mode no
Restart the Redis server:
sudo systemctl restart redis-server
Step 2: Run the LiveKit Server
To enable webhook, create a new file named livekit.yaml:
webhook:
# The API key to use in order to sign the message
# This must match one of the keys LiveKit is configured with
api_key: 'devkey'
urls:
- 'http://localhost:3001/webhook'
Start the LiveKit server with the correct parameters:
livekit-server --dev --bind 0.0.0.0 --redis-host YOUR_WSL_IP:6379 --node-ip YOUR_WSL_IP --config <path_to_file>/livekit.yaml
You can find your WSL IP using:
ip addr show eth0
Step 3: Set Up Egress
Create a directory for the Egress service (e.g., ~/egress-service) and add a config.yaml file:
log_level: debug
api_key: devkey
api_secret: secret
ws_url: ws://YOUR_WSL_IP:7880
insecure: true
redis:
address: YOUR_WSL_IP:6379
Run the Egress service with:
sudo docker run --rm \
-e EGRESS_CONFIG_FILE=/etc/egress.yaml \
-v ~/livekit-backend/recordings:/out \
-v ~/egress-service/config.yaml:/etc/egress.yaml \
livekit/egress
~/livekit-backend/recordings is the directory where recordings will be saved. Ensure it has the correct permissions:
sudo chmod 777 ~/livekit-backend/recordings
Step 4: Configure the Backend
Set the correct LiveKit credentials and host in your backend:
- LiveKit Key:
devkey - LiveKit Secret:
secret - LiveKit Host:
http://YOUR_WSL_IP:7880
Step 5: Configure the Frontend
Update src/main/apiClient:
AUTH_SERVER_URL = http://localhost:3001
(or the port you are using).
Update src/renderer/app/views/LiveKitView.tsx:
const serverUrl = 'ws://YOUR_WSL_IP:7880';
Update src/main/app.ts:
In the Content-Security-Policy, edit the line with // TODO: Only used in local development:
'ws://YOUR_WSL_IP:* http://YOUR_WSL_IP:* ' // TODO: Only used in local development