--- title: "My current Homelab" date: 2022-02-11 slug: "my-current-homelab" tags: ["docker", "network", "storage"] type: "infrastructure" --- ## What's a Homelab ? As you may or may not know, I have a homelab at home. For people who don't know what it is : > A home lab is essentially a compounded system that connects all your devices. Thus, creating an environment for you to experiment and build new projects at the comfort of your home! A homelab is neither more nor less than a local network allowing experimentation, self-hosting of services, ... Initially, my goal was to create a media server accessible from anywhere with Plex. That was the initial objective, but you will see that today my homelab is much more extensive than that. I have over 20 selfhosted services ranging from password manager, web hosting, game server, etc. To present you all this I will first list the hardware, then the topology I used and the presentation of the services I host. And I will finish with a conclusion on the first 3 years of my homelab! ## Hardware Currently my homelab is composed of the following elements: ### Networking - Unifi Dream Machine (Router/Firewall) - Unifi Switch Lite 8 PoE - Unifi AP WiFi 6 Lite - Unifi AP WiFi 6 LR - Netgear GSS108E 8-Port ### Mark1 : Storage server / VM / Docker - AMD Ryzen 7 - 1700X (8/16 core) - NVIDIA 750 ti - 32 GiB DDR4 - 2* 500GB SSD (Cache) - 2* 4TB HDD (Parity) - 2* 3TB + 2* 4TB HDD = 18TB (Storage) ### Mark2 : Gaming server / Lab - Intel i7 - 7700K (4/8 core) - 32 GiB DDR4 - 500GB SSD ### HOME NAS : Backup storage - Synology DS418 - 3* 4TB HDD --- ## Topology ![Homelab topology](img/image-1.webp) In terms of network architecture it is quite simple, there is only one subnet, the 10.0.0.0/24, that I have subdivided for the different equipment: - 10.0.0.1 : Unifi Dream Machine - 10.0.0.2->9 : Network Equipment - 10.0.0.10->29 : Server/Service - 10.0.0.30->250 : DHCP leases No VLAN, no multiple subnets, ... Nothing very complicated in short! This network topology has some limitations for which I will come back in conclusion (a v2 of the homelab is in development/deployment). The vast majority of services/VM/storage are on the Mark1 server. This server is under Unraid, it is an OS based on a Linux kernel and offers a multitude of options in addition to its main function of NAS. [Unraid](https://unraid.net) is a paid OS that is offered in 3 versions: ![Unraid license options](img/image-2.webp) The only difference is the number of storage devives we can install in our server. In my case I am on the "Plus" version. It's a one time payment that allows you to unlock all the features. You can try the OS in a demo version that is valid for 30 days, which gives you time to choose the OS that suits you. If you don't want to pay, there are alternatives. For example [TrueNAS](https://www.truenas.com) which has many features in common and is updated regularly. I personally chose Unraid for its stability and the numerous virtualization features which, at the time of the creation of the server, were not 100% perfected by TrueNAS. Mark2 is a server under Ubuntu Server, it is notably used for game servers (Minecraft, Rust, ...). I use the [AMP](https://cubecoders.com/AMP) service for that. In addition to the game servers, I use it as a test server for projects I'm doing. --- ## Services As you can see on the diagram there are many services running in my homelab. Most of them are on the "Mark1" server and are Dockers. | | Name | Description | | ----------- | ----------- | ----------- | | radarr | Radarr | Movie collection manager | | sonarr | Sonarr | Series collection manager | | bazzar | Bazzar | Subtittle finder for movie and series | | jackett | Jackett | Proxy server for indexer | | adguardhome | AdGuardHome | DNS for blocking ads and tracking | | bitwarden | Bitwarden | Password manager | | deluge | Deluge | Torrent downloader | | gitea | Gitea | Local github | | homeassistant | Home Assistant | IOT manager (Zigbee) | | nginxproxymanager | Nginx Proxy Manager | Reverse Proxy | | plex | Plex | Movie and series remote access | In addition to these services, I have two database managers: MariaDB and Redis. I have a VPN service allowing me to connect to the LAN from outside: Wireguard. And a backup VPN present on the Home NAS: OpenVPN. In terms of VMs on Mark1, I have 2 Ubuntu VMs for web hosting. A GNS3 VM for network tests. A VM containing Home Assistant. A Debian VM for a Docker project in progress and a Kali VM to do Pentesting and have access to cyber tools in remote. ![Virtual Machines tab in Unraid](img/image-3.webp) --- ## Conclusion What I retain from this Homelab is that despite the basic objectives I had set for myself. The network is constantly evolving, I always find new things to do to improve it, add new services, increase security, ... Overall this experience is very rewarding, I am always looking for improvement and learn a lot in several areas: supervision, network, quality of service, ... I recommend it to anyone in the networking field who is curious to learn new things and put them into practice. This may seem like a lot of hardware, but it's an accumulation of more than 3/4 years, so if you want to get started, a simple old laptop or a Raspberry Pi may be enough. To learn more and better discover the world of Homelab, I advise you to take a look at this sub Reddit: [Homelab](https://www.reddit.com/r/homelab). There are many resources, whether on hardware, software, topology, ... ### Futur plans for Homelab v2 - This topology had been created as a temporary base, but it poses many problems, especially in terms of security. I am updating this topology with with several new improvements: - VLAN - Multiple Subnet - Monitoring - Intrusion Detection - Switch to OPNSense There will be a blog post about the V2 of my homelab in the coming months!