How to host 2FAuth on Digitalocean Droplet - ServerAvatar

Published : Sep 3, 2024

Share This Post

cloud-platform

Digitalocean

Digitalocean is one of the most popular cloud platform right now. It offers on-demand cloud computing for various use cases as well as some managed solutions.

Get started with Digitalocean
application

2FAuth

In an age where cybersecurity is paramount, adding an extra layer of security through Two-Factor Authentication (2FA) is a must. The 2FAuth library allows you to implement this security measure with ease. This guide will walk you through the steps to self-host 2FAuth on your own web server, whether on a local machine or a hosted environment, using Apache2 or NGINX as your HTTP server.

More info

2FAuth is a Web application designed to manage your Two-Factor Authentication (2FA) accounts and generate their security codes. It generates and stores security codes for your accounts, simplifying the process of securing your online services. When selecting a hosting provider for 2FAuth, DigitalOcean stands out as a leading cloud infrastructure provider known for its simplicity, scalability, and user-friendly approach. ServerAvatar simplifies the deployment of 2FAuth on DigitalOcean VPS (Virtual Private Servers) through an intuitive interface, automating complex setup procedures, and allowing users with minimal technical knowledge to efficiently configure and manage their server environments.

Create Server in Digitalocean

Digitalocean is one of the most popular cloud platforms right now. It offers on-demand cloud computing for various use cases as well as some managed solutions. We can deploy any PHP-based applications on Digitalocean Droplets. Droplets are the servers or cloud computing instances in Digitalocean. If you want to learn about droplet management in-depth in Digitalocean, We recommend you to read our Digitalocean guide.

To deploy any application on Digitalocean, We first need a Droplet. So, we will first create a droplet and perform the initial setup.

Step 1: Go to the Create Droplets page.

Log in to your Digitalocean account and click on the Create button given on the top-right corner of the page. From the drop-down menu, click on the Droplets option to see a droplet creation form.

Create a Droplet - Step 1

Step 2: Choose Region

On the Droplet creation page, you will find several sections for selecting different options. We will proceed step by step.

The first thing you have to do is select the region for your droplet. Digitalocean provides several options when it comes to selecting the location. The general rule is to select the region that is closest to your audience. It means that for the majority of your audience, Your sites will load faster due to low latency.

Create a Droplet - Step 2

Step 3: Choose an Image or an OS

In this step, you have to select the operating system for your droplet. We recommend you to use Ubuntu 20.04 LTS x64 or Ubuntu 22.04 LTS x64. These operating systems are a requirement if you are using ServerAvatar to manage your droplets.

Create a Droplet - Step 3

Step 4: Choose the size of the Droplet

Here you have to choose the size of your Droplet. As we mentioned above, Digitalocean provides many different types of droplets.

The minimum requirements for hosting 2FAuth are 1GB or more of RAM for better performance and a minimum of 2 GB of free disk space to accommodate the application and its dependencies. The exact amount will depend on your usage and data storage needs. Select the one that fits best for your project.

Create a Droplet - Step 4

If your site is brand new and does not have much traffic, start with a small plan. Once the project starts getting traction, you can upgrade the plan to handle more visitors on the site.

Step 5: Choose Authentication Method

Now you have to select the authentication method. There are two types of authentication methods. They are as follows:

  1. Authentication via SSH Keys
  2. Authentication via Password

Using SSH keys for authentication is the best option. If you are not familiar with SSH keys, you can choose the password method. Make sure to set a strong password for your root user, which is the most powerful user with all the privileges on Linux OS.

Create a Droplet - Step 5

Step 6: Selecting Additional Options

There are three additional options you can choose from. They are optional but important in different use cases. The additional options are:

  1. Monitoring: It is a free feature by Digitalocean. It allows you to see additional monitoring data for your server.
  2. Backups: We recommend you to enable full server backups if you are going to deploy in a production environment. The cost of the backups depends on the size of the droplet.
  3. Managed Database: You do not need a Managed database if you are using ServerAvatar to manage sites on a droplet. A managed database is a pre-configured MySQL Droplet.

Step 7: Finalise Details

In the last step of this process, We have to enter the name of the droplet, and the number of droplets you want to create, Define any tags, and select the project. Enter all the details and click on the Create Droplet button to create a droplet.

Create a Droplet - Step 7

In a few minutes, You will have the Droplet up and running. Now, We have to perform the initial configuration on the Droplet to host PHP-based frameworks and software.

Initial Server Configuration

