Introduction

This guide walks you through hosting a simple website on a Virtual Machine (VM) in Atlas Cloud using the web console. You’ll create a VM manually, install a web server, upload your website files, and configure DNS.

For infrastructure-as-code: See Website hosting with Terraform for automated deployment with version control and remote state management.

Prerequisites

  • An Atlas Cloud account
  • A registered domain name (e.g., yourdomain.com) — optional
  • Basic knowledge of SSH and command-line tools

Step 1: Create a Virtual Machine

See Creating your first cloud service for a tutorial on creating a VM. See Instances and Guest Networks for further details of the following steps.

  1. Log in to the Atlas Cloud.
  2. Create a guest network if you don’t have one (see Guest Networks).
    1. Make sure your allow egress traffic on your network (see the link above)
  3. Create a new instance (see Instances), click “Add Instance” and configure:
    • Name: web-server
    • Template: Ubuntu 24.04 LTS
    • Compute offering: Select Atlas.a4 (0.5 vCPU, 0.5 GB RAM)
    • Networks: Select the network you created above
  4. Click “Launch VM”.

Step 2: Assign a Public IP and Configure Firewall

  1. Go to Networking > Public IP Addresses.
  2. Acquire a new public IP if needed.
  3. For the public IP, configure port forwarding:
    • Protocol: TCP
    • Public port: 80 (for HTTP)
    • Private port: 80
    • VM: Select your web-server instance
  4. Repeat for HTTPS (port 443 to 443).
  5. Set firewall (ingress) rules to allow HTTP and HTTPS traffic from the internet.
  6. Configure egress rules for the network to allow outbound traffic. Click your network, go to the Egress rules tab, and add rules to allow:
    • TCP port 80 (HTTP) to 0.0.0.0/0
    • TCP port 443 (HTTPS) to 0.0.0.0/0
    • UDP port 53 (DNS) to 0.0.0.0/0
    • TCP port 53 (DNS) to 0.0.0.0/0

Why egress rules? Without egress rules, your VM cannot reach the internet for package updates (apt update), DNS resolution, or fetching external resources like SSL certificates.

Step 3: Connect to Your VM

  1. Use SSH to connect to your VM using the public IP and your SSH key.

    ssh -i your-key.pem ubuntu@<public-ip>
  2. Update the system:

    sudo apt update && sudo apt upgrade -y

Step 4: Install a Web Server

For this example, we’ll use Apache on Ubuntu:

  1. Install Apache:

    sudo apt install apache2 -y
  2. Start and enable Apache:

    sudo systemctl start apache2
    sudo systemctl enable apache2
  3. Verify it’s running:

    sudo systemctl status apache2

Step 5: Create and Upload Your Website Files

Create a minimal index.html file on your local machine:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Welcome to Atlas Cloud</title>
    <script src="https://cdn.tailwindcss.com"></script>
  </head>
  <body class="bg-gray-100 flex items-center justify-center min-h-screen">
    <div class="text-center">
      <h1 class="text-4xl font-bold text-blue-600 mb-4">
        Hello from Atlas Cloud! ☁️
      </h1>
      <p class="text-lg text-gray-700">
        Your website is live and looking great on Atlas.
      </p>
    </div>
  </body>
</html>

Upload it using SCP:

scp -i your-key.pem ./index.html ubuntu@<public-ip>:/var/www/html/

Step 6: Test Your Website

  1. Open a browser and visit http://your.ip.address.
  2. Ensure the site loads correctly.

Congratulations! Your website is now hosted on Atlas Cloud.

Optional: Configure Your Domain

  1. In your domain registrar’s DNS settings, add an A record:
    • Name: @
    • Type: A
    • Value: your.public.ip.address (from the IP address view in the Atlas Console)
  2. Wait for DNS propagation (may take up to 24 hours, but usually near-instant).
  3. Visit your domain (e.g., http://yourdomain.com) to confirm.

Optional: Add SSL with Let’s Encrypt

  1. Install Certbot (recommended method):

    sudo apt update
    sudo apt install certbot python3-certbot-apache -y
  2. Obtain a certificate:

    sudo certbot --apache -d yourdomain.com --non-interactive --agree-tos --email your-email@example.com --redirect
  3. Verify automatic renewal is enabled:

    sudo systemctl status certbot.timer

Note: For automated infrastructure deployment, see Website hosting with Terraform for an IaC approach that includes SSL setup.