---
title: "Cloud server with Matrix"
sidebar_label: "Matrix"
sidebar_position: 17
toc_max_heading_level: 3
description: "How to create a cloud server with a web interface for communication and data synchronization in the Matrix network"
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import {CustomTable} from '@selectel/docux/components'
import Formbricks from '@theme/MDXComponents/Formbricks'
import CreateServer from '@site/i18n/en/docusaurus-plugin-content-docs/current/_partials/cloud-servers/applications/create-server-for-apps.mdx'

# Cloud server with Matrix

Matrix is an open protocol for decentralized and secure messaging. A cloud server with Matrix is a software server that provides communication and synchronization of data within the Matrix network.

In Selectel, a cloud server with Matrix includes:

* Synapse — a server-side implementation of the Matrix protocol;
* Element Web — a web interface for the Matrix network that allows you to interact with the Matrix network via a web browser without the need to install additional software;
* Coturn — open-source software that helps establish direct audio, video, and data connections between devices on the internet.

You can [create a cloud server with a pre-installed Matrix application](#create-cloud-server-with-matrix). In Russia, the application runs on a cloud server with the [SelectOS 1 64-bit](https://selectos.selectel.ru/news/mega/) operating system. In other [countries](/infrastructure/locations.mdx#country) — Ubuntu 22.04.

Before creating a cloud server with an application, read the [software license agreements](https://423.selcdn.ru/kb/license-agreements-for-application-images-LANG.pdf) included in the image.

## Minimum resource requirements \{#minimum-requirements}

<CustomTable>
  <table>
    <tbody>
      <tr>
        <th>Number of vCPUs</th><td>2</td>
      </tr>

      <tr>
        <th>RAM</th><td>4 GB</td>
      </tr>

      <tr>
        <th>Boot volume</th><td>20 GB</td>
      </tr>
    </tbody>
  </table>
</CustomTable>

## Create a cloud server with Matrix \{#create-cloud-server-with-matrix}

For Matrix to function, the cloud server must be accessible from the internet. To do this, when creating the server, you must create a private subnet and attach a public floating IP address. To configure Matrix, you must specify the application parameters when creating the server.

After the server with Matrix is created, a free [TLS certificate from Let’s Encrypt®](/certificates-manager/certificates/lets-encrypt.mdx) will be automatically issued for the domain you specify. To issue the certificate, you need to add an A record for the domain and specify the server's public floating IP address as the record value. You can add the domain to [Selectel DNS Hosting (actual](/dns-hosting/)).

1. [Create a public floating IP address](#create-floating-ip).

2. [Add an A record for the domain](#add-a-record).

3. [Create a cloud server with Matrix](#create-matrix-server).

### 1. Create a public floating IP address \{#create-floating-ip}

Create a public floating IP address so that the cloud server with Matrix is accessible from the internet.

Use the [Create a public floating IP address](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx#create-public-floating-ip) section of the [Public Floating IP addresses](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx) guide.

### 2. Add an A record for the domain \{#add-a-record}

[Add a resource record](/dns-hosting/records/add-record.mdx) to access Matrix by domain.

Specify:

* [resource record type](/dns-hosting/records/add-record.mdx#record-types) — A;
* record value — the public floating IP address you [created in step 1](#create-floating-ip).

### 3. Create a server with Matrix \{#create-matrix-server}

<CreateServer AppNameInPanel="Cloud Matrix" MinConfig="2 vCPU, RAM starting from 4 GB and a boot disk size starting from 20 GB" OptionalVolumes="Optional: add an additional" VolumeSize="Specify the size of the network disk in GB or TB">
  4. Fill in the application parameters:

     4.1. In the **Domain zone** field, enter the domain for accessing the Matrix web interface that you [added in step 2](#add-a-record).

     4.2. Enter the Matrix administrator email address to issue a Let’s Encrypt® certificate.
</CreateServer>

## Create a Matrix user \{#create-matrix-user}

1. [Connect to the cloud server via SSH](/cloud-servers/manage/connect-to-server.mdx#connect-via-ssh).

   Once connected to the cloud server, a message about available actions will appear. Example output:

   ```bash
   1) Управление пользователями
   2) Обновление Synapse / Element-Web
   0) Выход
   ```

2. Go to the user management menu; to do this, enter `1` and press **Enter**.

3. Create a user; to do this, in the user management menu, enter `1` and press **Enter**.

4. Enter the username and press **Enter**.

5. Enter the user password and press **Enter**.

6. Make sure the user has been created:

   6.1. Open the user list; to do this, in the user management menu, enter `6` and press **Enter**.

   6.2. Ensure the username you entered in step 4 is in the list.

   6.3. Return to the menu; to do this, enter `0` and press **Enter**.

7. Optional: make the user an administrator:

   7.1. Open administrator rights settings; to do this, in the user management menu, enter `2` and press **Enter**.

   7.2. Enter the name of the user you want to make an administrator.

<Formbricks />
