Home → Articles → How to Get Started with the Vultr Platform and Launch your First Website

How to Get Started with the Vultr Platform and Launch your First Website

Published: Last updated:

Introduction

Vultr is a cloud infrastructure provider that offers virtual private servers (VPS), bare metal servers, block storage, and managed databases across 32 global locations. The platform provides developers with on-demand computing resources billed by the hour or month, making it suitable for projects of any size from personal blogs to enterprise applications. Vultr includes features like automated backups, DDoS protection, API access, and a web-based control panel for managing infrastructure. Entry-level developers can deploy a production-ready Ubuntu server in under two minutes and host their first static HTML website using Apache.

This guide shows you how to create a Vultr account, deploy your first cloud server, secure it properly, and host a simple HTML hello world website.

Prerequisites

Before you start, ensure you have:

  • A valid email address for account registration.
  • A payment method such as credit card, PayPal, or cryptocurrency.
  • An SSH client like PuTTY for Windows or use the terminal on Linux and Mac OS.

Create a Vultr Account

The first step to using the Vultr platform is creating an account. Vultr offers free credits for new users to test the platform without immediate financial commitment.

  • Navigate to the Vultr website and click the Sign Up button. if you're a first time user, Vultr will give you free trial credit of up to $300 after adding a valid payment method.
  • Enter your email address and create a strong password.
  • Verify your email address by clicking the confirmation link sent to your inbox.
  • Log in to your new Vultr account.
  • Add a payment method to activate your account for deployments.
  • Ensure available promotional credits displays on your dashboard.

Explore Vultr Products

Vultr offers several product categories designed for different use cases. Understanding these products helps you choose the right infrastructure for your project.

1. Cloud Compute

Cloud Compute instances are virtual private servers (VPS) that run on shared or dedicated CPU resources. These instances are suitable for web servers, development environments, staging servers, and small to medium production workloads. Cloud Compute instances start at $2.50 per month and scale up to $640 per month depending on CPU and RAM requirements.

2. Optimized Cloud Compute

Optimized Cloud Compute instances provide dedicated vCPU cores with guaranteed performance. These instances are suitable for CPU-intensive workloads like video encoding, machine learning inference, and high-traffic web applications. Optimized instances start at $15 per month.

3. Bare Metal

Bare Metal servers give you direct access to physical server hardware without virtualization overhead. These servers are suitable for game hosting, big data processing, and applications requiring maximum performance. Bare Metal servers start at $120 per month.

4. Managed Databases

Managed Databases provide pre-configured database instances with automated backups, failover, and maintenance. Vultr supports MySQL, PostgreSQL, and Redis with managed options. Database instances start at $15 per month.

5. Block Storage

Block Storage provides additional persistent storage volumes that attach to your cloud servers. Block Storage is suitable for hosting media files, backups, and application data that exceed your server's local SSD capacity. Block Storage costs $0.10 per GB per month.

Deploy Your First Cloud Server

