# FAQ - Medulla Infrastructure

# Architecture and Deployment of Medulla Relay Servers

Relay servers are local components designed to optimize resource distribution and communication between agents and the main**Medulla** server.

##### 1. The Classic Relay (LAN / Private Network)

The classic relay is installed within the company network. Its purpose is to serve as a local "cache" and distribution point for agents located on the same site or network segment.

- **Function:** Bandwidth optimization and image deployment (Imaging).
- **Location:** Remote site, behind a router or an inter-site link.

##### 2. The DMZ Relay (Public Exposure)

The DMZ relay is a secure gateway between the Internet and the main Medulla server.

- **Function:** Enables the management of mobile workstations (teleworking, travel) without directly exposing the main server to the Internet.
- **Location:** Demilitarized Zone (DMZ), accessible via a public IP address or an external domain name.
- **Note:** It does not support remote imaging (mastering) via the Internet.

##### 3. Sizing (Technical Specifications)

The hardware requirements are identical for both roles, but their software functions will differ during configuration.

**A. Relay Server(s) (LAN)**

<table id="bkmrk-composant-sp%C3%A9cificat" style="width:100.595%;"><thead><tr><td style="width:26.1194%;">**Component**</td><td style="width:73.8806%;">**Recommended Specification**</td></tr></thead><tbody><tr><td style="width:26.1194%;"><span>**OS**</span></td><td style="width:73.8806%;"><span>Debian 12.x</span></td></tr><tr><td style="width:26.1194%;"><span>**Architecture**</span></td><td style="width:73.8806%;"><span>x86-64</span></td></tr><tr><td style="width:26.1194%;"><span>**CPU**</span></td><td style="width:73.8806%;"><span>4 cores</span></td></tr><tr><td style="width:26.1194%;"><span>**RAM**</span></td><td style="width:73.8806%;"><span>8 GB</span></td></tr><tr><td style="width:26.1194%;"><span>**Partition /**</span></td><td style="width:73.8806%;"><span>20 GB (EXT4)</span></td></tr><tr><td style="width:26.1194%;"><span>**/var partition**</span></td><td style="width:73.8806%;"><span>≥ 400 GB (XFS) or mount point on array</span></td></tr></tbody></table>

**B. DMZ Relay Server (Mobile Workstations)**

<table id="bkmrk-composant-sp%C3%A9cificat-1" style="width:99.881%;"><thead><tr><td style="width:26.1337%;">**Component**</td><td style="width:73.8663%;">**Recommended specification**</td></tr></thead><tbody><tr><td style="width:26.1337%;"><span>**OS**</span></td><td style="width:73.8663%;"><span>Debian 12.x</span></td></tr><tr><td style="width:26.1337%;"><span>**Architecture**</span></td><td style="width:73.8663%;"><span>x86-64</span></td></tr><tr><td style="width:26.1337%;"><span>**CPU**</span></td><td style="width:73.8663%;"><span>4 cores</span></td></tr><tr><td style="width:26.1337%;"><span>**RAM**</span></td><td style="width:73.8663%;"><span>8 GB</span></td></tr><tr><td style="width:26.1337%;"><span>**Partition /**</span></td><td style="width:73.8663%;"><span>20 GB (EXT4)</span></td></tr><tr><td style="width:26.1337%;"><span>**/var partition**</span></td><td style="width:73.8663%;"><span>≥ 200 GB (XFS) or mount point on array</span></td></tr></tbody></table>

##### <span style="font-family:'-apple-system', BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;font-size:1.4em;font-weight:400;">4. Decision Summary</span>

This table helps you determine which type of server to deploy based on your situation:

