Deploying Custom Applications (Laravel, Node.js, Git) on Shared Hosting
Introduction
This guide explains how to deploy custom web applications on shared hosting. It is designed for users who need to set up and run applications that are not pre-installed (such as WordPress) and require command-line access or manual configurations.
✅ What This Guide Covers
This guide applies to PHP-based and Node.js-based applications that can run within the limits of a shared hosting environment. This includes:
Laravel and Other PHP Frameworks
Basic Git Deployments (if Git is available on your plan)
Static and Frontend Applications (React, Vue, Angular with static builds)
Node.js Applications (if supported via cPanel)
❌ What This Guide Does NOT Cover
This guide does not apply to applications that require root access, such as:
Custom Server Software (e.g., Docker, Kubernetes, Nginx custom setups)
System-level Services (Supervisor, Redis, Queue Workers without cPanel support)
Applications Needing Daemon Processes (long-running background tasks requiring root)
High-Resource Applications that exceed shared hosting limits
For such applications, upgrading to a VPS or dedicated server is strongly recommended.
1. Retrieve Your SSH Credentials
Check your inbox for the "New Account Information" email that was sent upon registration. This includes your server’s hostname/IP address, your cPanel username, and password.
If you can’t find the email, log in to your hosting dashboard, click on your profile icon (top-right corner), and select “Email History” to find a copy of the email.
2. Access the Server via SSH
Choose an SSH Client
Mac/Linux: Built-in Terminal
Connect to Your Server
For PuTTY (Windows):
Open PuTTY.
Enter your server’s IP address or hostname in the “Host Name” field.
Click Open to start the session.
Enter your credentials when prompted.
For Mac/Linux Terminal:
ssh username@your_server_ip
Replace username
and your_server_ip
with the details from your email.
Enter your password when prompted.
Note: Since your shell is Jailed Shell, you’ll be restricted to your home directory but can still run most necessary commands.
3. Navigate to Your Laravel Project Directory
cd public_html
(Adjust if your Laravel project is in a different folder.)
4. Run Composer and NPM Commands
Install Composer Dependencies
composer install
Ensure that your composer.json file is in the current directory.
Install Node Dependencies
Ensure you’ve set up a Node version in cPanel → Software → Setup Node.js App before running npm commands.
npm install
npm run build
This will install and compile any front-end assets needed by your Laravel project.
5. Run Artisan Commands
php artisan migrate --seed
php artisan storage:link
These commands will set up your database tables and link the storage folder properly.
6. Configure Permissions
By default, if PHP runs as your user (suPHP/LiteSpeed), you typically only need:
755
for folders644
for files
Ensure storage
and bootstrap/cache
are writable if Laravel requires it:
chmod -R 755 storage/ bootstrap/cache/
chown -R youruser:youruser storage/ bootstrap/cache/
(Adjust youruser accordingly if your environment differs.)
7. SSL & Supervisor
SSL (AutoSSL in cPanel)
Use AutoSSL via cPanel instead of manually setting up Certbot.
Supervisor for Queue Workers
Supervisor requires root access and is not available on shared hosting. If you need queue workers or other persistent processes, consider upgrading to a VPS.
8. A Note on Support Scope
Since this is a custom Laravel/Node.js deployment, it falls outside our standard support scope. Our team focuses on cPanel basics and common applications like WordPress/WooCommerce.
For advanced Laravel or Node.js troubleshooting, we recommend:
Consulting a developer
Upgrading to a VPS for full control over your environment
If you have any questions about cPanel basics or run into issues unrelated to custom code deployments, we’ll be glad to assist.
Last updated
Was this helpful?