Project Spotlight:
This Website

Hosting & Homelab

Hey there! Welcome to my little corner of the internet. What you're looking at right now is actually running from my home - yep, I'm hosting this entire website myself, including that Game of Life simulation you might have seen. Think of this as my digital workshop where I get to show off the stuff I've been tinkering with.

The whole idea here is to have one place where I can dump all my random projects, thoughts, and whatever else I'm working on. Honestly, a year ago I couldn't even spell "HTML" properly, but somehow I've managed to learn enough web development to put this thing together. It's been quite the journey!

I'm hoping you'll find this site interesting - maybe even a little entertaining. I definitely had fun building it and figuring out all the hosting stuff along the way!

View Resume Site Github

Homelab Hardware

Everything is running on a surprisingly powerful Minisforum mini-PC with a 12-core AMD Ryzen chip. For my OS I use Arch Linux (btw) for pretty much everything. For storage, I'm using BTRFS in 3 drive RAID 1 - basically means if one drive dies, I don't lose everything. Plus I've got regular snapshots and backups going to a spare drive to further protect my data.

This little box is actually doing way more than just hosting this website; it's running triple duty as my personal development rig, my gaming pc, and my home server. I've got around 37 Docker containers running everything from my media server to phone backups to my own personal cloud. It's basically become my everything-computer.

The networking side is handled by a little 1U firewall box running OPNsense.

Homelab Hardware

Software Stack

Homelab Software

For the tech stack, I went with Rust because, well, I love Rust. The backend uses the Axum framework to serve up the HTML and CSS (which is actually SCSS that gets compiled). I tried to keep the JavaScript to a minimum - just enough for some nice animations and transitions.

My favorite part is the Game of Life simulation. Instead of doing it in JavaScript like a normal person, I wrote it in Rust and compiled it to WebAssembly. It runs super fast and doesn't bog down the browser.

On the desktop side, I'm running Hyprland as my window manager - it's this lightweight Wayland compositor that's both beautiful and efficient. I do all my development in a custom Neovim setup that I probably spent way too much time configuring.

Deployment & DevOps

Everything runs in Docker containers, made it super easy to add it to my existing homelab. Nginx handles the reverse proxy duties, routing traffic to the right containers.

For the public-facing stuff, I'm using Cloudflare for DNS and all their security features - DDoS protection, caching, the works. Any traffic that makes it through Cloudflare gets another security check from my own nginx before it hits the actual server. I keep an eye on everything with BTOP for system monitoring and a Homarr dashboard that gives me a nice overview of all my services. When I need to access things remotely, I've got all my personal devices connected to my homelab via a WireGuard VPN for secure connections.

Deployment & DevOps

Future Work

Future Work

I've got some pretty ambitious plans for the future. The big one is setting up a proper cluster - multiple machines working together so if one goes down, the others keep everything running. No more website outages when I need to reboot for updates!

I'm also thinking about making the site more dynamic. Right now it's mostly static content, but I'd love to add some interactive features. Maybe React, or since I'm already deep in the Rust ecosystem, I might try out Yew for some client-side magic. Better logging and user interactions are definitely on the wishlist.

And of course, I want to keep improving the Game of Life simulation. There are some cool optimizations I could implement, and maybe add support for different rule sets and more complex cellular automata behaviors. The possibilities are endless!

Get in Touch

Interested in collaborating or learning more about this project? Feel free to reach out!

Contact Me