Cloud & Infra

How to Publish Your Own Domain

Practical and cost-effective setup with Oracle Cloud / HEXACATS Lab

Introduction

Publishing a domain can be straightforward, but there are important details to consider. To build a website that performs well and remains online, you need to plan ahead: how will it scale if necessary? How do you ensure security from the start?

This guide demonstrates how to create a functional environment for your domain with minimal costs. The setup is based on a personal lab environment, suitable for small projects or learning. If your site has specific objectives or expects higher traffic, you will need to scale and monitor accordingly.

๐Ÿ“˜ Want every command and screenshot? This post is a summary. The complete step-by-step guide lives on Sudo Docs: How to Publish Your Own Domain. Each step below links to its full chapter.

Cost Comparison – Hosting and Load Balancer

Provider Description VM Shape Load Balancer DNS Service Estimated Cost
DuckDNS Always Free with DuckDNS + OCI VM.Standard.E2.1.Micro
(1 OCPU, 1GB RAM)
Network Load Balancer (Free) Oracle DNS (Paid) + DuckDNS (Free) ~1.85 USD/month + Oracle DNS
Hostinger Hosting with manual DNS VM.Standard.A1.Flex Network LB (Free) Oracle DNS (Paid) + Hostinger (Paid) ~1.85 USD/month + costs
GoDaddy External custom DNS VM.Standard.A1.Flex Network LB (Free) Oracle DNS (Paid) + GoDaddy (Paid) ~1.85 USD/month + costs

Important Notes

  • Network Load Balancer: Always free
  • Flexible Load Balancer: Free up to 744 hours/month with 10 Mbps bandwidth
  • VM.Standard.E2.1.Micro: Part of Always Free tier, but boot volume (approximately 1.85 USD per month) has associated costs
  • Oracle DNS: Cost per managed DNS zone
  • DuckDNS: Free dynamic DNS, suitable for personal use

Prerequisites

  • A registered domain (Cloudflare, Namecheap, GoDaddy, etc.)
  • A server or hosting service
  • Basic understanding of DNS concepts

๐Ÿ“– Full chapter: Chapter 3: Requirements

DNS: Essential Concepts

The Domain Name System (DNS) functions as the internet’s directory. It translates domain names like yourdomain.com into IP addresses like 203.0.113.42.

  • A Record: Points your domain directly to an IP address. Essential for any setup.
  • CNAME Record: Points your domain to another domain name. Useful for platforms like GitHub Pages.
  • AAAA Record: Similar to A Record, but for IPv6 addresses. Important for future compatibility.

Important: Always configure at least one A Record, even if you also use CNAMEs.

Step by Step: Publishing Your Domain

1. Choosing Your Provider

Go to where you registered your domain and look for DNS Settings or Manage DNS.

๐Ÿ“– Full chapters:

2. Creating a DNS Zone in Oracle OCI

Configure a DNS zone in Oracle Cloud to manage your DNS records.

๐Ÿ“– Full chapter: Chapter 4: Creating a DNS Zone in Oracle OCI

3. DNS Propagation

Wait for DNS record propagation, which can take between 24 to 48 hours.

๐Ÿ“– Full chapter: Chapter 8: Waiting for DNS Propagation

4. Creating a Debian Image on Oracle Cloud

For those who prefer Debian, create a custom image on OCI with your preferred operating system.

๐Ÿ“– Full chapter: Chapter 9: Creating a Debian Image on Oracle Cloud (OCI)

5. Free Tier Instance (AMD Shape)

Use Oracle Cloud’s always-free instances with AMD processors to reduce costs.

๐Ÿ“– Full chapter: Chapter 10: Launch a Free Tier Instance (AMD Shape, Always Free)

6. Free Tier Instance (ARM Shape)

Alternative using ARM processors, more economical for light workloads.

๐Ÿ“– Full chapter: Chapter 11: Launch a Free Tier Instance (ARM Shape, Always Free)

7. Installing Certbot and Generating SSL Certificate

Install an SSL certificate to secure your website communications.

Important: HTTPS is essential for security. Certbot automates the renewal of Let’s Encrypt certificates.

๐Ÿ“– Full chapter: Chapter 12: Installing Certbot & Generating SSL Certificate

8. Installing Docker and MariaDB

Configure Docker to manage containers and MariaDB for your database.

๐Ÿ“– Full chapter: Chapter 13: Installing Docker and MariaDB

9. Deploying Ghost (Blogging Platform)

Configure Ghost using Docker Compose to manage your blogging platform.

๐Ÿ“– Full chapters:

10. Choosing the Right Load Balancer

Oracle Cloud offers two main types:

  • Load Balancer (LB): Layer 7 (application), with SSL termination and URL-based routing
  • Network Load Balancer (NLB): Layer 4 (transport), high performance, low latency

Recommendation: For simple websites, Network Load Balancer is sufficient and offers simpler configuration with better performance.

๐Ÿ“– Full chapters:

11. Nginx Proxy Manager with Network Load Balancer

Configure Nginx Proxy Manager to manage multiple domains and SSL certificates.

๐Ÿ“– Full chapter: Chapter 18: Using Nginx Proxy Manager with a Network Load Balancer


About the Authors

Manolo: Contributor to the development of this documentation and quality testing.

Josi: Responsible for implementation and practical validation of all procedures.

Domain Publishing Guide v1.0 ยท HEXACATS Lab / Documentation and Deployment Guide ยท Oracle Cloud Infrastructure / Linux / Docker / Database

Leave a Reply

Your email address will not be published. Required fields are marked *