In Short
- Self-hosted on a Rocky Linux droplet (DigitalOcean), served with Nginx
- One
git pushdeploys 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