Deploying a cloud server on Vultr takes less than two minutes. You need to choose an operating system, server size, and location before deployment begins.

  • Ensure you're Logged in to the Vultr Customer Portal using the link below:
  • Click the Deploy Server button in the Products section.
  • Choose Cloud Compute as your server type.
  • Select a server location closest to your target audience.
    • For serving users in Africa, choose Johannesburg or London.
    • For serving users in Asia, choose Singapore or Tokyo.
    • For serving users in North America, choose New Jersey or Los Angeles.
  • Choose Ubuntu 24.04 as your operating system. As a beginner, Ubuntu is the right choice because it strikes the right balance between simplicity, community support, and long‑term stability. Later, you can try other Linux distributions.
  • Select a server size based on your needs.
    • For a simple website with low traffic: $6 per month (1 vCPU, 1GB RAM, 25GB NVMe)
    • For a production application: $12 per month (1 vCPU, 2GB RAM, 55GB NVMe)
  • Add any optional features like automated backups or IPv6. If you're just getting started and just testing how the Vultr platform works, you can disable automatic backups to avoid incurring the $1 monthly cost for the $5 plan.
  • Choose your authentication method.
    • Select Password for simpler initial access (If you're a beginner, use this option).
    • Select SSH Keys for secure passwordless login (recommended for advanced users).
  • Click the Deploy Now button.
  • Wait 60 to 90 seconds for your server to provision.
  • Note the server's IP address and root password displayed in your dashboard. You'll now use this IP address to access your Vultr cloud compute instance or VPS.

Connect to Your Server Using SSH

After deployment completes, you need to connect to your server to perform initial configuration. SSH (Secure Shell) provides encrypted remote access to your server's command line.

  • Linux or Mac OS.

    • Run the SSH command to connect to your server.

      console
      $ ssh root@your_server_ip_address
      
    • Enter the root password from your Vultr dashboard when prompted.

  • Windows

    • Download PuTTY, an SSH and telnet client, developed originally by Simon Tatham using the following link.

    • Enter your root user in the Hostname field followed by an @ symbol and the Vultr server's public IP address and . For instance, root@172.0.0.1 the click open to connect to the server.

      Output:

      console
      The authenticity of host 'your_server_ip_address (xxx.xxx.xxx.xxx)' can't be established.
      ED25519 key fingerprint is SHA256:abc123def456...
      Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
      
  • Type yes and press Enter.

  • Enter your server's root password.

    Output:

    Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-31-generic x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/pro
    
    Last login: Mon Mar 16 10:15:23 2026 from 192.168.1.100
    root@your-server:~#
    

Update the Server's Package Information

After connecting to the server for the first time, update the package information index to ensure you get the latest security patches and software versions.

  • Run the update command to refresh package lists.

    console
    $ sudo apt update
    

    Output:

    console
    Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
    Get:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease [119 kB]
    Get:3 http://archive.ubuntu.com/ubuntu noble-security InRelease [119 kB]
    Fetched 238 kB in 1s (238 kB/s)
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    
  • Run the upgrade command to install available updates.

    console
    $ sudo apt upgrade -y
    

    Output:

    console
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    Calculating upgrade... Done
    The following packages will be upgraded:
    base-files ca-certificates coreutils curl
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    

Set the Server Timezone

Setting the correct timezone ensures accurate log timestamps and scheduled task execution.

  • Check the current system timezone.

    console
    $ timedatectl
    

    Output:

                Local time: Mon 2026-03-16 10:15:23 UTC
            Universal time: Mon 2026-03-16 10:15:23 UTC
                    RTC time: Mon 2026-03-16 10:15:23
                    Time zone: Etc/UTC (UTC, +0000)
    System clock synchronized: yes
                NTP service: active
            RTC in local TZ: no
    
  • List available timezones.

    console
    $ timedatectl list-timezones | grep Nairobi
    

    Output:

    console
    ...
    Africa/Nairobi
    
  • Set the timezone to your location.

    console
    $ sudo timedatectl set-timezone Africa/Nairobi
    
  • Verify the timezone change.

    console
    $ timedatectl
    

    Output:

                Local time: Mon 2026-03-16 13:15:23 EAT
            Universal time: Mon 2026-03-16 10:15:23 UTC
                    RTC time: Mon 2026-03-16 10:15:23
                    Time zone: Africa/Nairobi (EAT, +0300)
    System clock synchronized: yes
                NTP service: active
            RTC in local TZ: no
    

Create a Non-Root Sudo User

Running commands as the root user is dangerous because a single mistake can damage your system. Creating a non-root user with sudo privileges provides a safer way to administer your server.

  • Create a new user with a username of your choice.

    console
    $ adduser your_username
    

    Output:

    console
    Adding user `your_username' ...
    Adding new group `your_username' (1000) ...
    Adding new user `your_username' (1000) with group `your_username' ...
    Creating home directory `/home/your_username' ...
    Copying files from `/etc/skel' ...
    New password: your_strong_password
    Retype new password: your_strong_password
    passwd: password updated successfully
    
  • Add the new user to the sudo group.

    console
    $ usermod -aG sudo your_username
    
  • Verify the user has sudo privileges.

    console
    $ su - your_username
    $ sudo -v
    

    Output:

    [sudo] password for your_username: your_strong_password
    
  • Log out of the root session.

    console
    $ exit
    

Generate and Configure SSH Keys for Secure Access

SSH keys provide a more secure authentication method than passwords. The private key stays on your local machine while the public key uploads to your server.

  • On your local machine, generate an SSH key pair.

    console
    $ ssh-keygen -t ed25519 -C "your_email@example.com"
    

    Output:

    console
    Generating public/private ed25519 key pair.
    Enter file in which to save the key (/home/user/.ssh/id_ed25519): 
    Enter passphrase (empty for no passphrase): 
    Enter passphrase again: 
    Your identification has been saved in /home/user/.ssh/id_ed25519
    Your public key has been saved in /home/user/.ssh/id_ed25519.pub
    The key fingerprint is:
    SHA256:abc123def456 your_email@example.com
    
  • Display your public key.

    console
    $ cat ~/.ssh/id_ed25519.pub
    

    Output:

    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIxyz123abc456 your_email@example.com
    
  • Copy the entire public key output to your clipboard.

  • Connect to your server using the non-root user.

    console
    $ ssh your_username@your_server_ip_address
    
  • Create the .ssh directory in your home folder.

    console
    $ mkdir -p ~/.ssh
    $ chmod 700 ~/.ssh
    
  • Create the authorized_keys file and paste your public key.

    console
    $ nano ~/.ssh/authorized_keys
    
  • Paste your public key into the file.

  • Save and close the file by pressing Ctrl + X, then Y.
  • Set the correct permissions on the authorized_keys file.

    console
    $ chmod 600 ~/.ssh/authorized_keys
    
  • Log out of the server.

    console
    $ exit
    
  • Test the SSH key authentication by connecting again.

    console
    $ ssh your_username@your_server_ip_address
    

    Output:

    console
    Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-31-generic x86_64)
    
    Last login: Mon Mar 16 10:30:45 2026 from 192.168.1.100
    your_username@your-server:~#
    

