# Monitoring & Maintenance

When running your own server, it's important to have ways to monitor your system and perform any required maintenance. This server will always be operating which makes it even more important to take our system apart to remove dust and dirt.

# Sustainable Solutions

It's important not to create a system that is difficult to maintain or rather becomes easier to ignore. This is why it can be so important to make sure we build in the solutions from the start.

Graceful degradation

## Manageable Schedule

Calendar ics files for remembering to perform basic tasks

Task list of things to maintain

Cleaning

Put in notebook

## Constant Access

It is important to make sure that you always have access to your server. There are many options that provide digital remote access such as through a web browser or an app, but it might also be important to keep a method for accessing physically, even if it is a small USB display and compact USB keyboard mouse (couch keyboard) set.

Headless server operation without needing to access the base server desktop much but it is available through network access

Ssh access

## Rolling Updates

Release models for Debian

- *Stable* is the current release and targets stable and well-tested software needs.<sup class="reference" id="bkmrk-%5B140%5D">[<span class="cite-bracket">\[</span>140<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian#cite_note-142)</sup> *Stable* is made by freezing *Testing* for a few months where bugs are fixed and packages with too many bugs are removed; then the resulting system is released as *stable*. It is updated only if major security or usability fixes are incorporated.<sup class="reference" id="bkmrk-%5B129%5D">[<span class="cite-bracket">\[</span>129<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian#cite_note-distributions-131)</sup> This branch has an optional [backports](https://en.m.wikipedia.org/wiki/Backporting "Backporting") service that provides more recent versions of some software.<sup class="reference" id="bkmrk-%5B63%5D">[<span class="cite-bracket">\[</span>63<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian#cite_note-news-backports-official-65)</sup> *Stable*<span class="nowrap" style="padding-left: 0.1em;">'</span>s CDs and DVDs can be found in the Debian website.<sup class="reference" id="bkmrk-%5B111%5D">[<span class="cite-bracket">\[</span>111<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian#cite_note-jigdo-cd-113)</sup> The current version of *Stable* is codenamed *bookworm*.<sup class="reference" id="bkmrk-%5B139%5D">[<span class="cite-bracket">\[</span>139<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian#cite_note-debian-releases-141)</sup>

new *stable* branch of Debian gets released approximately every 2 years. It will receive official support for about 3 years with update for major security or usability fixes. Point releases will be available every several months as determined by Stable Release Managers (SRM).<sup class="reference" id="bkmrk-%5B227%5D">[<span class="cite-bracket">\[</span>227<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian#cite_note-229)</sup>

<section class="mf-section-2 collapsible-block collapsible-block-js open-block" id="bkmrk-debian-unstable%2C-kno">Debian Unstable, known as "Sid", contains all the latest packages as soon as they are available, and follows a [rolling-release model](https://en.m.wikipedia.org/wiki/Rolling_release "Rolling release").<sup class="reference" id="bkmrk-%5B6%5D">[<span class="cite-bracket">\[</span>6<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian_version_history#cite_note-6)</sup>

Once a package has been in Debian Unstable for 2–10 days (depending on the urgency of the upload), doesn't introduce critical bugs and doesn't break other packages (among other conditions), it is included in Debian Testing, also known as "next-stable".<sup class="reference" id="bkmrk-%5B7%5D">[<span class="cite-bracket">\[</span>7<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian_version_history#cite_note-7)</sup>

On average about every two years, Debian Testing enters a "freeze" cycle, where new packages are held back unless they fix critical bugs.<sup class="reference" id="bkmrk-%5B8%5D">[<span class="cite-bracket">\[</span>8<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian_version_history#cite_note-:1-8)</sup><sup class="reference" id="bkmrk-%5B9%5D">[<span class="cite-bracket">\[</span>9<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian_version_history#cite_note-:2-9)</sup> This frozen state lasts on average 7 months (but can be as short as one month).<sup class="reference" id="bkmrk-%5B8%5D-1">[<span class="cite-bracket">\[</span>8<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian_version_history#cite_note-:1-8)</sup> Once Debian Testing doesn't contain any more release critical bugs, it is declared "stable" and released with a version number.<sup class="reference" id="bkmrk-%5B9%5D-1">[<span class="cite-bracket">\[</span>9<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian_version_history#cite_note-:2-9)</sup>

</section>Big updates

Trixie

With the release of Debian 12 on June 10, 2023, testing is now also known by the codename Trixie which is anticipated to be released as Debian 13 in 2025.<sup class="reference" id="bkmrk-%5B304%5D">[<span class="cite-bracket">\[</span>304<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian_version_history#cite_note-310)</sup> It is likely to use the v6.12 LTS kernel.

Security team

[https://security-team.debian.org/](https://security-team.debian.org/)

Known vulnerabilities

[https://security-tracker.debian.org/tracker/status/release/stable](https://security-tracker.debian.org/tracker/status/release/stable)

Debian security advisories

[https://www.debian.org/security/](https://www.debian.org/security/)

Rss feed

[https://www.debian.org/security/dsa](https://www.debian.org/security/dsa)

Debian also launched its Long Term Support (LTS) project since Debian 6 (Debian Squeeze). For each Debian release, it will receive two years of extra security updates provided by LTS Team after its End Of Life (EOL). However, no point releases will be made. Now each Debian release can receive 5 years of security support in total.<sup class="reference" id="bkmrk-%5B228%5D">[<span class="cite-bracket">\[</span>228<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian#cite_note-230)</sup>

The *stable* branch is supported by the Debian security team; *oldstable* is supported for one year.<sup class="reference" id="bkmrk-%5B142%5D">[<span class="cite-bracket">\[</span>142<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian#cite_note-securityfaq-144)</sup> Although Squeeze is not officially supported, Debian is coordinating an effort to provide [long-term support](https://en.m.wikipedia.org/wiki/Long-term_support "Long-term support") (LTS) until February 2016, five years after the initial release, but only for the IA-32 and x86-64 platforms.<sup class="reference" id="bkmrk-%5B234%5D">[<span class="cite-bracket">\[</span>234<span class="cite-bracket">\]</span>](https://en.m.wikipedia.org/wiki/Debian#cite_note-236)</sup>

Docker updates

Diun

Docker security announcements

[https://docs.docker.com/security/security-announcements/](https://docs.docker.com/security/security-announcements/)

Software add on updates (home assistant and word press)

## Serviceable Parts

Refurbished hardware and replacement as parts break

Keep your documentation and make note of the parts you have in your computer

Put in notebook

# Network Access

We need to make sure we have network access to our server even if we don't have a display.

# Remote Terminal

SSH – or Secure Shell – allows us to connect to our server over our local network to run commands remotely.

This is very helpful for running an always-on server that doesn't have a display attached, often called a "headless" system. During the Debian install process, we opted to enable SSH by support.

When connecting to a new host, SSH will create a digital fingerprint for it. When we connect to this server in the future, it will compare the server's fingerprint to the one currently on file. In the event they don't match in the future, SSH will warn us that there is a mismatch and someone might be impersonating your server.

There are many different ways to connect to your server using SSH. We will highlight some common methods for connecting to our server and controlling it remotely.

## Linux

You can use the terminal available on most Distributions of Linux – such as Debian, Ubuntu, and Linux Mint – to remotely connect to your server.

<p class="callout info">You will need to know your [username set during the installation process](https://hub.subspace.services/books/software/chapter/installing-an-operating-system "Installing an Operating System") and the IP Address you set during [network configuration](https://hub.subspace.services/books/software/page/networking "Static Network IP").</p>

You can open a terminal and ensure that SSH is installed by running the command:

```bash
sudo apt-get install -y ssh
```

<table border="1" class="align-center" id="bkmrk-" style="border-collapse: collapse; width: 100%; border-width: 1px; height: 28.8px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 28.8px;"><td style="height: 28.8px;">[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/lWFimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/lWFimage.png)

</td><td style="height: 28.8px;">[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/RYmimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/RYmimage.png)

</td></tr></tbody></table>

Once we are sure this is installed, we can run connect to our server through the terminal using the *ssh* command. We will be connecting to our user account what is at our server's IP address:

```bash
ssh username@192.168.68.100
```

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/RPQimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/RPQimage.png)

You will be alerted that the authenticity of the host server could not be verified. This happens because we have never connected to the server before and it can't ensure the server's fingerprint.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/OCzimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/OCzimage.png)

We can type 'yes' then hit 'enter' to accept the newly generated host fingerprint and remember it for future use.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/zzoimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/zzoimage.png)

Now, you will be prompted for your password. After hitting 'enter', you will be connected to your server and can run commands.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/mMjimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/mMjimage.png)

You can disconnect from the SSH connection with the following command:

```bash
exit
```

## Windows

Windows 10 and Windows 11 come with a client pre-installed so you can use SSH to connect to your server remotely.

<p class="callout info">You will need to know your [username set during the installation process](https://hub.subspace.services/books/software/chapter/installing-an-operating-system "Installing an Operating System") and the IP Address you set during [network configuration](https://hub.subspace.services/books/software/page/networking "Static Network IP").</p>

You can open a terminal or PowerShell and run the following command:

```bash
ssh username@192.168.68.100
```

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/8dEimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/8dEimage.png)

You will be alerted that the authenticity of the host server could not be verified. This happens because we have never connected to the server before and it can't ensure the server's fingerprint.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/2MNimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/2MNimage.png)

We can type 'yes' then hit 'enter' to accept the newly generated host fingerprint and remember it for future use.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/jnEimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/jnEimage.png)

Now, you will be prompted for your password. After hitting 'enter', you will be connected to your server and can run commands.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/518image.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/518image.png)

You can disconnect from the SSH connection with the following command:

```bash
exit
```

## MacOS

MacOS, and the legacy OS X, come with SSH already installed so you can remotely connect to your server.

<p class="callout info">You will need to know your [username set during the installation process](https://hub.subspace.services/books/software/chapter/installing-an-operating-system "Installing an Operating System") and the IP Address you set during [network configuration](https://hub.subspace.services/books/software/page/networking "Static Network IP").</p>

We can connect to our server through the terminal using the *ssh* command. We will be connecting to our user account what is at our server's IP address:

```bash
ssh username@192.168.68.100
```

You will be alerted that the authenticity of the host server could not be verified. This happens because we have never connected to the server before and it can't ensure the server's fingerprint.

We can type 'yes' then hit 'enter' to accept the newly generated host fingerprint and remember it for future use.

Now, you will be prompted for your password. After hitting 'enter', you will be connected to your server and can run commands.

You can disconnect from the SSH connection with the following command:

```bash
exit
```

## Android &amp; iOS

There are apps available through the Google Play Store and Apple App Store that allow you to remotely connect to your server using SSH.

We recommend [Termius](https://termius.com/), a freeware application for Android 7 and iOS 16 or newer. You can create a profile for your server with the credentials pre-saved for quick connection. As a premium paid feature, you can also sync these hosts between the mobile and desktop clients.

[![1000006219.png](https://hub.subspace.services/uploads/images/gallery/2025-02/scaled-1680-/1000006219.png)](https://hub.subspace.services/uploads/images/gallery/2025-02/1000006219.png)

## Web Access

SSH is a great option for connecting to your server over your local network, but is not available through the world wide web. The easiest way to accomplish this is to use our home server to host [Guacamole](https://hub.subspace.services/books/administration-monitoring/chapter/guacamole "Guacamole"), a web application that facilitates remote connection to RDP, VNC and SSH through your web browser.

[![Screen Shot 2025-03-09 at 21.24.24.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-09-at-21-24-24.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/screen-shot-2025-03-09-at-21-24-24.png)

# Remote Desktop

We will be installing [xrdp](https://en.wikipedia.org/wiki/Xrdp), a service that allows us to remotely access our computer over the local network. This is an open-source implementation of Microsoft's [Remote Desktop Protocol](https://en.wikipedia.org/wiki/Remote_Desktop_Protocol) and will work with any software that supports RDP.

## Installing Remote Desktop

Run this command in a terminal to install it:

```
sudo apt-get install -y xrdp
```

<table border="1" class="align-center" id="bkmrk-" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/Mxcimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/Mxcimage.png)</td><td>[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/iJ2image.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/iJ2image.png)

</td></tr></tbody></table>

Once installed, we can verify that the service is running with the command:

```
sudo systemctl status xrdp
```

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/2VAimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/2VAimage.png)

## Accessing Remote Desktop

xrdp is an open-source implementation of the Microsoft Windows RDP protocol that is widely supported by most operating systems. Here, we can explore some of the ways to remotely access your server desktop for maintenance.

<p class="callout warning">You cannot remote desktop into your account while you are logged in locally through the desktop.</p>

### Linux

We will be installing [Remmina](https://en.wikipedia.org/wiki/Remmina), an open-source client for accessing computers over the network using protocols like RDP, SSH, and VNC. We will need to open the terminal and run the following commands to install the software.

```
sudo apt update
sudo apt-get install -y remmina remmina-plugin-rdp remmina-plugin-vnc
```

<table border="1" id="bkmrk--2" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td>[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/vTqimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/vTqimage.png)</td><td>[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/lKcimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/lKcimage.png)</td><td>[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/7Gpimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/7Gpimage.png)</td></tr></tbody></table>

Once we have finished installing the software, we can open it from the start menu.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/osLimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/osLimage.png)

You can connect to your server by entering the IP address into the bar. Make sure to use the RDP protocol.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/hVgimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/hVgimage.png)

### Windows

Most versions of Windows come with the Remote Desktop Connection program installed that can be used to connect to your server. You will need to enter the IP address of your server on the local network.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/G2Uimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/G2Uimage.png)

Once connected, you can enter your username and password to connect to the desktop.

<table border="1" id="bkmrk--3" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/oc2image.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/oc2image.png)</td><td>[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/LmWimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/LmWimage.png)</td></tr></tbody></table>

### MacOS

### Android &amp; iOS

### Web Access

[![Screen Shot 2025-03-09 at 21.24.24.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-09-at-21-24-24.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/screen-shot-2025-03-09-at-21-24-24.png)

[![Screen Shot 2025-03-09 at 21.26.31.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-09-at-21-26-31.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/screen-shot-2025-03-09-at-21-26-31.png)

# File Sharing

We will be installing [Samba](https://en.m.wikipedia.org/wiki/Samba_(software)), a protocol that allows us to share your files over the local network. This is open-source implementation of Microsoft's [SMB](https://en.m.wikipedia.org/wiki/Server_Message_Block) protocol.

## Installation

We can install it by entering the following command:

```bash
sudo apt-get install -y samba samba-common-bin smbclient
```

Now that Samba is installed, we can ensure it's running by using the following command:

```bash
sudo systemctl status samba
```

Now that we know it's installed and running, we can set up our storage drives for sharing.

## Setting Up Shares

Before we make any changes to the Samba configuration, we should back up the default. We can do this by copying the file to a backup:

```bash
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
```

Now, we will use a terminal-based text editor known as *nano*. We will edit the Samba configuration file that was just backed up:

```bash
sudo nano /etc/samba/smb.conf
```

Samba comes with default sharing options, but we are going to modifying the configuration file to include the hard drives we mounted earlier. Using the arrows keys, navigate to the very bottom of the file.

For our Storage drive, we will be sharing it across our local network so anyone with the password can access the files on it.

```ini
[Storage]
   path = /mnt/storage
   writable = yes
   guest ok = no
   valid users = @sambashare
```

Once we've made our edits, we can hit Ctrl-O to save, then enter to confirm the file name, and finally Ctrl-X to class the nano editor.

## Create a Samba User

Next, we will provide our user account with access to the Samba share we just made.

<p class="callout warning">Change 'username' to your account's username.</p>

```bash
sudo adduser username sambashare
```

Next, we will need to set the password we'll use to access our files.

<p class="callout warning">Change 'username' to your account's username.</p>

```bash
sudo smbpasswd -a username
```

You will be prompted to enter and confirm your password. If you wish, this can be the same as your account password.

Once that is completed, we can restart the Samba service using the following command:

```bash
sudo systemctl restart smbd
```

Now, we can verify that our Samba share are working by verifying the output of the following command:

```sh
smbclient -L localhost -U %
```

This program lists all available Samba shares on the local computer.

# Backup Solutions

All servers need an effective and consistent backup solution in case something goes wrong.

# Local Backup

You can never know when a hard drive will fail or a software update will cause your operating system to fail to boot. It's always best to be prepared and build yourself a safety net. A simple yet effective backup solution is simply an external hard drive connected to your server.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/fRmimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/fRmimage.png)

[Timeshift](https://github.com/linuxmint/timeshift) is an application that runs in the background on your server and performs backups to a local storage drive. This service only copies files as they change, making it easy to perform incremental backups daily or weekly. These can be created on a schedule and old backups being automatically deleted to free up space as needed. In the event of a storage drive failure, we can use the command line version of Timeshift to restore our system from the latest backup.

We can install Timeshift using the terminal:

```bash
sudo apt-get install -y timeshift
```

Once installed, we can open it with:

```bash
sudo timeshift-gtk
```

<p class="callout info">While connecting through [RDP](https://hub.subspace.services/books/monitoring-maintenance/page/remote-desktop "Remote Desktop"), this terminal command temporarily allows the root user's GUI applications to launch through your user account:   
*xhost si:localuser:root*</p>

The first time we open Timeshift, it'll start a configuration wizard.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/afDimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/afDimage.png)

We will be asked what Snapshot style we want to use for our backups and select 'rsync'. [Rsync](https://rsync.samba.org/) is open-source command-line application that specializes with incremental file transfers.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/R8Timage.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/R8Timage.png)

Timeshift will estimate the backup size by scanning our system files. This should not take long because we are setting up a brand new operating system.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/Y0fimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/Y0fimage.png)

Once it's completed, we'll be asked where we will be storing our backups. We will select the Storage drive that [we mounted earlier](https://hub.subspace.services/books/software/page/mounting-your-disks "Mounting Your Disks"). Timeshift will create a folder within the root of that drive, in our case: */mnt/storage/Timeshift*.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/zYfimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/zYfimage.png)

Next, we'll have choose our snapshot level. This allows us to customize how often we want our backups to run, as well as how many to keep. Weekly backups are a great starting point, but running them nightly can help you get back up and running faster. Enabling monthly, weekly, and daily backups will provide the most protection by ensuring you have received data going back months.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/tHBimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/tHBimage.png)

Timeshift will ask if you want to backup the home directories for root and your account system accounts. We will choose to enable both to include all files.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/FpIimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/FpIimage.png)

Now that we have finished setup, we can create our first backup by hitting the <span class="material-symbols-outlined"> vertical\_align\_bottom </span> 'Create' button.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/pBGimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/pBGimage.png)

A window will appear to show us the current progress. The first backup of your freshly installed operating system shouldn't take too long.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/8IGimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/8IGimage.png)

Once the backup is completed, you're safe in the event of a backup.

[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/jAOimage.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/jAOimage.png)

Timeshift will automatically backup your computer on the schedule we selected. [Your system and files can be restored](https://github.com/linuxmint/timeshift#system-restore) through the graphical interface, on your current system or through a [Debian Live CD](https://www.debian.org/CD/live/).

# Remote Backup

[Duplicati](https://hub.subspace.services/books/duplicati "Duplicati") is a self-hosted service we can access through our browser that let's schedule backups. It can never hurt to have an additional strategy, especially one that is stored outside of your home. Through Duplicati, we can upload encrypted backups to a cloud storage service.

[![1000006224.png](https://hub.subspace.services/uploads/images/gallery/2025-02/scaled-1680-/1000006224.png)](https://hub.subspace.services/uploads/images/gallery/2025-02/1000006224.png)

Local backups are perfect to getting your server running after a systems failure while remote backups offer long-term reassurance you'll never lose important personal data. We can use remote backup storage for documents, photos and other data we cannot stand to lose.

In the event of something catastrophic, like a lightning strike disabling your entire server or a fire, storing your more important data elsewhere can be a life saver. This form of cloud storage is excellent as a decentralized strategy because the data is still fully in our control, using secure encryption and a filing system only we understand.

We will be focusing on a cloud storage service provided by Backblaze known as "B2 Buckets." These storage buckets are affordably priced, per terabyte of data, and come with unlimited bandwidth for uploading files to their service. Downloading large amounts of data, however, can accrue fees per gigabyte. Therefore, cloud storage is a great safety net to have in the event of catastrophic data loss.

We can install Duplicati through Portainer now that we have that all set up.

# Administration

### <span style="white-space: pre-wrap;">Hardware Monitoring </span>

[![Screen Shot 2025-03-27 at 19.07.12.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-27-at-19-07-12.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-27-at-19-07-12.png)

[Cockpit](https://hub.subspace.services/books/cockpit "Cockpit")<span style="white-space: pre-wrap;"> is an excellent way to monitor your server's CPU, memory and storage space through your web browser. The web console can also install updates to your operating system and view your logs for troubleshooting. Cockpit also monitors your storage disks </span>[SMART](https://en.m.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology)<span style="white-space: pre-wrap;"> (Self-Monitoring, Analysis and Reporting Tool) status to inform you about emergent issues.</span>

[Cockpit](https://cockpit-project.org/) is an web-based dashboard for Linux servers that keeps you up-to-date at a glance and helps you know what your server is doing without needing to remember all of the console commands.

<table border="1" id="bkmrk--1" style="border-collapse: collapse; width: 99.9805%;"><colgroup><col style="width: 100%;"></col></colgroup><tbody><tr><td>[![Screen Shot 2025-03-27 at 19.07.12.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-27-at-19-07-12.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/screen-shot-2025-03-27-at-19-07-12.png)</td></tr></tbody></table>

<table border="1" id="bkmrk--2" style="border-collapse: collapse; width: 99.9805%; border-width: 1px;"><colgroup><col style="width: 50.1368%;"></col><col style="width: 50.1368%;"></col></colgroup><tbody><tr><td>[![Screen Shot 2025-03-27 at 19.07.30.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-27-at-19-07-30.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/screen-shot-2025-03-27-at-19-07-30.png)</td><td>[![Screen Shot 2025-03-27 at 19.07.42.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-27-at-19-07-42.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/screen-shot-2025-03-27-at-19-07-42.png)</td></tr></tbody></table>

This allows you to keep an eye on CPU, RAM and disk usage through an intuitive interface. View logs, install system updates, access a terminal and perform system tasks from anywhere with internet access.

## Service Status

[![Screen Shot 2025-03-10 at 18.57.59.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-10-at-18-57-59.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-10-at-18-57-59.png)

[Uptime Kuma](https://hub.subspace.services/books/uptime-kuma "Uptime Kuma")<span style="white-space: pre-wrap;"> is an excellent way to monitor your Docker containers and web sites for their status. Through this service, you can also create pages that allow you to share the status of services with friends and family</span>

## System Updates

The Debian operating system does not follow a strict release schedule, but maintenance updates generally occur twice a month. Frequently installing updates is the best way to ensure server security.

[![Screen Shot 2025-03-27 at 19.50.37.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/screen-shot-2025-03-27-at-19-50-37.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/screen-shot-2025-03-27-at-19-50-37.png)

<p class="callout success">Installing [Cockpit](https://hub.subspace.services/books/cockpit "Cockpit") can keep you informed about updates and install them directly from your browser.</p>

Security patches will occur as soon as possible when there are high-profile vulnerabilities that must be fixed. While Debian can perform automatic unattended upgrades, this is not the best option for a server.

Always make sure you have an up-to-date backup before doing software updates. There is always the potential for unexpected errors. A backup can get you back up quickly.

<p class="callout info">Stay up-to-date about [important Debian security updates](https://www.debian.org/security/).</p>

### Installing Updates Manually

You can install the upgrades for your system through the terminal:

```bash
sudo apt update && sudo apt upgrade
```

<table border="1" id="bkmrk--11" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/ny8image.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/ny8image.png)

</td><td>[![image.png](https://hub.subspace.services/uploads/images/gallery/2025-04/scaled-1680-/rTximage.png)](https://hub.subspace.services/uploads/images/gallery/2025-04/rTximage.png)

</td></tr></tbody></table>

## Service Updates

Diun (docker updates)

Software, such as those used in Docker images, will follow their own release schedule.

## Access Monitoring   


Swag for monitoring website access

crowdsec (intrusion detection)

# Troubleshooting

<span style="white-space: pre-wrap;">Periodic manual restarts of your server may find the most basic of errors through the </span>[POST](https://en.m.wikipedia.org/wiki/Power-on_self-test)<span style="white-space: pre-wrap;"> (Power-On Self Test). You will need to ensure that Fast Boot and Quiet Boot are disabled because they disable part of the POST process. </span>

Performing the occasional filesystem check can correct any storage errors before they turn into a problem. This can be performed through the command line with the fsck command, or using the Disks app.

[![1000006818.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/1000006818.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/1000006818.png)

[MemTest86+](https://www.memtest.org/)<span style="white-space: pre-wrap;"> can run a RAM test can help identify any errors before they cause problems, such as corrupted files and broken databases. Using the </span>[Ventoy USB stick we created to install Debian](https://hub.subspace.services/books/software/page/traditional-computer)<span style="white-space: pre-wrap;">, you can copy the </span>[MemTest86+ ISO](https://www.memtest.org/download/v7.20/mt86plus_7.20_64.iso.zip)<span style="white-space: pre-wrap;"> to run the test during boot.</span>

[![1000006815.png](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/1000006815.png)](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/1000006815.png)

[UltimateBootCD](https://www.ultimatebootcd.com/)<span style="white-space: pre-wrap;"> can be used to perform a variety of hardware tests, as well as data recovery, hard drive management and view hardware information. The Ventoy USB stick can also be used to boot the </span>[UBCD ISO](https://www.ultimatebootcd.com/download.html).

[![1000006816.gif](https://hub.subspace.services/uploads/images/gallery/2025-03/1000006816.gif)](https://hub.subspace.services/uploads/images/gallery/2025-03/1000006816.gif)

# Cleaning

It is greatly recommended that you periodically clean the inside of the computer system to remove dust. This will ensure that the system doesn't overheat, corrode or short-circuit. Dust, dirt, hair and other grime needs to be removed, especially from cooling hardware like fans. Performing maintenance more frequently will make each cleaning easier.

<p class="callout info"><span style="white-space: pre-wrap;">Learn more about </span>[computer system cleaning](https://www.ifixit.com/Wiki/Computer_System_Cleaning).</p>

[![1000006813.jpg](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/1000006813.jpg)](https://hub.subspace.services/uploads/images/gallery/2025-03/scaled-1680-/1000006813.jpg)

This must be done while the system is turned off and removed from power. You must not use any liquid cleaners while performing electronics maintenance or it could damage the circuitry. We recommend using compressed air or vacuum cleaners intended for electronic system maintenance.

# Next Steps

We need to connect our server to the outside world now that everything is ready behind-the-scenes.

[<button class="nav-button" type="button">See the World Wide Web Guide</button>](https://hub.subspace.services/books/world-wide-web "Next Steps")