My Projects
Here's a look at some of the projects I've worked on. Each card gives you a quick summary, the tech I used, and what I learned along the way!
Self-Hosted Website
I used VS Code to build and configure this portfolio website from the ground up. I then took the HTML and CSS files and hosted them on a webserver running on one of my Linux machines, allowing me to route it to my own domain name. This approach is much cheaper than popular website builders and gives me full control over the site going forward. I can even use my Linux knowledge and an automated AI assistant to make changes on the fly.
What I learned:
- How to structure semantic HTML code and use modern CSS for styling and layout.
- How to set up and configure a web server (like Nginx) on a Linux machine.
- Configuring DNS records (A, CNAME) to point a domain name to a server's IP address.
- Implementing SSL/TLS certificates with Let's Encrypt to secure website traffic.
- Basic web server administration, including file permissions and troubleshooting for deployment.
Cloudflare Remote Access
I used Cloudflare to create a secure tunnel into my home network, allowing me to access and host applications on my home servers from anywhere in the world. This project also involved learning Cloudflare Access to secure sensitive applications with authentication policies, registering a custom domain, and using subdomains to route traffic to the appropriate local IP addresses connected to the tunnel.
What I learned:
- How to create Cloudflare tunnels for secure, outbound-only remote access.
- Why using a tunnel is more secure than exposing ports directly on my router.
- Applying Zero Trust principles to secure specific applications with access policies.
- Managing DNS and subdomains within the Cloudflare ecosystem to route traffic effectively.
- Troubleshooting network connectivity and application access through the tunnel.
Linux Servers
I created a Linux server on an old laptop by installing the latest version of Ubuntu Server, which required a BIOS update to proceed. I enabled SSH on the server to manage it remotely over the network from my main workstation. I then repeated this process on other used hardware, which is the start of my home lab setup for running a variety of self-hosted programs and applications, including my own website.
What I learned:
- How to set up a Linux server and configure it for secure remote access via SSH.
- Using the Linux terminal to browse the filesystem and edit configuration files with `nano`.
- User management in Linux, including the roles of Superusers and Root users and their security risks.
- Basic server networking, including assigning static IP addresses and configuring firewalls (UFW).
- Troubleshooting hardware compatibility and software issues during OS installation and setup.
n8n Workflows & Automation
I deployed an n8n instance on a local server using Docker Compose. I then built a workflow where a chat input could talk to an AI agent using my Gemini API key. I gave the agent tools to SSH into my local servers to run commands, allowing it to configure files and check for security vulnerabilities. I also integrated this agent with a Telegram bot, adding User ID verification to prevent unauthorized access.
What I learned:
- How to use Docker Compose to deploy and manage containerized applications on Linux.
- How to build powerful workflows in n8n by connecting different nodes and services.
- Integrating external services and AI models using API keys and webhooks.
- The importance of securing tools and implementing access controls (like User ID verification).
- Debugging and testing complex, multi-step automations to ensure they run reliably.
Car Audio Installation
I installed a new stereo, subwoofer wiring kit, amplifier, and a custom subwoofer enclosure in my car. A key part of the project was tuning the enclosure design to achieve a specific resonant frequency. I ran the RCA audio cables and power cables on separate sides of the car to reduce interference. Using a pre-constructed amp wiring kit ensured I was using the correct gauge of wiring for the installation while also providing a suitable fuse for safety.
What I learned:
- The importance of using correct wiring and components in high amperage 12V DC systems.
- Effective cable management techniques to prevent signal interference and ensure safety.
- Using CAD to create a custom 3D design to meet specific acoustic requirements.
- How to properly set up, gain-match, and configure audio equipment for optimal performance.
- Diagnosing and solving common audio issues like ground loops and electrical noise.