<table id="bkmrk-condition-type-de-re"><thead><tr><td>**Condition**</td><td>**Required Relay Type**</td><td>**Main reason**</td></tr></thead><tbody><tr><td><span>**Fleet &gt; 5,000 workstations** on the same network</span></td><td><span>**Classic Relay (LAN)**</span></td><td><span>Reduction of CPU/RAM load on the main Medulla server.</span></td></tr><tr><td><span>**Remote site** (Different network without a transparent LAN connection)</span></td><td><span>**Classic Relay (LAN)**</span></td><td><span>Enable local imaging and save WAN bandwidth.</span></td></tr><tr><td><span>**Mobile workstations** (Remote work, outside the private network, without VPN)</span></td><td><span>**DMZ Relay**</span></td><td><span>Ensure secure agent communication over the Internet.</span></td></tr><tr><td><span>**Interconnected sites** (High-speed private connection, authorized LAN traffic)</span></td><td><span>**None (Optional)**</span></td><td><span>The main server can manage the entire system, including imaging.</span></td></tr></tbody></table>

# Procedure for adding relays to Medulla Dedicated SaaS

#### 1. Setting up the server

---

Required settings:

- OS: Debian 12.x
- Architecture: x86-64
- CPU: 4 vCPUs
- RAM: 8 GB
- Storage
- /: 20 GB – EXT4
- /var: ≥ 400 GB – XFS (Or a dedicated mount point on an external array/volume)

#### 2. Creating a user

---

Create the user "medulla" and grant them sudo privileges.

#### 3. Installing the SSH key

---

The SSH public key provided as an attachment must be added to:

```
/home/medulla/.ssh/authorized_keys

```

#### 4. Opening network ports

---

Traffic must be allowed in both directions between:

- Medulla Server
- Relay (your server)

##### 4.1. Medulla Server → Relay Traffic

**Port | Description**

- 5269 | TCP / XMXPP
- 22 | TCP / SSH
- 22000 | TCP / Syncthing
- 8081 | TCP / HTTP(S)
- 9990 | TCP / XML RPC HTTPS

##### 4.2. Relay Stream → Medulla Server

**Port | Description**

- 5269 | TCP / XMXPP
- 22 | TCP / SSH
- 22000 | TCP / Syncthing
- 8443 | TCP / HTTPS
- 22067 | TCP / BEP-Relay/TLS
- 9999 | TCP / XML RPC/HTTPS
- 7080 | TCP / XML RPC/HTTPS

#### 5. Information to Provide

---

<span style="color:rgb(224,62,45);">**The team must provide us with:**</span>

- <span style="color:rgb(224,62,45);">Create the entity you wish to dedicate to the relay in ITSM (only if you want an entity different from the parent entity).</span>
- <span style="color:rgb(224,62,45);">Confirmation that the above network ports have been opened.</span>
- <span style="color:rgb(224,62,45);">Confirmation that the SSH key has been added to the relay server.</span>
- <span style="color:rgb(224,62,45);">The password for the "medulla" user with passwordless sudo privileges.</span>
- <span style="color:rgb(224,62,45);">The FQDN of your relay server</span>

#### 6. Continuation of the installation

---

Once the machine is ready, we will perform the full software installation via Ansible.

A Medulla agent will be automatically generated to connect the workstations to this relay.

# Medulla Update - 5.4.x to 5.5.x

<p class="callout info">Medulla / 5.4.x / Updating Medulla to 5.5.x / Medulla Maintenance</p>

To update from version 5.4.x to 5.5.x and higher, please follow the steps below:

<span style="font-size:11pt;font-family:Aptos, sans-serif;"><span style="font-size:11pt;font-family:Aptos, sans-serif;">Download the file to the Medulla server:</span></span>

```bash
curl https://dl.medulla-tech.io/up/update_medulla.sh
```

<span style="font-size:11pt;font-family:Aptos, sans-serif;"><span style="font-size:11pt;font-family:Aptos, sans-serif;">Grant execution permissions to the script: </span></span>

```
chmod +x update_medulla.sh
```

<span style="font-size:11pt;">Run the update: </span>

```
./update_medulla.sh
```

Once the procedure is complete, return to the Medulla interface.

<p class="callout warning">All commands must be run as root or with an account that has administrator privileges.</p>