# Digitalcarnage - A self hosted server

**digitalcarnage.co.uk**<span> a </span>[self-hosted](https://en.wikipedia.org/wiki/Self-hosting_(web_services) "https://en.wikipedia.org/wiki/Self-hosting_(web_services)")<span>, homelab server based in the </span>[United Kingdom.](https://en.wikipedia.org/wiki/United_Kingdom "https://en.wikipedia.org/wiki/United_Kingdom")

# Start Here

[![ynhSetup.jpg](https://digitalcarnage.co.uk/wiki/uploads/images/gallery/2024-11/scaled-1680-/rzBEOQ2q5raI5JfY-ynhsetup.jpg)](https://digitalcarnage.co.uk/wiki/uploads/images/gallery/2024-11/rzBEOQ2q5raI5JfY-ynhsetup.jpg "Current physical setup")The server software used is the freely available [Yunohost](https://yunohost.org "https://yunohost.org") server software, which uses Debian Linux. Several applications, some public and some private, are hosted on this server. See [this page](https://digitalcarnage.co.uk/wiki/books/digitalcarnage-a-self-hosted-server/page/server-applications "Server Applications") for the full list of applications currently installed.

The hardware is a Dell small form factor ([SFF](https://en.wikipedia.org/wiki/Small_form_factor_(desktop_and_motherboard) "https://en.wikipedia.org/wiki/Small_form_factor_(desktop_and_motherboard)")) [7020 desktop PC](https://www.amazon.co.uk/Dell-OptiPlex-Desktop-Computer-Windows/dp/B09GPLGG7K "https://www.amazon.co.uk/Dell-OptiPlex-Desktop-Computer-Windows/dp/B09GPLGG7K") with an i7 4770 processor, 16 GB of RAM and a 2TB hard drive. (An old-fashioned spinner!). There is a nightly mail and data [backup](https://digitalcarnage.co.uk/wiki/books/digitalcarnage-a-self-hosted-server/page/backups-and-howto "Backups and howto"), as well as a full backup on weekends. The backup is a simple cron job that performs a backup to an external 1 GB solid-state drive. A second 1 GB drive is used as a second backup using [Restic](https://restic.net "https://restic.net").

There are several domains hosted on the server that are registered through [iWantmyname](http://iwantmyname.com "http://iwantmyname.com"). See the full list of domains here in [this](https://digitalcarnage.co.uk/wiki/books/digitalcarnage-a-self-hosted-server/page/domains-hosted "Domains Hosted") chapter.

For details about installing Yunohost and creating your self-hosted server, you can just jump straight in [here](https://yunohost.org/en/install "https://yunohost.org/en/install") to get started.

**Digitalcarnage Base System**

<table id="bkmrk-os-kernel-linux-name" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:25%;"></col><col style="width:25%;"></col><col style="width:25%;"></col><col style="width:25%;"></col></colgroup><tbody><tr><td class="align-center">**OS**  
</td><td class="align-center">**Kernel**  
</td><td class="align-center">**Linux Name**  
</td><td class="align-center">**Yunohost Version**  
</td></tr><tr><td class="align-center"> Debian 12.12  
</td><td class="align-center">6.1.0-45-amd64</td><td class="align-center">Bookworm</td><td class="align-center">12.1.39 (stable)

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

---

Digitalcarnage's current server status can be [found here](https://monitors.pikapod.net/status/health "https://monitors.pikapod.net/status/health").

Server status uses the [Uptime Kuma](https://uptime.kuma.pet/ "https://uptime.kuma.pet/") monitoring tool hosted by [PikaPod](https://www.pikapods.com/ "https://www.pikapods.com/"). It’s always best to have your monitoring service not on your own server!

The full setup includes a [Raspberry Pi 4](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/), which is used for "*local*" external access by admins, and selected users only use [WireGuard](https://www.wireguard.com/) as a VPN to allow “local” access to the Yunohost server. [Real VNC Server](https://www.realvnc.com/en/connect/download/vnc/raspberrypi/) is also installed on the Pi.

[![Screenshot 2024-12-10 at 6.03.33 pm.png](https://digitalcarnage.co.uk/wiki/uploads/images/gallery/2024-12/scaled-1680-/QSEgyNuc9n5apelG-screenshot-2024-12-10-at-6-03-33-pm.png)](https://digitalcarnage.co.uk/wiki/uploads/images/gallery/2024-12/QSEgyNuc9n5apelG-screenshot-2024-12-10-at-6-03-33-pm.png)

---

# Server Applications

There are several applications for use on this server; the public can use some of them, but for the most part, they are for private use. However, an account can be created on those apps by asking the admin to create one for you. <span style="color:rgb(224,62,45);">**SELF-REGISTRATION IS DISABLED**</span> on <span style="text-decoration:underline;">most</span> apps for obvious reasons!

<table id="bkmrk-application-name-typ" style="border-collapse:collapse;width:100%;height:790px;"><colgroup><col style="width:17.5209%;"></col><col style="width:22.8844%;"></col><col style="width:18.3552%;"></col><col style="width:17.9976%;"></col><col style="width:23.242%;"></col></colgroup><tbody><tr style="height:46.6px;"><td class="align-center" style="height:46.6px;">**Application Name**  
</td><td class="align-center" style="height:46.6px;">**Type of Application**  
</td><td class="align-center" style="height:46.6px;">**Link to Author**  
</td><td class="align-center" style="height:46.6px;">**Link on this server**  
</td><td class="align-center" style="height:46.6px;">**Notes** </td></tr><tr><td>**Bludit** </td><td>Flat File CMS  
</td><td>[Bludit](https://www.bludit.com/)  
</td><td>**[Bludit](https://derekjones.net)** </td><td>Del Jones website</td></tr><tr><td>**Bookstack** </td><td>Document Wiki  
</td><td>[Bookstack](https://www.bookstackapp.com/)</td><td>[**Bookstack**](https://digitalcarnage.co.uk "Bookstack")</td><td>This server's wiki  
</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">**InvoiceNinja**  
</td><td style="height:35.4px;">Invoicing</td><td style="height:35.4px;">[InvoiceNinja](https://invoiceninja.com/)  
</td><td style="height:35.4px;">[**InvoiceNinja**](https://accounts.derekjoneslighting.com/)  
</td><td style="height:35.4px;">PRIVATE</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">**Jellyfin**  
</td><td style="height:35.4px;">Media server  
</td><td style="height:35.4px;">[Jellyfin](https://jellyfin.org/)  
</td><td style="height:35.4px;">[**Jellyfin**](https://digitalcarnage.co.uk/media/web/index.html#!/home.html)  
</td><td style="height:35.4px;">You must have an account</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">**LinkStack**  
</td><td style="height:35.4px;">Contact sharing  
</td><td style="height:35.4px;">[LinkStack](https://linkstack.org/)  
</td><td style="height:35.4px;">[**LinkStack**](https://links.digitalcarnage.co.uk/)  
</td><td style="height:35.4px;">Del Jones' contact details</td></tr><tr><td>**Lychee**</td><td>Photo Gallery App</td><td>[Lychee](https://lychee.electerious.com/)</td><td>[**Lychee**](https://derekjoneslighting.com/capture)</td><td>DJLD Capture gallery</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">**My WebApp**  
</td><td style="height:35.4px;">Non YNH app installer  
</td><td style="height:35.4px;">[My WebApp](https://github.com/YunoHost-Apps/my_webapp_ynh)  
</td><td style="height:35.4px;">[**My WebApp**](https://derekjoneslighting.com/bio/)  
</td><td style="height:35.4px;">Used for DJ bio  
</td></tr><tr><td>**Navidrome**</td><td>Music and Radio Server</td><td>[Navidrome](https://www.navidrome.org/)</td><td>[**Navidrome**](https://digitalcarnage.co.uk/navidrome/app/#/album/recentlyAdded?sort=recently_added&order=DESC&filter=%7B%7D)</td><td>You must have an account</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">**Nextcloud**  
</td><td style="height:35.4px;">Collaboration platform</td><td style="height:35.4px;">[Nextcloud](https://nextcloud.com/)  
</td><td style="height:35.4px;">**Nextcloud**  
</td><td style="height:35.4px;">[Multiple instances installed](https://digitalcarnage.co.uk/wiki/books/digitalcarnage-a-self-hosted-server/page/multipule-instance-applications "Multipule Instance Applications")  
</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">**Piwigo**  
</td><td style="height:35.4px;">Photo management</td><td style="height:35.4px;">[Piwigo](https://piwigo.org/)  
</td><td style="height:35.4px;">[**Piwigo**](https://derekjones.net/photos/)  
</td><td style="height:35.4px;">You must have an account</td></tr><tr><td>**PhpMyAdmin**</td><td>MySQL Admin</td><td>[phpMyAdmin](https://www.phpmyadmin.net)</td><td>[**PhpAdmin**](https://digitalcarnage.co.uk/phpadmin/)</td><td>Admin access only</td></tr><tr><td>**ProjectSend**</td><td>File sharing</td><td>[ProjectSend](https://www.projectsend.org/)</td><td>[**ProjectSend**](https://derekjones.net/yourfiles/)</td><td>You must have an account</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">**Roundcube**  
</td><td style="height:35.4px;">Web-based email  
</td><td style="height:35.4px;">[Roundcube](https://roundcube.net/)  
</td><td style="height:35.4px;">[**Roundcube**](https://digitalcarnage.co.uk/mail/)  
</td><td style="height:35.4px;">You must have an account</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">**Shaarli**  
</td><td style="height:35.4px;">Bookmark manager  
</td><td style="height:35.4px;">[Shaarli](https://github.com/shaarli/Shaarli)  
</td><td style="height:35.4px;">[**Shaarli**](https://derekjones.net/bookmarks/login)  
</td><td style="height:35.4px;">You must have an account</td></tr><tr><td>**SnappyMail**</td><td>Web-based mail app</td><td>[SnappyMail](https://digitalcarnage.co.uk/webmail/app/)</td><td>[**SnappyMail**](https://snappymail.eu/)</td><td>You must have an account</td></tr><tr><td>**Vaultwarden** </td><td>Password Manager  
</td><td>[Vaultwarden](https://www.vaultwarden.net/)</td><td>**[Vaultwarden](https://digitalcarnage.co.uk/passwords/#/login)** </td><td>You must have an account</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">**WordPress**</td><td style="height:35.4px;">Blog/Website publishing  
</td><td style="height:35.4px;">[WordPress](https://wordpress.com/)</td><td style="height:35.4px;">**WordPress**</td><td style="height:35.4px;">[Multiple instances installed](https://digitalcarnage.co.uk/wiki/books/digitalcarnage-a-self-hosted-server/page/multipule-instance-applications "Multipule Instance Applications")</td></tr></tbody></table>

# Multipule Instance Applications

[Nextcloud](https://nextcloud.com/) and [WordPress](https://wordpress.com/) have multiple instances installed on this server.

<span style="text-decoration:underline;">**NEXTCLOUD**</span>

- **[Derek Jones](https://derekjones.net/cloud/login)**

This is the personal Nextcloud instance for Derek Jones.

- [**Derek Jones Lighting**](https://derekjoneslighting.com/cloud/login)

This Nextcloud instance is for Derek Jones Lighting Design. It has a publicly viewable calendar.

- [**Digitalcarnage**](https://digitalcarnage.co.uk/nextcloud/login)

A Nextcloud instance for digitalcarnage.

None of the above instances allow public registration; however, if you are a user on this [Yunohost](https://yunohost.org) server, then you will have your Nextcloud instance available to you for your private use.

---

<span style="text-decoration:underline;">**WORDPRESS**</span>


- [**Derek Jones Lighting Design**](https://derekjoneslighting.com)

Derek Jones Lighting Design Website. <span style="font-family:'-apple-system', 'system-ui', 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;font-size:14px;">Nextcloud also provides a live </span>[availability](https://derekjoneslighting.com/cloud/apps/calendar/p/W3eALaxcWZTen778/dayGridMonth/now)<span style="font-family:'-apple-system', 'system-ui', 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;font-size:14px;"> calendar</span>

- [**Old Vantours**](https://previous.vantours.co.uk)

Vantours' website recovered from a broken QNAP device.

- [**Vantours**](https://vantours.co.uk)

Vantours website.

# Domains Hosted

There are several domains hosted on this server, all of which are registered through [iwantmyname](https://iwantmyname.com). There is one domain that is registered with [DynDNS](https://account.dyn.com/) courtesy of [Yunohost](https://yunohost.org). When you install a Yunohost server, you receive one free domain. Click [here](https://yunohost.org/oc/domains) for more details about installing your free domain once you have installed a Yunohost server.

**DOMAINS (and sub-domains) HOSTED ON THIS SERVER**

**Domains &amp; sub-domains**

- [digitalcarnage.co.uk](https://digitalcarnage.co.uk)
    - [links.digitalcarnage.co.uk](https://links.digitalcarnage.co.uk/)
- [derekjones.net](https://derekjones.net)
- [derekjoneslighting.com](https://derekjoneslighting.com)
    - [accounts.derekjoneslighting.com](https://accounts.derekjoneslighting.com)
- [vantours.co.uk](https://vantours.co.uk)
    - [previous.vantours.co.uk](https://previous.vantours.co.uk)

**Yunohost/dynDNS domain**

- [casper.nohost.me](http://casper.nohost.me)

# Backups and howto

This Yunohost server is backed up onto two separate USB drives, both of which are *on-premise*. Several attempts have been made to perform an *off-premise* backup using both [Borg](https://www.borgbackup.org/) and [Restic](https://restic.net/), but I have found them to be more difficult than it’s worth!

**Drive 1 (Drive label: YNHRECOVERY)**

This backup uses the built-in Yunohost backup and recovery service. A simple cron job is used, detailing the time and what is to be backed up.

**FULL BACK UP**

- **Time**: Midnight every Wednesday and Sunday
- **What**: <span style="text-decoration:underline;">EVERYTHING</span>. This is a full backup. Everything is checked off in the Yunohost back service.

**OTHER**

- **Time:** 4 AM <span style="text-decoration:underline;">EVERY</span> day.
- **What**: User home folders and emails

**Drive 2 (Drive label: DATARECOVERY)**

This drive uses the Restic backup/recovery application, which is a third-party application. Again, a cron job is used to detail the times and what items are to be backed up.

- Time: 3 AM <span style="text-decoration:underline;">EVERY</span> day
- What: The following folders are incrementally backed up:  
    
    - */etc*
    - */home*
    - */var/www*
    - */opt*
    - */var/lib/mysql*
    - */usr/share/yunohost*

The difference between the two backups is that the Restic backup is incremental, and the last three backups are kept. The Yunohost backup is **not** incremental; therefore, some administration must be done to prune the drive as it becomes full.

**HOW TO USE THE RESTIC BACKUP SERVICE (BASICS)**

Restic is a backup service that can be installed from the CLI or through the Yunohost application catalogue. On this server, it has been installed using the CLI.

***Where is the Restic app located?*** Type: ***<span style="color:rgb(53,152,219);">which restic </span>***will show you where the app is located on your drive.

***Where is my Restic repository located?*** The Restic repository can be found at *media/datarecovery/restic.* This is a symbolic link from the Restic directory on the main drive. The physical drive is a USB spinner labelled “**datarecovery**”.

***What is the latest installed Restic version?***  
Type:<span style="color:rgb(53,152,219);"> </span>***<span style="color:rgb(53,152,219);">restic version.</span>*** This will tell you the current version, which right now is *restic <span style="text-decoration:underline;">**0.17.3**</span>*

**Can I update Restic?** Type**: <span style="color:rgb(53,152,219);">*restic self-update.* </span>**If there is an update available, it will be downloaded and installed.

**Has the backup happened?** Type:***<span style="color:rgb(53,152,219);"> r***estic check*** -r /media/datarecovery/restic</span>***

**How do I change the backup schedule?*****<span style="color:rgb(53,152,219);"> </span>***Type:***<span style="color:rgb(53,152,219);"> crontab -u root -e </span>***Nano will open, and you can edit the time and contents of your backup.

**Can I see the snapshots?** Type: ***<span style="color:rgb(53,152,219);">restic -r /media/datarecovery/restic snapshots</span>***

**Can I see the contents of the snapshots?** Type: <span style="color:rgb(53,152,219);">***restic ls (snapshotID here) --repo /media/datarecovery/restic***</span>

**Can I mount the snapshot?** Type: <span style="color:rgb(53,152,219);">***restic -r /media/datarecovery/restic mount /mnt/restic***</span>

<span style="color:rgb(224,62,45);">**NOTE: For most of the above commands, you will require the restic password that you set up when you created your repository, etc.**</span>

<div class="entity-list book-contents" id="bkmrk--2"></div>