How to Use Vultr's WebApp Marketplace Application

Updated on August 10, 2023
How to Use Vultr's WebApp Marketplace Application header image

Introduction

Vultr WebApp is a virtual desktop solution that offers 3D acceleration for GPU-intensive applications such as games, graphics software, and Computer-Aided Design (CAD) apps. The WebApp interface is accessible through a web browser with all installed applications available in a single menu bar on the server. It's highly customizable, and securely allows you to transfer files between your local computer and the server.

This article explains how you can use the Vultr WebApp marketplace application to run access applications such as Blender, FreeCAD, and Gimp through a secure web interface.

Prerequisites

Before you begin.

  • Deploy a Vultr WebApp A16 Cloud GPU Instance from the Vultr Marketplace.

    When deploying the application, enter the target applications to pre-install on the server. For example, blender, gimp, freecad installs

    In the Application Startup Command field, enter the startup command for your main application. For example blender launches Blender as your main application when you log in to the WebApp. Enter your desired username in the WebApp User field. Keep the Bash Install Script field empty if you have no extra non-APT applications to install on the server.

  • Set up a domain A record pointing to the Vultr WebApp IP Address.

    For quick access, configure a domain name to translate to your Vultr WebApp IP Address. This article uses webapp.example.com, replace all occurrences with your actual domain name or Server IP Address.

Create a Standard User Account

To securely manage your Vultr WebApp server, it’s important to refrain from using the root user account. It’s recommended to use a standard user account with sudo privileges to install any additional applications to the server, upload, and download files. Create a new user on the server as described in the steps below.

  1. Using SSH, access your Vultr WebApp server as root.

     $ ssh root@SERVER-IP

    Copy the auto-generated root user password in your Vultr WebApp server control panel to log in to the server.

  2. Create a new user account. For example example-user.

     # adduser example-user

    Enter a strong password for the user, and press enter to accept all listed options.

  3. Add the user to the sudoers group.

     # adduser example-user sudo

    The above command grants the user sudo privileges to perform tasks such as installation and configuration of application packages on the server.

  4. Switch to the user account.

     # su example-user
  5. Update the server packages to verify that the user has sudo privileges.

     $ sudo apt update
  6. Create a new files directory in the webapp home directory to upload and download files.

     $ sudo mkdir -p /home/webapp/files

    By default, Vultr WebApp uses the webapp home directory to store files. In this article, you will upload and download files to the directory by creating a link to your standard user’s home directory.

  7. Link the files directory to your user home directory to create a shortcut for SFTP access.

     $ sudo ln -s /home/webapp/files ~/
  8. Make the parent directory writable for all users.

     $ sudo chmd 777 -R /home/webapp/files
  9. Verify that the linked files directory is added to your home directory.

     $ ls ~/

    Output:

     files

Access the Vultr WebApp

  1. In a web browser such as Chrome, visit your Vultr WebApp server IP Address.

     http://SERVER-IP

    If your domain propagates successfully, access WebApp using your domain name.

     http://webapp.example.com
  2. When prompted for a username and password, fill in the fields as follows:

    Username: You set during deployment

    Password: Auto-generated password in your Vultr WebApp control panel

  3. Verify that the Blender Interface loads correctly in your browser.

    Blender on the Vultr WebApp interface

  4. Start using the Blender to create 3D models, Save your work, and press the minimize button to hide it when running another app.

  5. To start another application, click the floating menu bar, and hover the Start menu to reveal a dropdown list.

  6. Click each of the list options, Graphics, and Multimedia to reveal additional applications you can run in your Vultr WebApp interface.

  7. To open the Gimp graphics tool, navigate to Start > Graphics, and click Gimp to open the application window.

  8. Start using Gimp to create your graphics workflows.

  9. Save your work, and download a copy of the files to on your computer.

Upload and Download Files

To upload files to your Vultr WebApp server, use the main web interface to upload a single file for use in your application. However, to upload a batch of files, you need to use a secure FTP or SFTP connection to the server. Through the connection, you can upload and download files on the server directly to your local computer as described in the following steps.

  1. To upload a single file on the server, click the floating menu bar.

  2. Navigate to Server to reveal a dropdown menu, and select Upload File from the list.

    Upload Files on WebApp

  3. Browse a file from your computer, and click Open to upload the file to the Vultr WebApp server.

  4. To view the uploaded file, click the main menu bar, navigate to Start, scroll to System, and click Dolphin to open the file explorer.

  5. In the Places section, click Home, view, and verify that your file is available in the directory.

    View uploaded file

Upload Multiple Files

To upload multiple files on your Vultr WebApp server, you must establish a secure connection to the server using a file transfer protocol such as FTP, SFTP, or Rsync. In this section, you will use the FileZilla SFTP client to connect to the server and upload multiple files as described in the steps below.

  1. Download and Install FileZilla on your computer from the official website.

  2. From your applications menu, open FileZilla.

  3. Within the FileZilla window, enter your Vultr WebApp IP Address in the Host field, or the configured domain name.

  4. In the Username: field, enter the standard user you created earlier.

  5. Enter the user password in the Password: field.

  6. Enter 22 in the Port: field to instruct FileZilla to use FTP.

    Connect to VultrWebApp using FileZilla

  7. Click the Quick Connect button to establish a connection to the server.

  8. In the Remote Site section, verify that the files directory is available.

  9. Double-click to open the directory.

  10. In the Local Site section, navigate to the directory where your target upload files are stored.

  11. Drag and drop files from the Local Site section to the Remote Site to start uploading them to the Vultr WebApp server.

  12. When successful, open Vultr WebApp in your web browser.

  13. Click the floating menu bar, navigate to System, and open the Dolphin file explorer.

  14. Click the Home directory, double-click files, and verify that your uploaded files are available in the directory.

    Uploaded Files in the WebApp Dolphin File Explorer