The Initial server configuration includes the installation and configuration of various packages required to host your website. Usually, You have to write commands and modify configuration files. Luckily, With ServerAvatar, Your full server configuration and optimization can be automated.

Here are the three ways to automatically configure your server with ServerAvatar.

Install and Setup 2FAuth on Cloud using ServerAvatar

Self-Hosting 2FAuth Application: Step-by-Step Guide

Introduction:

In an age where cybersecurity is paramount, adding an extra layer of security through Two-Factor Authentication (2FA) is a must. The 2FAuth library allows you to implement this security measure with ease. This guide will walk you through the steps to self-host 2FAuth on your own web server, whether on a local machine or a hosted environment, using Apache2 or NGINX as your HTTP server.

Requirements:

  1. HTTP Server: You need a web server such as Apache or NGINX. These are the most popular web servers, and you likely have one of them installed if you are using a web hosting service.
  2. PHP: Ensure you have PHP 8.1 or higher installed with the following extensions:
    • BCMath
    • Ctype
    • Fileinfo
    • JSON
    • Mbstring
    • OpenSSL
    • PDO
    • Tokenizer
    • XML
  3. Database: 2FAuth supports various databases such as:
    • MariaDB 10.2+
    • MySQL 5.7+
    • PostgreSQL 9.6+
    • SQLite 3.8.8+
    • SQL Server 2017+
  4. Composer: Composer is required to manage PHP dependencies for 2FAuth. Follow the Composer installation guide.

Step-by-Step Installation Guide:

Step 1: Create a GitHub application

Start by creating a GitHub application using ServerAvatar. This will allow you to easily manage and deploy your 2FAuth instance. Follow these steps:

  1. Open ServerAvatar: Log in to your ServerAvatar account.
  2. Navigate to the Application Dashboard: In the dashboard, find the option to create a new application.
  3. Create the GitHub Application:

This configuration will clone the 2FAuth repository and install the necessary dependencies.

Install and Setup 2FAuth on Cloud using ServerAvatar

Step 2: Set Custom Webroot

Set the custom webroot as public for your application. This can be done from the application dashboard in the application settings. The webroot directory is where your web server searches for the application files to serve.

Install and Setup 2FAuth on Cloud using ServerAvatar

Step 3: Create a Database

From the server dashboard, navigate to the databases section and create a new database. This database will store your application's data.

Install and Setup 2FAuth on Cloud using ServerAvatar

Step 4: Enable SSH Credentials

To securely access your server, enable SSH credentials. SSH (Secure Shell) provides a secure way to log in to your server remotely, ensuring that your data and commands are encrypted. This step is crucial for managing your server and deploying your 2FAuth application.

Install and Setup 2FAuth on Cloud using ServerAvatar

Step 5: Login Using SSH Credentials
  • Once you have your SSH credentials enabled, you can log in to your server. Open a terminal and use the following command: sudo ssh {username}@{ip}
  • Replace {username} with your actual username and {ip} with your server's IP address. You will be prompted to enter your password. After successful authentication, you will have remote access to your server.

Install and Setup 2FAuth on Cloud using ServerAvatar

Step 6: Navigate to the Application Path

With SSH access established, navigate to your application's directory on the server. This is where you will set up your 2FAuth project. Use the cd command to change directories to your application's root path.

Install and Setup 2FAuth on Cloud using ServerAvatar

Step 7: Execution

Run the following command and answer the wizard questions. php artisan 2fauth:install

Install and Setup 2FAuth on Cloud using ServerAvatar

After the wizard, the 2FAuth setup process will be complete.

Install and Setup 2FAuth on Cloud using ServerAvatar

Step 8: Verify Installation

To confirm that your 2FAuth installation is successful, visit your application domain in a web browser. You should see the 2FAuth page, indicating that your setup is complete and your application is ready for development.

Install and Setup 2FAuth on Cloud using ServerAvatar

Conclusion:

By following this guide, you have successfully set up and deployed your 2FAuth application. This process included creating a GitHub application, setting a custom webroot, creating a database, enabling SSH credentials, logging into your server, navigating to the application path, executing the installation script, and verifying your installation. Your 2FAuth application is now up and running, providing an extra layer of security for your users through Two-Factor Authentication. With 2FAuth, you can enhance the security of your web applications, protect sensitive data, and offer your users a more secure login experience. This setup ensures a robust environment for managing your application's security features effectively. Start leveraging the power of 2FAuth to safeguard your application and provide peace of mind to your users.