This blog, and all of it’s subdomains such as the git server, are self-hosted. At the beginning of Freshman year, Mr. Sinde, my engineering teacher, had us set up a blog with blogspot. But it was kinda lame to have people visit a website with .blogspot.com tagged on at the end, so I got a domain and pointed it to the blog. But blogspot’s appearance kinda sucked, so I eventually started using a free hosting service for WordPress as well as the custom domain. I didn’t want to spend any money on hosting it, paying for the domain was enough. Because I was using a free host, there was a watermark and the website itself was extremely slow.
Eventually I was introduced to the Raspberry Pi, and so I bought a 3B and got to work. I set up WordPress and git, and it worked! It was awesome to be able to get rid of the watermark and do it my own way. Everything was in my control.
But the Pi was slow. With only 1GB of ram, and a tiny little ARM processor, the blog was still just as sluggish to browse. I needed something better. I couldn’t leave my PC running all night, because it’s in my room and is way too loud to sleep with. I needed some better hardware. But I didn’t really have any money to spend, so I just stuck with the Pi.
Many months later, nearing the end of the school year in 2019, Mr. Sinde was given 6 Dell Optiplex 380 PCs from a flower shop. The shop was upgrading their equipment and had these now useless PCs to give away. Mr. Sinde new me and my friends love this kind of stuff, so we installed Ubuntu 18.04 on 3 of the PC’s. They weren’t amazing; they all had Pentium E5700s, 2 or 4GB of ram, and 250GB spinning hard drives. But they all ran perfectly. After proving to Sinde that the school had no need for 6 of them, he let me take one home. And the first thing I did was move my blog to the Dell. And it ran so much better than the Pi, it was snappy, and since surprisingly the Dell had a full Gigabit Ethernet connection it never randomly disconnected like the Pi did. But I also was running for example slicing software for my 3D printer on the Dell, and that started to hit the limits of the Pentium. Maybe I could upgrade the processor?
I could, but the problem was that the LGA775 socket didn’t have too many options. The best you could get is a Core 2 Quad, and they were ridiculously expensive. But then I stumbled upon the LGA775-to-771 socket mod, which lets the motherboard accept most LGA771 processors. It turns out that LGA771 and LGA775 are exactly the same, except the notches are rotated 90 degrees and 2 pins are switched. But that’s it. The notches can be simply cut off of the socket, and the pins can be un-switched with a simple sticker on the bottom of the processor. But why would you want to do this? Because LGA771 cpus are all old Xeon processors, and can be found used ridiculously cheap after all the servers that used them have since been replaced.
I ended up buying a Xeon e5450 processor for $17, and a set of the adapter stickers as well as a Xeon Inside sticker for $3.80. Additional tools (that I already had) included thermal paste and an Xacto knife to cut off the notches. This $20 upgrade more than doubled performance. At this point, I added a git server, OctoPrint for my 3D printer, and a few more private apps (such as visual studio code, browser edition). The blog ran on here for a few months, but then I had an idea!
You see, I upgraded my PC from an i5-4690k to a Ryzen 7 1700 back in 2018 so i could do more multitasking. But that meant I had this i5, a motherboard, and 16GB of ram just collecting dust. Eventually, I found myself a small power supply and a hard drive, and booted the i5 with Arch Linux. During summer of 2019 I moved the blog and git to this new machine, but everything else is still on the Dell. It also still acts as the network’s reverse proxy – all traffic to *.deck.sh goes through the Dell first.
UPDATE 9/17/19: Due to constant downtime of my home network (thanks Xfinity!) I have moved the blog to a Google Cloud VM instance. Why? Well, Google Cloud gave me $300 of free credit to spend, and I only have a year to spend it, so why not?
The i5 server eventually got a 10TB NAS drive added to it which stores my backups, photos and other random stuff, which is served through samba shares and s3. I also set up a graphically accelerated VM on the i5, which you can read about here. I may eventually upgrade the processor from an i5 to a Xeon 1265Lv4, 1285Lv4, or i7 5775C, if the prices go down. These processors are Broadwell instead of Haswell, which lets them use Intel GVT-g, which would improve my VM setup.
But even after all these upgrades, the Pi is still running, in fact it is acting as a middle man in my PC Power project, which lets me remotely power on or force reset my main PC, from anywhere in the world. No, it’s not Wake On LAN – that only works with sleep mode, my solution works even if the PC is completely frozen with no network connection. I’ll make a post about it soon, but basically a mechanical relay acts as the physical power button on my PC, and an Arduino intercepts messages from the actual power button, the Pi, as well as in the future an IR remote. I have a script set up with Tasker on my phone that remotely contacts the Pi (through the Dell’s reverse proxy) to trigger the power of my PC so I can do remote work.