Disable Remote Root Login

After setting up a non-root sudo user and SSH keys, disable remote root login to prevent attackers from trying to guess your root password.

  • Open the SSH daemon configuration file.

    console
    $ sudo nano /etc/ssh/sshd_config
    
  • Locate the line containing PermitRootLogin.

    INI
    #PermitRootLogin prohibit-password
    
  • Change the line by removing the leading # character to disable root login completely.

    INI
    PermitRootLogin no
    
  • Add or modify the following line to disable password authentication.

    INI
    PasswordAuthentication no
    
  • Save and close the file by pressing Ctrl + X , then Y.

  • Restart the SSH service to apply changes.

    console
    $ sudo systemctl restart sshd
    
  • Open a new terminal window using PuTTY or SSH and verify root login is disabled.

    console
    $ ssh root@your_server_ip_address
    

    Output:

    Permission denied (publickey).
    

Install and Configure Fail2ban

Fail2ban is a security tool that blocks IP addresses showing malicious behavior like repeated failed login attempts. This tool protects your server from brute force attacks.

  • Install the Fail2ban package.

    console
    $ sudo apt install -y fail2ban
    

    Output:

    console
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following NEW packages will be installed:
    fail2ban
    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
    
  • Create a local configuration file for custom settings.

    console
    $ sudo nano /etc/fail2ban/jail.local
    
  • Add the following configuration to protect SSH.

    INI
    [DEFAULT]
    bantime = 3600
    findtime = 600
    maxretry = 5
    
    [sshd]
    enabled = true
    port = ssh
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 3
    bantime = 3600
    
  • Save and close the file by pressing Ctrl + X, then Y.

  • Restart Fail2ban to enable the configuration.

    console
    $ sudo systemctl restart fail2ban
    
  • Check Fail2ban status.

    console
    $ sudo fail2ban-client status
    

    Output:

    Status
    |- Number of jail:      1
    `- Jail list:           sshd
    
  • Check the SSH jail status.

    console
    $ sudo fail2ban-client status sshd
    

    Output:

    Status for the jail: sshd
    |- Filter
    |  |- Currently failed: 0
    |  |- Total failed:     0
    |  `- File list:        /var/log/auth.log
    `- Actions
    |- Currently banned: 0
    |- Total banned:     0
    `- Banned IP list:
    

Install Apache Web Server

Apache is the most widely used web server software that serves HTML files and processes requests from web browsers. This is the first developer package you should install to test the Vultr environment.

  • Install the Apache2 package.

    console
    $ sudo apt install -y apache2
    

    Output:

    console
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following NEW packages will be installed:
    apache2 apache2-bin apache2-data apache2-utils
    0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
    Need to get 1,234 kB of archives.
    After this operation, 5.67 MB of additional disk space will be used.
    
  • Verify Apache is running.

    console
    $ sudo systemctl status apache2
    

    Output:

    ● apache2.service - The Apache HTTP Server
        Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset; enabled)
        Active: active (running) since Mon 2026-03-16 10:45:23 EAT; 30s ago
    Main PID: 12345 (apache2)
        Tasks: 55 (limit: 2271)
        Memory: 12.5M (peak: 13.2M)
            CPU: 234ms
        CGroup: /system.slice/apache2.service
    
  • Open your web browser and navigate to http://your_server_ip_address.

    Output:

    It works!
    This is the default welcome page for the Apache HTTP Server.
    

Configure Firewall for Apache

