Deploying a Node.js Application with MySQL on Shared Hosting: A Practical Guide Print

  • 0

Table of Contents: 

  1. Introduction

    • Introduction to Node.js and MySQL
    • cPanel on
  2. Getting Started

    • Requirements for Node.js and MySQL
    • Setting Up cPanel
  3. Fetching and Setting Up the Node.js Application

    • Finding a Node.js App on GitHub
    • Cloning and Configuring the Repository in cPanel
  4. Configuring the Backend

    • Setting Up MySQL Database in cPanel
    • Configuring Node.js Environment in cPanel
  5. Deployment Process

    • Deploying the Node.js Backend on cPanel
    • Setting Up Frontend (if applicable)
  6. Testing and Debugging

    • Testing the Application in cPanel
    • Troubleshooting Common Issues
  7. Advanced Configurations

    • Custom Domain Configuration in cPanel
    • SSL Configuration in cPanel
  8. Maintenance and Updates

    • Best Practices for Updating Node.js Applications in cPanel
    • Performance Monitoring and Tuning
  9. Conclusion

    • Summary of Deploying Node.js with MySQL on cPanel
    • Additional Resources and Support for cPanel
  10. References

    • cPanel Documentation
    • Node.js and MySQL Official Documentation


Introduction to Node.js and MySQL

Node.js is a powerful JavaScript runtime built on Chrome's V8 engine, designed for building fast, scalable network applications. MySQL, on the other hand, is a robust, relational database management system known for its reliability and ease of use. Together, they form a solid foundation for web applications, offering both efficient data handling and server-side scripting capabilities.

cPanel on offers cPanel, a premier web hosting control panel, for effective management of hosting accounts. Known for its user-friendly interface, cPanel streamlines website and server management tasks. It provides comprehensive tools for file management, database administration, domain handling, and much more, making it a go-to solution for web hosting needs. To learn more about the hosting services and cPanel offerings at, visit here.

Getting Started

Requirements for Node.js and MySQL

Setting Up cPanel

  1. Log in to cPanel: Access your cPanel account through
  2. Familiarize with the Interface: Explore sections like 'File Manager', 'MySQL Databases', and 'PHPMyAdmin'.

Fetching and Setting Up the Node.js Application

Finding a Node.js App on GitHub

1. Search on GitHub:

  • Visit GitHub.
  • Use the search bar to type keywords like “Node.js application” or “Node.js project”.

2. Select a Repository:

  • Look for repositories that have a good number of stars, indicating popularity and reliability.
  • Ensure the repository has comprehensive documentation and recent commits, signaling active maintenance.
  • Example: A project like Node.js Express Boilerplate can be a good starting point.

Cloning and Configuring the Repository in cPanel

1. Access cPanel's File Manager:

  • Log in to your cPanel account on
  • Open the 'File Manager' under the 'Files' section.

2. Upload Files:

  • In the 'File Manager', navigate to the directory where you want to host your Node.js app, such as public_html/.
  • Use the 'Upload' feature in 'File Manager' to upload the zipped repository files.
  • Alternatively, if you have SSH access, you can clone the repository directly using Git commands.
  • Once uploaded, extract the files if they are in a compressed format.

3. Configure Application:

  • In the repository folder, locate any configuration files, such as .env or config.js.
  • Update these files with your specific settings, such as database connection details, API keys, etc.
  • Ensure that file permissions are correctly set for your Node.js files, allowing them to be run by the server.

This section outlines the steps for finding, cloning, and configuring a Node.js application using GitHub and cPanel on's hosting platform.

Configuring the Backend

Setting Up MySQL Database in cPanel

1. Create Database:

  • In cPanel, go to the 'MySQL Databases' section.
  • Choose a name and create a new database for your Node.js application.

2. Add Database User:

  • Still within the 'MySQL Databases' section, create a new user.
  • Assign this user to your newly created database with all privileges.

3. Note Credentials:

  • Keep a record of your database's name, the username, and the password. These will be used in your application's database configuration.

Configuring Node.js Environment in cPanel

1. Setup Node.js:

  • Locate 'Setup Node.js App':
    • In cPanel, navigate to the 'Software' section.
    • Click on 'Setup Node.js App'.
  • Create a Node.js Application:
    • Click on 'Create Application'.
    • Example:
      • Application URL:
      • Application Root: /home/username/public_html/nodeapp
  • Select Node.js Version:
    • Choose a Node.js version from the dropdown menu, like Node.js 12.

