The plugNmeet-recorder is capable of handling both session recording and RTMP streaming functionalities. Due to its high CPU utilization, it is strongly recommended to deploy the recorder on a server separate from the one running plugNmeet or LiveKit. However, in environments where recording is performed infrequently, co-locating the recorder on the same server is fine. In such cases, it is advisable to use the plugnmeet-install script to facilitate a streamlined and automated installation process.
Requirements
- Linux system (Recommend: Ubuntu)
- Google Chrome
- pulseaudio
- xvfb
- ffmpeg
Install dependencies (Ubuntu)
## To insall pulseaudio, xvfb & ffmpeg
sudo apt install -y pulseaudio xvfb ffmpeg
## To start pulseaudio
pulseaudio -D --verbose --exit-idle-time=-1 --disallow-exit
# to start at boot
systemctl --user enable pulseaudio
## Google Chrome
curl -fsSL https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o /usr/share/keyrings/googlechrome-linux-keyring.gpg
sudo echo "deb [arch=amd64 signed-by=/usr/share/keyrings/googlechrome-linux-keyring.gpg] http://dl.google.com/linux/chrome/deb/ stable main" >/etc/apt/sources.list.d/google-chrome.list
sudo apt -y update && apt -y install google-chrome-stable
## optional
sudo apt install -y fonts-noto fonts-liberation
Install recorder
- To download the latest version suitable for your operating system architecture, visit the release page or use the plugnmeet-recorder Docker image.
- Extract the downloaded ZIP file, navigate to the extracted directory using the terminal, and run:
cp config_sample.yaml config.yaml
-
Edit the
config.yamlfile with the appropriate settings. Thenats_infosection must match the configuration used in theplugnmeet-server. Themain_pathvalue should be the same as therecording_files_pathspecified in theplugnmeet-server's config.yaml. If you're using NFS or another type of network-mounted storage, ensure both therecorderand theplugnmeet-serverhave access to it. Otherwise, users will not be able to download recordings. -
Update the
plugNmeet_infoandnats_infosections with the correct values. -
You can deploy
plugnmeet-recorderon multiple servers. Theplugnmeet-serverwill automatically select an available recorder based on load and availability. In such cases, make sure to assign a unique id in eachconfig.yamlfile (e.g.,node_01,node_02, etc.). You can also adjust themax_limitvalue according to the server’s capacity. -
Start the recorder using the appropriate binary:
./plugnmeet-recorder-linux-[amd64|arm64]
Development
- Clone the project & navigate to the directory.
- Copy to rename the following files and update info:
cp config_sample.yaml config.yaml
cp docker-compose_sample.yaml docker-compose.yaml
- Start the development environment
docker compose build
docker compose up