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
- 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.