Home Server using Proxmox
Introduction: Why A Home Server?
Like most people, I used the cloud to store my photo gallery and important documents. Mainly using Google services like Photos and Drive.
While this is very convenient, Google can change their terms of service any time. As an example, Google Photos offered unlimited storage of photos of high quality. Around June 2021, they’ve decided to change the terms and limit your space to 15 GB. As subtly implied by the dreaded Your Gmail storage is almost full message, you either have to pay for more storage or sacrifice convenience and store them somewhere else.
Sooner or later, free services will have to start charging when they get big. Which is fair enough. They’d have to make a profit after all.
My VPS Era
As I had the time and the motivation to explore something new, I started renting a VPS from ionos. I started with their VPS S plan which was around 6 euros per month with a one year lock-in period. This enabled me to host my website and some React apps I made without using Vercel. This forced me to learn how to deploy React apps the hard way. It was frustrating in the short term. But now it’s something I can do and troubleshoot faster. Hooray.
Eventually, I wanted to try out Immich so I decided to upgrade to the VPS L. With that, my monthly spending became 17 euros per month (with a 50% discount during the first six months) with a year-long lock-in period.1
I knew that it was not going to be a permanent solution and so I paid this tax to give me time to think of a better solution. Now that the lock-in period is ending, I think I’ve found one.
But now, this era is coming to a close as I slowly transition my apps one-by-one to the home server.
Deciding and Buying The Goods
I’ve looked at NAS solutions and got overwhelmed by the amount of options like RAID and other stuff. And so, like most of my projects I decided to take baby steps and not go all-in immediately.
I made a post on a trustworthy forum and the comments there gave me the motivation to finally just do it. Someone suggested getting refurbished models of common office computers to use as a first server. I looked around on eBay France and found one. However, the delivery took one week but I was too excited. Luckily I was in Paris and decided to take the RERs and the metro to this little shop called Note-X close to Gare du Nord. As was their standard operating procedure, they told me that they would have it ready in 30 minutes2. It indeed took more or less half an hour for them to transfer a Windows image, which I would later erase anyway. But I think most customers would need Windows anyway, and that’s what they said in the ad, so I understood why they would insist on doing it.
It being refurbished, I had a one year warranty as long as I don’t open the sticker. So far so good though!
Proxmox
Before we get into Proxmox, let me quote Wikipedia:
Proxmox Virtual Environment (PVE, or simply Proxmox) is a virtualization platform designed for the provisioning of hyper-converged infrastructure. Proxmox allows deployment and management of virtual machines and containers.
For me, I read that as a place where I can spin up a virtual machine, like a virtual computer, on the hardware. With that, I can install any OS I want, and treat it like a normal computer / server. The main pull for me was that apparently it was easy to backup!
Installing Proxmox
Armed with a USB with Ventoy containing the latest Proxmox ISO, I was ready to go. Somehow. The monitor was a couple meters away from the server, which was connected to the Ethernet. The HDMI cable connecting the monitor to the server was just long enough to reach. On top of that I had to connect a non-bluetooth mouse and a non-bluetooth keyboard because I couldn’t be bothered to figure out how to set up bluetooth. I just wanted to disconnect the monitor as soon as possible as it was quite uncomfortable moving around the apartment.
Anyway, during the installation, I was asked a couple of things. Like IP Gateway and stuff like that. I was told it was usually X.X.X.1 but I had Bouygues, and in the end it was X.X.X.254.
I also had to choose a static IP for this machine. I haven’t set that up yet but I just chose X.X.X.169 since X.X.X.69 was already taken.
There was also a URL asked? But like I just guessed and put proxmox.home and things worked I guess.
First Try
As someone who, in their non-professional life, likes to start doing and fixing stuff later instead of spending hours reading documentation, I made a new virtual machine, since that’s what we’ve installed Proxmox for anyway. But for some reason I didn’t load an OS just to see what would happen.
Chaos. The virtual machine sort of bricked itself somehow? After considering if I should just reinstall Proxmox again, I decided to just carry on and troubleshoot it the old-fashioned way. I had to stop some processes manually as Proxmox did not take into consideration that a user would be too stupid to do what I did. After a couple more resets, I could finally rest knowing that I don’t need to reinstall it and that I can finally disconnect the monitor and walk around the apartment again.
Conclusion
I eventually figured out how to do it the good way, with some help from search engines and LLMs. I installed Ubuntu server OS and got it up and running.
Next step was to be able to access the apps without needing to SSH through the server. I’ll be covering that in a future post. And I’ve already started writing it. So it’s not like it would never arrive.