Last edited 7 days ago
The beginning of any project starts with laying out a plan, having clarity about the goals, the resources at hand and the required knowledge before starting to bring it all together. Since we are focusing on self reliance we shall keep in mind to keep our expenses low and use the hardware that can get the job done. One can easily overspend acquiring hardware that might be unnecessary.
For the server an old laptop, a refurbished minipc, a raspeberry pi can easily serve your need. Even an old android tv box can be repurposed and can easily host some lightweight services. It can be surprising how efficient SBC(single-board computers) can be. For my setup I bought a refurbished Dell optiplex 3070 which came with 8GB RAM, 512GB SSD, i3-9100T quad core CPU @3.7GHz and an Intel UHD graphics chip. I had another android tv box(RK 3318) which also was ready to be used as a server with armbian on it. It has modest specs ([email protected], 4GB RAM, 30 GB storage), but is enough to host some light weight services.
I also planned to self host an email server, a chat server(matrix) and some other services that require little to no downtime. This wasn't possible while hosting at home due to frequent power cuts. Hence I opted to go for a cloud VPS which would also provide me with a public IP which is absolutely necessary to self host an email server. In addition regular backups are also a huge convenience while hosting on a VPS.
So now I have 3 nodes, 2 at home and 1 in cloud. Critical services like communications which require guaranteed uptime are better hosted in cloud where power interruptions, internet outages are very rare, services such as media streaming, music, home automation etc. are better hosted at home where privacy is important and uptime is not that important. However a UPS is important to prevent sudden shutdowns which may shorten lifespan of hard drives. I chose Ubuntu server as my OS of choice, which isn't very complicated to use and maintain. Its recommended to go for a LTS release which receives security updates over a long time.
We shall not expose our home network to the public, instead VPNs offer a secure and reliable way to access your services from anywhere. My choice was tailscale with headscale hosted on the cloud VPS, which is a mesh VPN based on wireguard. Not only does it provide access to my machines while I'm outside my home network you can also use the nodes as exit nodes to securely route your traffic through your trusted home network while you're out. The VPS provides a convenient firewall which again simplifies our task of securing our machine.
The next important part of setting up a homelab is choosing a domain for your services. While you can access your services without a domain using the IP address, having a domain makes things much simpler and different services can be made accessible on subdomains, thus we only need one domain. We will also need a reverse proxy which can renew SSL certificates and manage different subdomains and route traffic.
This gets up ready to start deploying some services on our nodes. In the upcoming articles, we shall take a closer look at the services, some finer points of security, architecture, and other aspects that can affect our homelab experience.
For the server an old laptop, a refurbished minipc, a raspeberry pi can easily serve your need. Even an old android tv box can be repurposed and can easily host some lightweight services. It can be surprising how efficient SBC(single-board computers) can be. For my setup I bought a refurbished Dell optiplex 3070 which came with 8GB RAM, 512GB SSD, i3-9100T quad core CPU @3.7GHz and an Intel UHD graphics chip. I had another android tv box(RK 3318) which also was ready to be used as a server with armbian on it. It has modest specs ([email protected], 4GB RAM, 30 GB storage), but is enough to host some light weight services.
I also planned to self host an email server, a chat server(matrix) and some other services that require little to no downtime. This wasn't possible while hosting at home due to frequent power cuts. Hence I opted to go for a cloud VPS which would also provide me with a public IP which is absolutely necessary to self host an email server. In addition regular backups are also a huge convenience while hosting on a VPS.
So now I have 3 nodes, 2 at home and 1 in cloud. Critical services like communications which require guaranteed uptime are better hosted in cloud where power interruptions, internet outages are very rare, services such as media streaming, music, home automation etc. are better hosted at home where privacy is important and uptime is not that important. However a UPS is important to prevent sudden shutdowns which may shorten lifespan of hard drives. I chose Ubuntu server as my OS of choice, which isn't very complicated to use and maintain. Its recommended to go for a LTS release which receives security updates over a long time.
We shall not expose our home network to the public, instead VPNs offer a secure and reliable way to access your services from anywhere. My choice was tailscale with headscale hosted on the cloud VPS, which is a mesh VPN based on wireguard. Not only does it provide access to my machines while I'm outside my home network you can also use the nodes as exit nodes to securely route your traffic through your trusted home network while you're out. The VPS provides a convenient firewall which again simplifies our task of securing our machine.
The next important part of setting up a homelab is choosing a domain for your services. While you can access your services without a domain using the IP address, having a domain makes things much simpler and different services can be made accessible on subdomains, thus we only need one domain. We will also need a reverse proxy which can renew SSL certificates and manage different subdomains and route traffic.
This gets up ready to start deploying some services on our nodes. In the upcoming articles, we shall take a closer look at the services, some finer points of security, architecture, and other aspects that can affect our homelab experience.
SK
sk@utsukta.org
Tech enthusiast embracing self-hosting and digital independence. Lover of DIY projects, philosophy, and scientific thinking. Passionate about learning and building meaningful connections.
-
- Location:
India -
- Hometown:
- Lucknow
-
- Gender:
- Male
-
- Homepage:
- https://utsukta.org/page/sk/home