Node.js is a powerful runtime that enables fast, scalable and modern web applications.
With xCloud, you can easily setup Node.js on the AWS server in xCloud.
xCloud makes hosting and managing Node.js sites easy, so you can focus on building great websites.This guide will show you how to set up Node.js on AWS using xCloud.
How to Setup AWS Server with xCloud? #
This guide shows how to set up the AWS server in xCloud. Follow the steps to quickly launch, configure and start your cloud journey.
Step 1: Sign Up/Login With xCloud #
First, you will need to visit the xCloud website and you have to sign up for xCloud with your credentials.
If you already have an account please visit our login page.
Now you are ready to set up your server with Digital Ocean in xCloud.
Step 2: Create Your AWS Server in xCloud #
After logging in to your xCloud account, start by adding a new server by clicking on the “Add New Server” button from your dashboard.
The next screen will provide the list of our available server providers. For tutorial purposes, we will create a AWS server and for that select the AWS option.
Step 3: Sign In to the AWS Management Console #
Now, before going to the next step, you need to log in to the AWS management console. Sign in as a ‘Root User’ to the AWS Management Console using your AWS account credentials. Once logged in, navigate to the main dashboard where you can access various AWS services.
Step 4: Navigate to the IAM Console #
From the AWS Management Console, click on the Services menu located at the top left corner or search with “IAM” and select IAM from the list of services. This will direct you to the IAM dashboard, where you can manage users, groups, roles, and policies.
Step 5: Add a New User #
On the IAM dashboard, locate and click on the Users option in the left navigation panel. This will display a list of existing IAM users. To create a new user, click on the ‘Create User’ button.
Step 6: Configure User Details #
In this step, enter a unique ‘Username’ for the new IAM user. Next, choose the type of access the user requires. Check-in ‘AWS Management Console’ access option if the user requires access to the AWS Management Console and click on the ‘Next’ button.
Step 7: Set Permissions for Amazon EC2 Instance #
You have three options to set permissions for the new user. The first one is ‘Add user to group’ which lets you add the user to an IAM group with predefined permissions, which is efficient for managing multiple users with similar access needs. The second one is ‘Copy permissions’ which enables you to duplicate the permissions of another IAM user. And the final policy ‘Attach policies directly’ allows you to assign AWS-managed policies or custom policies.
Here we are choosing the ‘Attach policies directly’ and assigning the access for Amazon EC2 Instance to the user and hit on the Next.
Note: If you do not find the EC2 Access here, search for the policy in the search bar.
Step 8: Add Tags, Review and Create #
You can add ‘Tags’ to help organize and manage users. Now carefully review all the details and permissions assigned to the new IAM user. If everything is accurate and complete, click the ‘Create user’ button to finalize the creation of the IAM user.
Step 9: Give Another permission for Amazon Lightsail #
Now, set another permission for the new user for Amazon LightSail easily. To specify the permissions for the created user, go to the Permission Policies and click on the ‘Add Permissions Menu’. Choose the ‘Create Inline Policy’ option from the dropdown menu.
Click on the ‘JSON’ button from the Policy Editor and paste the below given JSON code in the editor. Finally, tap on the ‘Next’ button.
Here is the JSON code:
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
“Action”: [
“lightsail:GetInstances”,
“lightsail:GetKeyPair”,
“lightsail:DeleteKeyPair”,
“lightsail:GetStaticIp”,
“lightsail:ReleaseStaticIp”,
“lightsail:SetIpAddressType”,
“lightsail:CreateInstances”,
“lightsail:GetInstance”,
“lightsail:GetInstanceAccessDetails”,
“lightsail:DeleteInstance”,
“lightsail:CreateKeyPair”,
“lightsail:ImportKeyPair”,
“lightsail:StartInstance”,
“lightsail:DownloadDefaultKeyPair”,
“lightsail:GetInstancePortStates”,
“lightsail:StopInstance”,
“lightsail:AttachStaticIp”,
“lightsail:GetRegions”,
“lightsail:RebootInstance”,
“lightsail:GetOperation”,
“lightsail:DetachStaticIp”,
“lightsail:GetInstanceState”,
“lightsail:GetBundles”,
“lightsail:TagResource”,
“lightsail:PutInstancePublicPorts”
],
“Resource”: “*”
}
]
}
Once the policy is created for Lightsail instance, give the policy a name and hit on the ‘Create Policy’ button.
Step 10: Create & Retrieve a User Access Key #
Now we have to create a user access key. Find ‘Create access key’ under the Summary tab and click on it. Then you will be redirected to the Access Key best practices & Alternatives page, from here select the ‘Other’ option and click on Next.
Now give a Description Tag to proceed to create an access key. Once the access key is created copy the Access Key and Secret from here and go back to your xCloud Dashboard to integrate the server with xCloud.
Step 11: Connect the Account & Add Necessary Information #
From the AWS dashboard, select an existing or connect new account from the dropdown menu. Then choose the AWS services from, you can use any one with the proper credentials or both from the xCloud dashboard.
Note: EBS-supported instances of AWS are not supported.
For example, T3 instances use EBS storage. These instances are not available through the API. However, you can set up such instances manually in your AWS account first and then add them through the Any Provider method in xCloud.
As you have the Access Key and Secret Key, Paste them into the designated blank boxes one by one carefully. Now click on the ‘Verify’ button, it will start verifying the credential and connect you with the AWS server.
Fill in all the information like ‘Server Name’, ‘Server Region’, ‘Server Zone’,’Server Size’, etc according to your preference.
Next, choose the web server stack from NGINX or OLS as your requirements and click on ‘NEXT’ button to proceed with the server creation process.
It will start creating a AWS server with xCloud within a while and if you go to the ‘Servers’ from the menu you can see your created server and create as many site as you want under this server
How to Set Up Node.js on AWS with xCloud #
xCloud provides an intuitive interface that allows you to easily deploy, manage and scale your Node.js applications directly from your Git repository without worrying about manual setup or infrastructure maintenance.
Follow the guide to deploy your Node.js application easily on AWS with xCloud:
Step 1: Choose the Application #
To begin deployment, click on the ‘Add New Site’ button from the dashboard.
You will then be asked to ‘Choose a Server to add Site’ from the dropdown. You must select the AWS server you set up in xCloud from this dropdown.
Next, you will see options such as ‘WordPress’ and ‘Custom PHP’. Go to the ‘Node.js’ option from the tab. After that, choose the ‘Choose a Git Repository’ option to import your Node.js application using a Git provider.
Step 2: Set Up Domains #
The ‘Domains’ tab allows you to configure your site’s domain. You can either create a ‘Demo Site’ or a ‘Live Site’. For this documentation, we’ll proceed with the ‘Demo Site’ option and click ‘Next’ to continue.
Step 3: Configure Node.js Application #
In the ‘Settings’ tab, you will find options to configure the Node.js version and manage site users. Adjust them according to your preferences.
Next, you will see the ‘Server-Side Rendering App’ option. To proceed with a ‘Client-Side Rendering App’, keep the toggle off.
To deploy a ‘Server-Side Rendered App’, toggle it on.
Client-Side Rendering (CSR): #
If your application is built using frameworks like React or Vue that render content in the browser, keep the toggle off. In this mode, the server mainly serves static files and all rendering happens on the client side.
Server-Side Rendering (SSR): #
If your Node.js application (for example, Next.js or Nuxt.js) renders pages on the server before sending them to the client, toggle this option on. This allows xCloud to configure the environment to support SSR processes properly.
Here we are proceeding with deploying a ‘Server Side Rendered App’ option →
Then you’ll need to provide a few essential details:
◽Port: Enter the port number your Node.js application listens on (e.g., 3000 or 8080). xCloud uses this port to connect incoming traffic to your app.
◽Start Command: Specify the command that runs your application (for example, npm start, node server.js, or yarn dev). This tells xCloud how to start your Node.js server after deployment.
◽Web Root Path: If your project’s main application files are located in a subdirectory (for instance, /app or /src), enter that path here. If your app is in the root directory, you can leave this field blank.
Now, insert the ‘Port’ and ‘Start Command’ in the respective fields. You can also specify a ‘Web Root’ Path for your application.
In the following step, you can choose one of the database options ‘No Database’, ‘Add an Existing Database’, ‘Create a New Database’ directly on the server. Once selected, click ‘Next’.
Step 4: Insert Git Repository Credentials #
In the “Git Repo” tab, you will find three repository options: ‘Private Repository (Manual SSH URL)’, ‘Public Repository (Manual HTTPS URL)’, ‘Connected Git Provider’.
If you choose Public Repository (Manual HTTPS URL), enter your GitHub Repository URL and specify the Git Branch.
Note: Copy the HTTPS URL from your GitHub repository dashboard.
If you choose Private Repository (Manual SSH URL), enter your GitHub Repository SSH URL and specify the Git Branch.
Note: Copy the SSH URL from your GitHub repository dashboard.
In this document, we’ll deploy the project using the “Git Provider” option.
Choose “Connected Git Provider” from the dropdown menu. From the “Select Git Provider” list, choose the connected account you want to use. Then, browse through the repositories, select the one you want to deploy and choose the specific branch of that project.
Step 5: Enable Push-to-Deploy #
The next step is to enable automated deployment. Toggle on the ‘Enable Push to Deploy’ option. Copy the ‘Deployment URL’ provided here, you will need to insert it into your GitHub repository’s webhook settings.
Step 8: Run Deployment Script #
Once the repository integration is complete, you can configure post-deployment actions.
In the ‘Deployment Script’ field, enter any custom commands you want to execute after deployment.
You can also select one of the example scripts provided. After configuring this, click ‘Next’ to continue.
Next, you can specify the subdirectory where your .env file should be created in the “.env File Path” field. You can also enter the contents of your .env file in the “File Content” field.
Step 9: Confirm Deployment #
The final step is to confirm and start the deployment. Click the ‘Start’ button to begin the process. You can monitor the deployment progress in real time.
After deployment, a success message will appear. From there, access your site dashboard and visit your site to confirm your Node.js app is running on AWS server with xCloud.
Environment Editor for Node.js Application #
The Environment section in xCloud allows you to customize configuration settings for your n8n instance. Just go to the ‘Environment’ option from the sidebar and adjust as you need then click on the ‘Save’ button.
SSR Configuration for Node.js application #
If you are deploying an SSR application, you can update the ‘Application Port’, ‘Start Command’ later as well.
Just go to the ‘SSR Configuration’ from the ‘Node.js’ Menu under the site dashboard and click on the ‘Update Configuration’ button.
Setting up a Node.js application on a AWS server with xCloud is simple and efficient. After setting up or deployment, you can manage your app, update settings and push changes directly from your Git repository.
Still stuck? Contact our support team for any of your queries.
