Introduction to Nextcloud Talk
Updated by Angel Written by Angel
What is Nextcloud 14?
Nextcloud 14 is a cloud storage platform that offers users the ability to self-host a video and text chat platform called Talk, featuring end-to-end encryption. This guide will walk you through setting up Nextcloud, and show how to use the video chat platform built-into the latest release.
Install Docker CE
You will need a Linode with Docker CE installed to follow along with the steps in this guide.
These steps install Docker Community Edition (CE) using the official Ubuntu repositories. To install on another distribution, or to install on Mac or Windows, see the official installation page.
Remove any older installations of Docker that may be on your system:
sudo apt remove docker docker-engine docker.io
Make sure you have the necessary packages to allow the use of Docker’s repository:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg
Add Docker’s GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Verify the fingerprint of the GPG key:
sudo apt-key fingerprint 0EBFCD88
You should see output similar to the following:
pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb)
sub rsa4096 2017-02-22 [S] Add the
stable
Docker repository:sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Note
For Ubuntu 19.04, if you get an
E: Package 'docker-ce' has no installation candidate
error, this is because the stable version of docker is not yet available. Therefore, you will need to use the edge / test repository.sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable edge test"
Update your package index and install Docker CE:
sudo apt update sudo apt install docker-ce
Add your limited Linux user account to the
docker
group:sudo usermod -aG docker $USER
Note
After entering theusermod
command, you will need to close your SSH session and open a new one for this change to take effect.Check that the installation was successful by running the built-in “Hello World” program:
docker run hello-world
Install Nextcloud 14 and Talk
Nextcloud
Pull and run the Nextcloud image:
docker run -d -p 8080:80 nextcloud
In a browser, navigate to port
8080
of your Linode (e.g.192.0.2.0:8080
) to launch the Nextcloud console.Create an admin account when prompted:
Talk
Talk works by allowing all the users that are registered to your Nextcloud instance to communicate with each other. Nextcloud Talk offers simple text and video chat, private or group password protected calls, and screen sharing. The Nextcloud Talk source code is available on GitHub.
From the Nextcloud console main page, click the Settings icon on the right side of the navigation bar. Choose + Apps.
Install the Talk add-on located in the Social & communication section. Select the app and click Enable.
- Navigate to the Users section of the Nextcloud interface, and create logins for your team.
How to Use Talk
Nextcloud Talk is built using WebRTC, and works in your browser.
Choose Users from the settings menu and add one or more additional users. Give the username and password combinations to each user and have them log in through the web console.
Once Talk is installed, an icon for the addon will appear on the nav menu:
Click this icon to enter Talk and allow the use of your system’s camera and microphone when prompted. Once this is done, you will be able to start a chat or video call with any of the users you have created.
The basic configuration here allows you to make video calls using Firefox. Google Chrome requires an HTTPS connection in order to allow access to the camera and microphone. To do this, create an SSL certificate or place Nextcloud behind a reverse proxy.
Docker Compose
The basic Nextcloud Docker image is already configured for persistent data in the event that your container crashes. However, Docker Compose makes it easy to launch a configuration using a separate database container and persistent data volume. This method keeps your data consistent through upgrades and automatically handles all container restarts.
Install Docker Compose
Download the latest version of Docker Compose. Check the releases page and replace
1.25.4
in the command below with the version tagged as Latest release:sudo curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
Set file permissions:
sudo chmod +x /usr/local/bin/docker-compose
Create docker-compose.yaml
In a text editor, create
docker-compose.yaml
and add the following configuration (from the Nextcloud Github repo). Fill in theMYSQL_ROOT_PASSWORD
andMYSQL_PASSWORD
with suitable values.- docker-compose.yaml
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
version: '2' volumes: nextcloud: db: services: db: image: mariadb restart: always volumes: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD= - MYSQL_PASSWORD= - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud app: image: nextcloud ports: - 8080:80 links: - db volumes: - nextcloud:/var/www/html restart: always
If it is still running, stop the container from the previous section using
docker stop
and the container name or ID.Launch the Docker Compose configuration:
docker-compose up -d
Nextcloud should be available at port 8080 on your Linode’s public IP address.
When creating an admin account, open the Storage & database drop-down menu, fill in the information as shown below, and enter the MySQL password you used in the
docker-compose
file:
CautionThe setup provided by Nextcloud does not include any SSL encryption. To secure your data and communications, the Nextcloud service should be placed behind a reverse proxy. A Docker Compose file using a NGINX reverse proxy and Let’s Encrypt is also available.
More Information
You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.
Join our Community
Find answers, ask questions, and help others.
This guide is published under a CC BY-ND 4.0 license.