How to Get Started with the Vultr Platform and Launch your First Website
03 Apr, 2026
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, chooseJohannesburgorLondon. - For serving users in
Asia, chooseSingaporeorTokyo. - For serving users in
North America, chooseNew JerseyorLos Angeles.
- For serving users in
- 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.1the click open to connect to the server.Output:
consoleThe 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
yesand 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 updateOutput:
consoleHit: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 -yOutput:
consoleReading 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$ timedatectlOutput:
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 NairobiOutput:
console... Africa/Nairobi -
Set the timezone to your location.
console$ sudo timedatectl set-timezone Africa/Nairobi -
Verify the timezone change.
console$ timedatectlOutput:
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_usernameOutput:
consoleAdding 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 -vOutput:
[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:
consoleGenerating 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.pubOutput:
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_addressOutput:
consoleWelcome 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.INIPermitRootLogin no -
Add or modify the following line to disable password authentication.
INIPasswordAuthentication 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_addressOutput:
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 fail2banOutput:
consoleReading 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 statusOutput:
Status |- Number of jail: 1 `- Jail list: sshd -
Check the SSH jail status.
console$ sudo fail2ban-client status sshdOutput:
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 apache2Output:
consoleReading 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 apache2Output:
● 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 statusOutput:
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/tcpAllowing port
80and port443through the firewall ensures you access Apache webserver from your computer browser. -
Enable the firewall.
console$ sudo ufw enableOutput:
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 statusOutput:
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.htmlfile 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_addressOutput:
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 configtestOutput:
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.