Light mode Dark mode

aaroneakins.com

Self-hosted on Linux and Nginx

This site is also a project: a demonstration of the infrastructure and coding fundamentals behind it. It runs on Rocky Linux on a DigitalOcean droplet, serves through Nginx, deploys over Git, and renews its own TLS certificates automatically.

In Short

  • Self-hosted on a Rocky Linux droplet (DigitalOcean), served with Nginx
  • One git push deploys to the live server and a GitHub copy at once
  • Automated HTTPS via Let's Encrypt and Certbot
  • Hand-written HTML, CSS, and JavaScript with light and dark themes
  • Built by hand instead of a managed host

Server and Hosting

A Rocky Linux droplet on DigitalOcean serves the static files through Nginx.

Running a plain server instead of a managed one-click host was the point. It meant setting up the operating system, the web server config, and the certificates by hand.

Deployment

The site is version-controlled in Git, with a single remote wired to push to two targets at once. One git push updates both the live server on DigitalOcean and a copy on GitHub, so publishing a change is one command.

HTTPS

TLS certificates come from Let's Encrypt, issued and renewed automatically with Certbot, so the site is always served over HTTPS.

The Front End

The front end is hand-written HTML, CSS, and JavaScript, with Bootstrap for the responsive layout. The light and dark themes use CSS custom properties, with the choice saved in the browser and a fallback to the visitor's system setting. The header is sticky on medium and larger screens, revealing the name on scroll, with the spacing tuned per breakpoint.

Why I Built It This Way

A managed host would have been faster. Running the server, the web server, and the certificates myself was the goal. Maintaining it keeps the Linux, Nginx, and DNS work current instead of theoretical, and it is the groundwork for a self-hosted home lab I'm planning next.

Stack & Tools

Server

DigitalOcean droplet, Rocky Linux

Web server

Nginx

TLS

Let's Encrypt, Certbot

Deploy

Git, GitHub

Front end

HTML, CSS, JavaScript, Bootstrap

Access & tools

SSH, VS Code