I just completed a hands-on Linux server setup and deployment no Docker, no automation, just raw DevOps fundamentals.
Here’s exactly how I approached it:
Server Provisioning & Access
Spun up a Linux server on the cloud
Connected via SSH using key-based authentication
Created a secure non-root user: hngdevops
Granted sudo privilegesSecurity Hardening
Disabled root SSH login
Disabled password authentication (keys only)
Configured Uncomplicated Firewall:
Allowed only ports 22 (SSH), 80 (HTTP), 443 (HTTPS)
Blocked everything elseWeb Server Setup
Installed and started Nginx
Configured routes:
/ → Static HTML page displaying my HNG username
/api → JSON response:
{
"message": "HNGI14 Stage 1",
"track": "DevOps",
"username": "my-username"
}
-
SSL Configuration
Used Certbot to generate a valid SSL certificate Enabled HTTPS on the server Configured HTTP → HTTPS redirect (301)
5.** Validation & Debugging**
Ensured:
/api returns HTTP 200 with Content-Type: application/json
Username matches exactly (case-sensitive)
SSL is valid (no self-signed certificates)
Firewall and Nginx are active and correctly configured
Key Lessons
Most failures aren’t tools they’re mis-configurations (ports, services, permissions)
“Connection refused” vs “Timeout” tells you exactly where the issue is
Security first: lock down access before exposing your server
Live Demo
* Deployed and accessible over HTTPS
This project sharpened my troubleshooting, Linux, and networking skills exactly what real-world DevOps demands.
hashtag#DevOps hashtag#Linux hashtag#Nginx hashtag#CyberSecurity hashtag#Cloud hashtag#LetsEncrypt hashtag#HNG hashtag#TechJourney
Top comments (0)