Setup Nextcloud Talk Recording Backend on Ubuntu

With the last few releases, Nextcloud has introduced the ability to record your calls made through Talk. If you have heard of or set up Nextcloud AIO, it is now a part of it. Are you in the same boat, wanting to record your calls on Nextcloud Talk? If so, read on to learn how to setup Nextcloud Talk Recording Backend on Ubuntu.

This is what you need prior to setting up the Recording Backend.

  • A working latest Nextcloud instance – Read this guide for new installation
  • A Signaling server setup already – Follow this guide to set it up

We will install the Recording Backend on the current Nextcloud instance. This guide will cover the manual installation of the Nextcloud Recording backend and will not include anything related to Nextcloud AIO. If you would like to set it up on a separate server, you can do so, but you will need a reverse proxy (check FAQ below) in front of it.

If you don’t want to use the AIO container for the Recording Backend, you can do it manually following their installation guide.

1- Prepare the server

Update your system and install the Docker package.

apt update && apt upgrade

apt install docker.io

2- Install Recording Backend

Nextcloud AIO has a separate image for the Recording Backend. You can check the images they provide on dockerhub.

For some reasons, the latest image I pulled did not work for me, so I went with the beta image.

docker pull nextcloud/aio-talk-recording:beta

You can now run the container in the background with the following command. Make changes as necessary.

HPB_DOMAIN = the High-performance backend server domain name (Signaling server)

NC_DOMAIN = your Nextcloud domain name

RECORDING_SECRET = random string which will be used in Talk settings

INTERNAL_SECRET = secret set in Signaling server for external clients

docker run -d --name talk-recording-beta -e ALLOW_ALL=true -e HPB_DOMAIN=talk.myncserver.com -e NC_DOMAIN=myncserver.com -e TZ=Europe/Rome -e RECORDING_SECRET=wgD3hbk8Dfujhbmw -e INTERNAL_SECRET=FbGajk875R8Df50mw021j944hujhm3bd -p 1234:1234 nextcloud/aio-talk-recording:beta

3- Setup Talk

After running the container, you can now go to your Nextcloud instance, click on Administration settings, and then click on Talk.

Scroll to Recording backend and click on the “Add a new recording backend server” button.

In the URL field, enter http://127.0.0.1:1234, and input the RECORDING_SECRET from above into the Shared secret field. Do not check the “Validate SSL certificate” checkbox for a local setup.

You should now be able to record your calls in Talk.

Debugging

If you are stuck somewhere and want to check things, here are a few helpful commands.

docker stop talk-recording-beta

docker start talk-recording-beta

Check the docker logs for the last one hour with:

docker logs --since=1h talk-recording-beta

Enter the container:

docker exec -u root -it talk-recording-beta /bin/bash

Once inside the container, the files and logs are stored inside the /tmp directory. The configuration file for recording is in the /conf.

The gecko log is stored in /tmp/geckodriver.log file inside the container.

FAQ

Can I try another image while keeping the current one installed and running?

Yes, you can, but I advise stopping the running container and then pulling the image you want to run. You can use the same command with the applied changes, such as secrets (remaining the same), container name, and image file.

I am facing an issue. What should I do?

Try to debug as much as possible to see if you can find the cause of the issue.

The recording is not working. What should I do?

If your settings are correct and recording is not working, try using another image. As mentioned, the latest image didn’t work for me either. Then, I tried the beta image, and it worked.

I want to install it on a separate server with a reverse proxy. How should I proceed?

You can follow the installation steps from this guide. For the reverse proxy, check this guide from step 9 to step 11. Follow where necessary.

Leave a Reply

Your email address will not be published. Required fields are marked *