A small home server was initially conceived to host a private cloud storage service. The service was based on open-source software called Nextcloud. Additionally, a private VPN service, based as well on open-source work; Wireguard was set up to; not only access the cloud service from outside of my home, but also access my entire home network from the internet, securely and reliably. This was especially useful for managing other projects I had running at the moment. Another reason for creating this server was the possibility it gave me to run Python scripts that required uninterrupted operation: mainly web-scrapping applications, such as the one I built to notify me and place an order for a graphic card(at these times, 2020-2021, it was very difficult to get a hold of a new GPU). To manage the different processes running on the server, each service was deployed through docker containers. At the same time, I was building a mining rig with a custom box to enclose and protect the hardware and I also changed all the ethernet cabling and network at home, which just added reasons and convenience to build this project.

Although the hardware changed over time, the most basic setup consisted of:

  • Two Raspberry-pi 4b’s (4 GB of RAM) running raspbain 32bits and later 64-bit raspbian upon release.
  • One SSD, one HDD, and one SD card.
  • Router for managing ethernet connections.
  • 3D printed support for the hardware; and other connectors and necessary cables.

Later on, when hardware from another project(mining rig) became available, the setup of this network transitioned towards a combination of both Raspberry Pi and mining rig computing resources. While the GPUs running on the mining rig were completely utilized by the mining algorithm, the CPU was effectively free. This opened the door to use it as a new, more powerful computing unit for hosting all these services. Nevertheless, I decided to keep the VPN running on one of the pi’s; this way I ease all the new setup process and keep the access to my network securely available in case something happened to the bigger setup.