This blog post walks through how I set up my WordPress job portfolio site using a cloud server, a custom domain, and a bit of trial and error. I’m still early in my learning journey, so this project was mostly about getting hands-on experience with hosting, SSH, domains, and a basic WordPress setup.


Starting with DigitalOcean

I started by creating a free account on DigitalOcean and launched a Droplet (their term for a virtual server). I used the WordPress on Ubuntu image to keep things simple.

  • Chose the lowest-cost option ($6/month)
  • Basic shared CPU, SSD storage
  • Used SSH-only login for better security

This was my second time working with SSH keys, so it took some extra reading and troubleshooting, from memory i believe the process of connecting my local machine to a local virtual machine was different.


Dealing with SSH Key Errors

I set up an SSH key pair on my local machine, but at first, I couldn’t connect to the server. I ran into this error:

sign_and_send_pubkey: signing failed for ED25519 "yair@Ubuntu" from agent
Permission denied (publickey).

After some searching, I figured out the fix was to start the SSH agent and manually add my key:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_digitalocean

Once I did that, I was able to connect using:

ssh root@206.189.194.182

Connecting My Domain

To make the site easier to access (and more professional), I bought a domain from Namecheap.com:

yairmartinezcybersecurityportfolio.com

I chose .com over .online because it felt a bit more trustworthy. I then added these DNS records to point the domain to my server’s IP:


Basic Server Configuration

When I first logged into the server, a script automatically guided me through the WordPress setup. It asked for:

  • My domain name
  • Email
  • WordPress username & password

It also installed Let’s Encrypt (Certbot) for SSL for encryption in my site, which was helpful now the site is available at https://yairmartinezcybersecurityportfolio.com.


A Bit of Extra Security

I installed two plugins to help make the site more secure:

  • WP fail2ban – logs login attempts to help prevent brute force attacks
  • WP fail2ban Blocklist – blocks known malicious IPs

These were simple to install and required very little setup.


Building the Site Itself

Once WordPress was running, I picked a clean theme and installed a few helpful plugins:

I then used WordPress’s block editor to add basic sections and display my work.


What I Got Out of This

This was my first time setting up a personal website from scratch using a cloud provider and custom domain. Some of the key things I learned and did:

  • How to create and troubleshoot SSH key access
  • Basic DNS setup (A records and CNAME)
  • How SSL certificates work with Let’s Encrypt
  • How to configure and manage WordPress plugins

Final Thoughts

This wasn’t a super advanced or flashy project, but it helped me learn by doing it. I wanted to get a basic WordPress site online, secure it, and connect it to a custom domain to have my portfolio up and available to others and I did.

There’s still a ton I want to learn, but this gave me a small taste of how hosting and web infrastructure actually works in practice.