homelab is essentially a small-scale IT infrastructure that you can run at home. It can consist of one or more computers, servers, networking equipment, and other components that you use to experiment with different technologies, develop your coding skills, or run various applications and services.

In recent years, you could see more and more articles and mentions on building own homelab. Well, this post is my vision on the topic.

A homelab is a private infrastructure setup that allows you to run various software services, applications, and tools that can be used for personal or professional purposes. With the right setup, homelabs can be a great way to enhance productivity, learn new skills, and experiment with new technologies. They provide an environment where you can test out new tools, learn new programming languages, and experiment with different configurations. In addition, having your own homelab can be very useful for everyday tasks such as managing your media files, keeping track of your calendar and to-do list, and monitoring your network. In short, a homelab can be incredibly useful, especially for tech enthusiasts or people who work in IT.

Setting up a homelab is easier than ever these days thanks to the many mini-PC options that are available. These devices are small, powerful, and energy-efficient, making them the perfect platform for running a wide range of software applications. However, mini-PC is not 100% necessary. If you have ages-old monstrouse gaming tower PC - it can be also used. Add few basic components, such as router and some external hard drives, and you can start experimenting with different services and tools.

There is no ready-made complete only-way perfect-for-everyone recipe. Same as selection of hardware, software heavily depends on your use-cases, interests and needs. In this post I will describe what services I personally use and how they are organized.

Hardware Link to heading

As mentioned earlier, hardware can be selected from that what you have under your hands. My experiments started with decade old laptop with broken screen and ended (at least for now) with Raspberry Pi 4 8Gb. Currently hardware that is involved in homelab:

  • Raspberry Pi 4 - core server, hosting majority of services. It appeared to be fast enough to handle all used services. Huge advantage is also power consumption, brief measurements shows roughly 5W. mini-PC is packed into Argon One M.2 case with connected SSD. No fan, so silent to the level that can be placed under the bed
  • Raspberry Pi 2 - second mini-PC used to convert ordinary TV to smart one
  • Synology NAS - there is never enough space. Plus Synology DSM provides some nice services from the box
  • OpenWRT router - homelab without connectivity theoretically possible, but even sounds weird. once upon a time Lynksys router that was flashed to OpenWRT. Why? Just because…
  • Wireless sensors - specific for home automation, allows homelab “feel” environment
  • Wireless switches - again specific for home automation, allows homelab “touch” environment

Software Link to heading

Just my list of software used:

  • Portainer
  • HomeAssistant
  • Seafile
  • Gitea
  • IoT stack:
    • Mosquitto
    • InfluxDB
    • Telegraf
    • Grafana
  • Vaultwarden
  • Nginx Proxy Manager
  • Flame dashboard

Portainer Link to heading

Portainer is a popular open-source container management tool that makes it easy to manage Docker containers and clusters. With Portainer, you can easily deploy, manage, and monitor containers in a user-friendly web interface, without having to use the command line.

Nginx Proxy Manager Link to heading

Nginx Proxy Manager is a web-based tool that allows you to manage multiple web applications running on different ports or servers. It simplifies the process of accessing your applications by providing a single entry point and routing traffic to the appropriate destination. With Nginx Proxy Manager, you can also secure your applications using SSL certificates and manage access and permissions.

Vaultwarden Link to heading

Vaultwarden is a self-hosted password manager that allows you to store and manage your passwords securely. You can use it to generate strong passwords, organize your passwords into categories, and access your passwords from anywhere. Vaultwarden supports two-factor authentication, making it a secure solution for managing your passwords.

Seafile Link to heading

Seafile is a self-hosted cloud storage service that allows you to store and share files securely. You can use it to sync files between devices, collaborate on documents, and access your files from anywhere. Seafile supports end-to-end encryption, two-factor authentication, and version control, making it a secure and reliable solution for personal cloud storage.

Gitea Link to heading

Gitea is a self-hosted Git service that allows you to manage and collaborate on code repositories. It’s similar to GitHub or GitLab, but you can run it on your own server or computer. With Gitea, you can host your code privately or publicly, manage access and permissions, and track changes using the built-in version control system.

IoT Stack Link to heading

IoT stack is a set of services, useful for internet of things projects. It combines several components that allows organization of communication, logging and monitoring of different sensors.

HomeAssistant Link to heading

HomeAssistant is a home automation platform that allows you to control and monitor smart devices in your home. You can use it to set up automated routines, control lights, thermostats, and other devices, and receive notifications and alerts. HomeAssistant supports a wide range of devices and protocols, making it a versatile and powerful tool for home automation.

Flame Dashboard Link to heading

A simple catalog page for homelab services on basis of Flame dashboard.

Scope Link to heading

I do not go deeply inside each service configuration and usage. Finally, if you are setting up your homelab, then it is YOUR homelab. And that is on you, how to play with it… GG and HF

TO BE CONTINUED… Link to heading

Homelab is fun and useful. Setting up a homelab is a great way to learn new skills, experiment with new technologies, and enhance your productivity. With the right tools and equipment, you can quickly build your own homelab and start exploring all of the different services and applications that are available. Whether you’re a developer, a system administrator, or just someone looking to improve your technical skills, a homelab is definitely worth considering.

In the following post, I will describe how aforementioned services can be installed and configured on homelab. First step is Homelab. Preparation