Project Details

This is the evolution of the Raspberry Home Server, with even more services running and plenty of storage for all the needs. This system hosts all my websites and my whole music, movies and TV series collection. Moreover, it stores all the RAW photos and videos from my photography projects. It is also used as a storage for backups of any family members.

The system runs 24/7 and consumes around 50W in total, including all the supporting infrastructure like UPS, Modem, Switch and a Raspberry used as PiHole.

Information

Date:

December 25, 2024

Site Link:

gboscaro.cc

Function:

Developer

System Admin

Technologies:
  • bash
  • docker
#

Architecture and Technologies

The systems runs on a Synology DS423+ with 18GB of memory (2GB internal and an additional 16 GB), running DMS 7.2, while all the services run on Docker compose stack. The NAS is using 4x8TB Western Digital Red Plus in SHR-1 mode, resulting in around 21TB of usable space with a single HDD failure protection. The platform also mounts 2x512GB NVMEs, one used as a read cache and one hosting all the Docker containers, for maximum speed and low latency. Here are all the services currently running in the system:

  • PrivateBin: private pastebin.com to share notes securely.

  • NextCloud: file hosting. All files in the NAS can be accessed and downloaded from here.

  • PiGallery: photo gallery, contains lower resolution photos that once were shared in my social networks.

  • Websites: this website and G.B. Photography are hosted here.

  • Calibre: books library accessible from the web.

  • Plex: movies, TV series and music streaming. Contains also all my high resolution photos. Runs with Plexpass Lifetime that also enables hardware transcoding.

  • Jellyfin: backup service for when Plex is down. Hosts all the movies, TV series and music libraries.

  • Transmission: torrent client. Downloads the files straight on the NAS, ready to go when I come home.

  • Soulseek: client to connect to the Soulseek p2p network.

  • Traefik: the proxy used in the system. Its dashboard is reachable from the web.

  • Cloudflare DDNS: small service to automatically update the DNS records in Cloudflare with the new public IP of my home network.

  • Mailer: node microservice using the nodemailer package to send emails via some APIs.

  • Watchtower: monitors the containers and automatically updates them when a new version comes out.

  • Router Control Panel: enables to remotely connect to my home router from remote.

  • Pi-Hole Control Panel: enables to remotely connect to the Pi-hole web panel that is running on the Raspberry.

  • Glances: htop style resource and processes monitor to monitor the system remotely.

  • Docker Volume Backup: automatically backup of all the Docker volumes containing services configurations and important data.

  • Uptime Kuma: monitor the status of the Docker containers and infrastrucure.

  • Servarr Stack: the whole stack (Radarr, Sonarr, Lidarr, Readarr, Prowlarr) is used to download and organize music, movies, TV series and books

  • Overseerr: web platform to request a new movie or TV series. The servarr stack will find it, download it and make it available on Plex for all the users

The system uploads a critical backup to the cloud every day, and does a full local backup in an external HDD every week. The NAS is protected from power failures by an UPS, giving around 25 minutes of power to gracefully shutdown the infrastructure.

The whole system is monitored internally by Uptime Kuma, but another Uptime Kuma instance is running in Oracle Cloud to monitor the home network and check its reachability as a DNS or internet failure would render the internal monitors incapable to send alerts. The system and all the Docker services can send push notifications through Pushover, including the Uptime Kuma alerts. Critical notifications are also sent via email.