Download Files

  1. In your FileZilla SFTP session, navigate to the files directory in the Remote Site section.

  2. Verify that your target files are available, drag and drop them to your destination directory in the Local Site section to save them on your computer.

    Drag and drop files from Vultr WebApp Server to local computer

  3. Open a new file explorer window on your local computer.

  4. Navigate to your destination directory.

  5. Verify that your downloaded files from WebApp are available.

To connect, upload and download files on your Vultr WebApp server, you can use other SFTP clients such as Cyberduck, or directly sync your local directories with the WebApp server using RSync to continuously download new files.

Install Additional Applications

Vultr WebApp allows you to install multiple applications with the , separator during the deployment stage. To install additional applications such as OBS on your Vultr WebApp, make sure they are graphical applications, then use the Ubuntu APT repository to install them as below.

  1. Update the server packages.

     $ sudo apt update
  2. Install your target application, for example, OBS-Studio.

     $ sudo apt install obs-studio ffmpeg

    The ffmpeg package is a necessary application for OBS Studio to correctly work on the server.

  3. Install a web browser, for example, Chromium to browse the web using Vultr WebApp.

     $ sudo apt install chromium-browser
  4. Alternatively, install non-apt packages from sources such as snap. For example, to install Minecraft, run the following command.

     $ sudo snap install mc-installer
  5. Install the Shotcut video editor.

     $ sudo snap install shotcut
  6. To verify that all additional applications are successfully added to your Vultr WebApp server. Load the WebApp interface in your browser.

     http://webapp.example.com
  7. Navigate to the floating menu bar, and hover over the Start menu.

  8. Verify that new categories are added to the dropdown menu.

    New Vultr WebAPP applications

    As displayed on the interface, you installed the Minecraft game which creates a new Games category in your WebApp menu. The Chromium browser also creates a new Internet menu option.

Security

To secure your Vultr WebApp server, verify your Firewall table rules, and redirect all HTTP requests to HTTPS to add an encryption layer to your server traffic. Additionally, you can change the Vultr WebApp user password, and add any secondary users to grant access to your server as described in this section.

  1. Verify the available rules in the Uncomplicated Firewall (UFW) table.

     $ sudo ufw status

    Output:

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

    As displayed in the above output, the HTTP port 80, HTTPS port 443, and SSH port 22 are allowed through the firewall.

  2. Block access to the Cockpit port 9080 if you are not using it.

     $ sudo ufw deny 9080/tcp
  3. Restart the firewall to load changes.

     $ sudo ufw reload

Generate Let’s Encrypt SSL Certificates

  1. To configure Nginx to read your domain name, navigate to the host files directory.

     $ sudo cd /nginx/sites-available
  2. Back up the webapp_https.conf file to your user home directory.

     $ sudo mv webapp_https.conf ~/
  3. Delete the orphaned file from the sites-enabled directory.

     $ sudo rm ../sites-enabled/webapp_https.conf 
  4. Using a text editor such as Nano, edit the webapp_http.conf file.

     $ sudo nano webapp_http.conf
  5. Find the server_name _; directive, and include your domain name as below.

     server_name webapp.example.com;

    Save and close the file.

  6. Test Nginx for configuration errors.

     $ sudo nginx -t
  7. Restart Nginx.

     $ sudo systemctl restart nginx
  8. Install the Certbot Let’s Encrypt client.

     $ sudo snap install --classic certbot
  9. Activate the Certbot systemwide command.

     $ sudo ln -s /snap/bin/certbot /usr/bin/certbot
  10. Request for a new SSL certificate. Replace webapp.example.com with your actual domain name, and user@example.com with your actual email address.

     $ sudo certbot --nginx -d webapp.example.com -m user@example.com --agree-tos --redirect
  11. Verify that the certificate auto-renews upon expiry.

     $ sudo certbot renew --dry-run
  12. In your web browser, visit your domain to verify that it’s accessible over HTTPS.

     https://webapp.example.com

Optional: Set up Vultr WebApp Users

To change your Vultr WebApp user password, or set up additional users, create a new password as described in the steps below.

  1. Using the htpasswd utility, Change your user password in the /etc/nginx/htpasswd/webapp file by running the following command.

     $ htpasswd -c /nginx/htpasswd/webapp myuser

    Enter your new password when prompted, and replace myuser with your actual user.

    The above command overwrites the existing user password in the webapp file with your new password.

  2. To fully change the user password, edit the .xprapasswd file in the webapp home directory as below.

     $ sudo nano /home/webapp/.xprapasswd
  3. Set a new password in the file.

     STRONG-PASSWORD

    Save and close the file.

  4. To create additional users to access your Vultr WebApp, append the /etc/nginx/htpasswd/webapp file to set up a new basic authentication user as below.

     $ htpasswd -b /etc/nginx/htpasswd/webapp example-designer STRONG-PASSWORD

    The above command creates the user example-designer with access to your Vultr WebApp interface.

Conclusion

You have used the Vultr WebApp Marketplace application to access your GPU-intensive applications, installed extra apps, and improved the server security. By using the Vultr WebApp interface, you can easily access your applications faster than VNC, or Remote Desktop connections (RDP) that require special apps to connect.

Next Steps

For more information on how to secure your Vultr WebApp server, and deploy other applications to run, visit the following resources.