2. Configure Application Settings:

  • Application Root:
    • Point this to where your Node.js files are uploaded. For example, /home/username/public_html/nodeapp.
  • Set Public Path:
    • Typically, this would be a folder like public_html/nodeapp/public.
  • Environment Variables:
    • Add environment variables needed for your app's configuration.
    • Example:
      • DB_HOST=localhost
      • DB_USER=username_nodeapp
      • DB_PASS=password
      • NODE_ENV=production

After setting up the application, click on 'Create' to finalize the Node.js environment configuration in cPanel. This will allow you to run Node.js apps directly from your cPanel-hosted domain.

Deployment Process

Updated Deployment Process

Deploying the Node.js Backend on cPanel

  1. Prepare Backend:

    • Configure the Node.js server to listen to process.env.PORT.
    • Update your .env file with the correct credentials for MySQL.
  2. Upload Backend Files:

    • Compress your Node.js application files.
    • Use cPanel's 'File Manager' or FTP to upload and extract the files to a directory like public_html/nodeapp.
  3. Install Node.js Dependencies:

    • In the 'Setup Node.js App' section, select your app and execute npm install.
  4. Configure and Start Node.js Application:

    • Choose the correct Node.js version and set the application mode to "Production".
    • Specify the application root and startup file.
    • Start the Node.js server using cPanel's interface.
  5. Verify Deployment:

    • Check the application is running by navigating to its URL.

Deploying the Frontend

If your Node.js application includes a frontend (e.g., React), follow these steps to deploy it:

  1. Local Build:

    • In your local development environment, navigate to the frontend directory.
    • Run the build command, typically npm run build for React applications.
    • This command compiles your frontend into a build directory, optimizing it for production.
  2. Upload to cPanel:

    • Compress the contents of the build directory into a ZIP file.
    • Log into your cPanel account on and open the 'File Manager'.
    • Navigate to the public directory where you want to deploy the frontend, such as public_html/yourapp.
    • Upload the ZIP file and then extract it in the target directory.
  3. Verification:

    • After uploading, visit your application’s URL to check if the frontend loads correctly and interacts seamlessly with the backend.

By following these steps, your Node.js application’s frontend will be successfully deployed on’s shared hosting via cPanel and accessible over the web.

Testing and Debugging

Testing the Application in cPanel

  1. Access Your Application: Open a web browser and navigate to the application URL.
  2. Check Functionalities: Test all aspects of your application, including forms, APIs, and database interactions.
  3. Review Logs: Utilize cPanel's 'Error Log' feature to identify any issues.

Troubleshooting Common Issues

  • Database Connection Errors: Verify database credentials and connections.
  • Server Errors: Check Node.js logs in cPanel for specific error messages.
  • Frontend Issues: Ensure all static files are correctly linked and accessible.

Advanced Configurations

Custom Domain Configuration in cPanel

  1. Add Domain: Navigate to 'Domains' in cPanel and add your custom domain.
  2. Update Domain Settings: Point the domain to the directory where your application is hosted.

SSL Configuration in cPanel

cPanel comes equipped with AutoSSL, a feature that automatically installs and renews Let's Encrypt SSL certificates for your domains, ensuring your Node.js application is secured with HTTPS.

  1. Access SSL/TLS Manager: Navigate to the 'SSL/TLS' section in your cPanel dashboard.
  2. Enable AutoSSL:
    • Find the 'AutoSSL' feature.
    • Ensure it's enabled for your domain. AutoSSL will automatically issue and renew free SSL certificates.
  3. Verify SSL Installation: Once AutoSSL has run, you can verify the SSL status of your domain in the 'SSL/TLS' status section.

This process will ensure your Node.js application runs over a secure HTTPS connection.

Maintenance and Updates

Best Practices for Updating Node.js Applications in cPanel

  1. Regular Updates: Keep your Node.js version and dependencies up-to-date.
  2. Backup: Always backup your application before performing updates.

Performance Monitoring and Tuning

  1. Utilize cPanel Metrics: Monitor resource usage through cPanel’s built-in metrics.
  2. Optimize Performance: Regularly review your application for potential performance enhancements, such as query optimization and code refactoring.

Performance Monitoring and Tuning

  • Utilize cPanel’s built-in metrics to monitor your application's performance.


Deploying a Node.js application with MySQL on using cPanel is streamlined and efficient, offering robust functionality and ease of management for developers.

Further Resources

Was this answer helpful?

« Back