Onur.
← All writing
Builds & experiments

· Onur Cay · 2 min read

This website

The original self-hosted setup, before Vercel

Updated 24 Oct 2026

How I Originally Deployed This Website

Update — October 2026: This website now runs on Vercel. The Docker, Nginx and Oracle Cloud setup described below was how I originally hosted it. I have kept this post as a record of that setup and what I learned from building it.

I built and deployed this website from scratch, using Docker to streamline the deployment process and make the setup easily scalable. While this site likely won’t require scaling in the future, working with Docker was a valuable learning experience—it’s a widely used tool in modern development and infrastructure.

Infrastructure Setup

The first step was purchasing this domain. I then took advantage of Oracle Cloud’s Always Free tier by spinning up a virtual machine instance. Once the VM was running, I installed Docker and began defining my environment using Docker Compose.

My docker-compose.yml file orchestrated three containers:

  • Frontend – for serving the actual website (built with Next.js)
  • Nginx – acting as a reverse proxy
  • Certbot – handling HTTPS certificates from Let's Encrypt

Getting Nginx and Certbot to work together was one of the more challenging aspects. I initially attempted to configure them directly on the VM, but switching to a Docker-based approach ultimately proved cleaner and more maintainable. After spinning up the containers, I configured Nginx and obtained an SSL certificate to enable secure access.

Frontend and Design

The frontend of this website is based on an open-source template that I customized to fit my needs. The template I used is this one by Chetan Verma. It's a well-structured and visually appealing starting point, and I highly recommend it if you're planning to create your own personal site.

Simplicity by Design

There was no database container in this setup—and that was intentional. The site's pages were built from local content files, so I did not need a separate database service.

Final Thoughts

This post is a high-level overview of the website's original deployment. Behind the scenes, it involved writing Dockerfiles, Nginx configuration files, and dealing with certificate provisioning. If you're interested in setting up a similar project or need help getting started, feel free to reach out.