Running my own web server
May 30, 2025
I set up a mini PC with Ubuntu Server to self-host my website from home.
How I ended up self-hosting
I didn't set out to self-host my website initially. I got the idea after stumbling across a video by Sam Meech-Ward on YouTube titled Every Developer Needs a Raspberry Pi
. At the time I was hosting my site on GoDaddy, which I honestly felt was quite pricey and unsustainable in the long term. In Sam's video, he shows how you can set up a Raspberry Pi to act as a web server and display live server stats, which blew my mind! It made me want to do the same, and initially my idea was to use an RPi5 as well.
After doing some research, I decided to go with stronger hardware and opted for the Beelink SER5 MAX Ryzen 7 5800H instead, which I got for a good price on Finn (Norway's main online marketplace). I also decided to switch my domain registrar to Porkbun because of their reputation for offering good services and competitive pricing, and they've been really great! I've been so happy with them that I decided to write a review on Trustpilot to help spread the word.
When the PC arrived, I began learning about the requirements for getting everything set up and running. One thing to note is that you typically want a static IP address to host a website if you're using a home server. I didn't know that at the time, but luckily most internet providers offer it as an add-on for an extra monthly fee. Because my costs were already significantly reduced after changing registrars, I was fine with that. Switching to Let's Encrypt/Certbot for SSL certificate generation also helped keep overall costs down.
The last step involved configuring the machine itself. I installed Ubuntu Server and decided to run a headless setup to preserve as much computing power as possible for the actual site hosting and page-related operations. I configured it to automatically install updates and reboot when required, but scheduled those reboots so they only happen at night. I also set it to automatically boot after a power loss, to handle events such as power outages. Finally, I settled on the LAMP stack as my choice of technologies. With setup complete, I uploaded my files to the server and could once again navigate to the pages in the browser. Only this time, the site was being served from my mini PC.
If you'd like to learn more about my setup, please feel free to check out the Status page, where you can see live stats like resource usage, network I/O and server uptime.
Configuration
-
Operating system:
Ubuntu Server (headless)
-
Web stack:
LAMP (Apache, MariaDB, PHP)
Specifications
-
Processor:
AMD Ryzen 7 5800H
-
Graphics:
AMD Radeon Graphics
-
Memory:
16 GB DDR4
-
Storage:
500 GB M.2 NVMe SSD
-
Networking:
WiFi 6 802.11ax