Ubuntu 24.04 includes UFW (Uncomplicated Firewall) for managing network access. You need to allow HTTP and HTTPS traffic to make your website accessible.

  • Check the current UFW status.

    console
    $ sudo ufw status
    

    Output:

    Status: inactive
    
  • Enable UFW with default deny policies.

    console
    $ sudo ufw default deny incoming
    $ sudo ufw default allow outgoing
    
  • Allow SSH connections to prevent losing access.

    console
    $ sudo ufw allow ssh
    
  • Allow HTTP connections on port 80.

    console
    $ sudo ufw allow 80/tcp
    
  • Allow HTTPS connections on port 443.

    console
    $ sudo ufw allow 443/tcp
    

    Allowing port 80 and port 443 through the firewall ensures you access Apache webserver from your computer browser.

  • Enable the firewall.

    console
    $ sudo ufw enable
    

    Output:

    Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
    Firewall is active and enabled on system startup
    
  • Reload the firewall rules.

    console
    $ sudo ufw reload
    
  • Verify the firewall rules.

    console
    $ sudo ufw status
    

    Output:

    Status: active
    
    To                         Action      From
    --                         ------      ----
    22/tcp                     ALLOW       Anywhere
    80/tcp                     ALLOW       Anywhere
    443/tcp                    ALLOW       Anywhere
    22/tcp (v6)                ALLOW       Anywhere (v6)
    80/tcp (v6)                ALLOW       Anywhere (v6)
    443/tcp (v6)               ALLOW       Anywhere (v6)
    

Create a Hello World HTML Website

Apache serves files from the /var/www/html/ directory by default. You will replace the default Apache page with your own hello world HTML website.

  • Remove the default Apache index page.

    console
    $ sudo rm /var/www/html/index.html
    
  • Create the new index.html file with Nano.

    console
    $ sudo nano /var/www/html/index.html
    
  • Add the following HTML code to index.html.

    HTML
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">       
        <title>Hello World | My Vultr Website</title>      
    </head>
    <body>        
        <h1>Hello World!</h1>
        <p>Welcome to my first website hosted on Vultr Cloud Server.</p>           
    </body>
    </html>
    
  • Save and close the file by pressing Ctrl + X, then Y.

  • Set the correct ownership for the web directory.

    console
    $ sudo chown -R www-data:www-data /var/www/html/
    
  • Test your HTML website by opening your web browser.

    http://your_server_ip_address
    

    Output:

    Your browser displays a styled "Hello World" page with gradient background, server information, and deployment confirmation.

Create a Custom Virtual Host Configuration

Virtual hosts allow Apache to serve multiple websites from a single server. Creating a custom configuration gives you better control over your website settings.

  • Create a new virtual host configuration file.

    console
    $ sudo nano /etc/apache2/sites-available/example.conf
    
  • Add the following configuration to example.conf.

    ApacheConf
    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName your_server_ip_address
        DocumentRoot /var/www/html
    
        <Directory /var/www/html>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
  • Save and close the file by pressing Ctrl + X, then Y.

  • Disable the default Apache configuration.

    console
    $ sudo a2dissite 000-default.conf
    
  • Enable your new virtual host configuration.

    console
    $ sudo a2ensite example.conf
    
  • Test the Apache configuration for syntax errors.

    console
    $ sudo apache2ctl configtest
    

    Output:

    Syntax OK
    
  • Restart Apache to apply the changes.

    console
    $ sudo systemctl restart apache2
    

Test Your Hello World Website

  • Open your web browser and go to http://your_server_ip_address.
  • Ensure your static HTML website is now live on the internet through your Vultr cloud server.

Set Up Basic Monitoring

Vultr provides basic monitoring tools in the dashboard. Enable these features to track your server's resource usage.

  • Log in to your Vultr dashboard.
  • Click on your server in the Products list.
  • Navigate to the Settings tab.
  • Click on Monitoring.
  • Enable bandwidth and performance graphs.
  • Set up email alerts for high CPU or memory usage.

Conclusion

In this guide, you created a Vultr account, deployed your first Ubuntu 24.04 cloud server, and secured it by creating a non-root sudo user, configuring SSH keys, disabling remote root login, and installing Fail2ban. You installed Apache as your web server, configured UFW firewall rules, built an HTML Hello World website, and set up a custom virtual host configuration. Now that you have your first website running on Vultr, consider adding a domain name with DNS management, installing SSL/TLS certificates from Let's Encrypt for HTTPS, exploring Vultr Object Storage for file hosting, or deploying a database using Vultr Managed Databases for MySQL or PostgreSQL to build dynamic web applications.

Claim your $300 Free Vultr Credit

If you're a beginner in the cloud computing world, use the link below to get up to $300 worth of free credit once you sign up with Vultr and add a valid payment method.