Skip to main content

Git, Node.js and Laravel in Plesk: a developer guide

Published on November 9, 2026 11 min read

Deploy from GitHub with Git, run a Node.js app, install Composer packages and manage Laravel in Plesk. Step by step, mostly without SSH.

Illustration: a woman next to a branch diagram with one orange node, a conveyor belt carrying packages to a server cabinet linked to a browser window showing a website, and a man holding a toolbox

Your LJPc hosting comes with four developer tools in Plesk: Git to deploy from GitHub, GitLab or Bitbucket, PHP Composer for your PHP dependencies, Node.js to run a Node.js app, and Laravel Toolkit to manage a Laravel application. You use them in your browser, and most tasks need no SSH access. This guide shows where to find each tool and how to get started.

New to Plesk? Start with the Plesk control panel guide. You open Plesk from the customer portal, see open Plesk from the customer portal.

Which developer tools does Plesk include?

Developer tools in Plesk at LJPc hosting and where to find them.
ToolWhat it doesWhere in Plesk
GitDeploys your code from GitHub, GitLab or Bitbucket to your site, automatically on every push if you likeYour domain card, Dashboard tab, Dev Tools: Git (or Get Started tab: Deploy using Git)
PHP ComposerInstalls and updates the packages in composer.jsonDev Tools: PHP Composer
Node.jsRuns a Node.js app, such as an Express server or an APIYour domain card, Get Started tab: Node.js
Laravel ToolkitInstalls, deploys and manages a Laravel application: Artisan, .env and maintenance modeLeft menu: Laravel (or Get Started tab: Laravel)

The tools you see depend on your hosting plan and the server your site runs on. Most plans include all four. If one is missing, create a support ticket and we will look into it with you.

The Get Started tab on a domain card in Plesk with the heading Create a website or application on this domain and the tiles Upload Files, LJPc Site Builder, Deploy using Git, WordPress, Import an App or Site, Laravel, Node.js and Joomla! Site

Deploy your website from GitHub, GitLab or Bitbucket

With the Git integration, Plesk pulls your code from your repository and puts the files in your website folder. You decide whether that happens automatically on every push or only when you click a button. For a private repository, Plesk gives you an SSH key that you add to the repository as a deploy key.

Step 1: connect your repository

  1. In Plesk, go to Websites & Domains and click Git under Dev Tools on your domain card.
  2. Click Add Repository. The Create repository panel opens with Remote repository already selected.
  3. Enter your repository address in Repository URL. Use the SSH format, for example git@github.com:yourname/yourdomain.git. Plesk then shows the Deploy key public part field with a key that starts with ssh-rsa.
  4. Copy that key and add it to your repository, see step 2. Do this before you continue: Plesk pulls the code as soon as it creates the repository.
  5. Under Deployment settings, choose a Deployment mode: Automatic (on every new commit), Manual (only when you click Deploy now) or Disabled (store the repository only). Deployment directory is set to /httpdocs, your website folder.
  6. Click Create. Plesk adds a card for your repository. If no branch is selected under Repository branch yet, choose the branch you want to go live, such as main.
The Create repository panel in Plesk with Remote repository selected under Website files source next to Local repository, the Repository URL field with git@github.com:jouwnaam/jouwdomein.git, Deploy key Default with the Add another deploy key link and the Deploy key public part field with a key starting with ssh-rsa

Step 2: add the deploy key to GitHub, GitLab or Bitbucket

Where to add the Plesk deploy key.
ServiceWhere
GitHubYour repository, Settings > Deploy keys > Add deploy key. Give it a title, paste it into Key and leave Allow write access unchecked.
GitLabYour project, Settings > Repository > Deploy keys.
BitbucketYour repository, Repository settings > Access keys.

A deploy key is read-only. Plesk uses it to fetch your code and cannot change anything in your repository.

Step 3: deploy automatically on every push

A webhook lets GitHub, GitLab or Bitbucket tell Plesk that new code is waiting.

  1. In Plesk, click the gear icon (Repository settings) on your repository card and copy the Webhook URL.
  2. In GitHub, go to Settings > Webhooks > Add webhook, paste the URL into Payload URL, keep the default push event and click Add webhook. GitLab and Bitbucket also list Webhooks in the repository settings.
  3. Push a small change and check Latest commits in Plesk to see your new commit.

Without a webhook, click Pull now on your repository card to fetch new commits. In Manual mode, you then publish them with Deploy now.

Run commands after each deployment

Enable post deployment actions lets you run commands after every deployment, one per line. They run in a restricted environment inside your hosting account with a limited set of programs, and that set differs per server. For PHP and npm packages, use the PHP Composer, Node.js and Laravel Toolkit buttons described below. If your front end needs a build step, build it on your own computer or in GitHub Actions and let Plesk deploy the ready-made files from a separate branch.

Install PHP packages with Composer

PHP Composer installs the packages listed in your project's composer.json.

  1. Upload your project, for example with Git or FTP.
  2. Click PHP Composer under Dev Tools on your domain card, then click Scan. Plesk searches your whole hosting account for composer.json.
  3. Click Install next to your project to install the packages as locked in composer.lock, or Update to update them to the newest versions composer.json allows.

Composer uses your site's PHP version. If your project needs a different version, change it first, see change the PHP version in Plesk.

Run a Node.js app in Plesk

You can run a Node.js app, such as an Express server, an API or a server-rendered Next.js or Nuxt site, on your domain. The web server starts your app and routes visitors to it.

  1. Upload your files with Git, FTP or the Plesk File Manager. Leave out the node_modules folder: Plesk installs it for you.
  2. On your domain card, open the Get Started tab and click Node.js. The Node.js on yourdomain.com page opens.
  3. Check the settings on the Dashboard tab. Click the pencil or folder icon next to a value to change it:
    • Node.js Version: the version your app needs. The versions on offer differ per server.
    • Package Manager: npm, yarn or pnpm. Plesk picks the one it detects in your project.
    • Application Root: the folder with your package.json, /httpdocs by default.
    • Document Root: the folder with static files such as images and CSS. Plesk recommends a subfolder of the Application Root, such as /httpdocs/public. This is the same setting as your website's document root.
    • Application Mode: production for your live site or development for testing. Your app reads it as NODE_ENV.
    • Application Startup File: the file that starts your app, app.js by default.
  4. Click Enable Node.js.
  5. Click NPM install (or Yarn install or pnpm install) to install the packages from package.json. If your app needs a build first, use Run script to run a script from package.json, such as build.
  6. Click Restart App after every change to your code or settings.
The Node.js on voorbeeld.nl page in Plesk with the Dashboard, Environment and Run Node.js commands tabs, the Enable Node.js and File Manager buttons, and the settings Status Disabled, Node.js Version 22.23.4, Package Manager npm, Document Root /httpdocs with a recommendation to use a subfolder such as public, Application Mode production, Application URL, Application Root /httpdocs and Application Startup File app.js

Set your own variables on the Environment tab. Put sensitive values such as passwords and API keys under Secrets: Plesk stores them encrypted and never shows them again. On the Run Node.js commands tab you run npm, yarn or pnpm commands in your app folder, no SSH needed.

App not starting? Check the Logs of your domain, see view error logs in Plesk. Disable Node.js stops the app and keeps your files and settings.

Host Laravel with Laravel Toolkit

Laravel Toolkit sets up a Laravel application on your site and gives you buttons for what you would otherwise do on the command line.

  1. In Plesk, click Laravel in the left menu, then Install Application. Select your domain under Choose domain.
  2. Choose Install from remote repository if your code is on GitHub, GitLab or Bitbucket, or Install Skeleton for a new, empty Laravel app. For a private repository, add the SSH public key shown as a deploy key, as described for Git above.
  3. Is your app already on the server? Set your domain's document root to the app's public folder first, for example /httpdocs/public, with the artisan file in the folder above it. Then click Scan in Laravel Toolkit.

Your app card then gives you, among other things:

  • the Artisan, Composer and Node.js tabs, where you run commands such as migrate or run build without SSH;
  • Environment variables (.env): edit your .env file with the Edit button;
  • Maintenance mode: visitors see a temporary page while you work; switch it off when you are done;
  • the Deployment tab: on each update, Laravel Toolkit puts your site in maintenance mode, pulls the new code, installs the Composer and npm packages and takes the site out of maintenance mode. Start it with the Deploy button, or automatically on every push by adding your app's Webhook URL to GitHub, GitLab or Bitbucket.

Run the Laravel scheduler

Your own deployment script, the Scheduled Tasks switch and the Queue in Laravel Toolkit only work when SSH access is enabled for your site. Without SSH, run the Laravel scheduler with a scheduled task in Plesk:

  1. On your domain card, click Scheduled Tasks under Dev Tools, then Add Task.
  2. Choose Run a PHP script, enter the path to artisan in Script path, for example httpdocs/artisan, and enter schedule:run in with arguments.
  3. Select your site's PHP version in Use PHP version, set Run to Cron style with * * * * * (every minute) and click OK.

Read more about scheduled tasks in set up cron jobs in Plesk. Using a queue? Have the scheduler start queue:work --stop-when-empty every minute, with withoutOverlapping() so only one worker runs at a time. If you need SSH access, see SSH access to your hosting.

What works without SSH?

Developer tools in Plesk with and without SSH access at LJPc hosting.
What you want to doWithout SSH
Deploy from GitHub, GitLab or Bitbucket, automatically with a webhookYes, with the Git integration
composer install or composer updateYes, with PHP Composer or Laravel Toolkit
Start a Node.js app, run npm install and package.json scriptsYes, with Node.js
Artisan commands, editing .env, maintenance modeYes, with Laravel Toolkit
The Laravel scheduler and a queueYes, with a scheduled task (see above)
The deployment script, Scheduled Tasks and Queue in Laravel ToolkitNo, these need SSH access
Typing your own commands on the serverNo, this needs SSH access

At LJPc hosting, SSH access works with a fixed IP address and an SSH key. Read how to request it in SSH access to your hosting.

What LJPc hosting takes care of

Git, PHP Composer, Node.js and Laravel Toolkit are ready on all our Plesk servers, with several Node.js versions to choose from on every server. Open Plesk from the customer portal and start right away. We back up your website and databases every night. If a deployment goes wrong, we can restore an earlier night's version on request. See hosting backups and restores for how that works.

Troubleshooting

Common problems with Git, Node.js and Laravel in Plesk.
What you seeWhat to do
Plesk cannot pull your repositoryCheck that the address uses the SSH format and that the Plesk deploy key is added to your repository. Then click Pull now.
A push does not reach your siteClick the gear icon on your repository card and check that Deployment mode is Automatic and that the Webhook URL matches the one in GitHub, GitLab or Bitbucket. In GitHub, Recent Deliveries on the webhook shows whether the call arrived.
The commit is in Plesk, but the change is not on your siteCheck that the right branch is selected under Repository branch and, with the gear icon, which folder Plesk deploys to (Deployment directory).
Your Node.js app shows an error pageCheck the startup file name and the Node.js version, click Restart App and read the message in Logs.
composer install fails on the PHP versionSwitch your site to the PHP version your project requires, see change the PHP version in Plesk.
Git, Node.js or Laravel is missing in PleskCreate a support ticket and we will look into it with you.

Frequently asked questions

Do I need SSH for Git, Node.js or Laravel in Plesk?

For most tasks, no. Deploying from GitHub, GitLab or Bitbucket, composer install, npm install, Artisan commands and editing your .env file all work in Plesk in your browser. Only the custom deployment script, the Scheduled Tasks switch and the queue in Laravel Toolkit need SSH access. At LJPc hosting, SSH access works with a fixed IP address and an SSH key.

Can I deploy from a private GitHub repository?

Yes. Enter your repository address in Plesk in SSH format, for example git@github.com:yourname/yourdomain.git. Plesk then shows a deploy key. Add it in GitHub under Settings > Deploy keys without write access, then create the repository in Plesk.

How do I make my site update automatically after a git push?

Set Deployment mode to Automatic and copy the Webhook URL from your repository settings in Plesk (the gear icon). Paste it in GitHub under Settings > Webhooks > Add webhook. On every push, Plesk pulls the new code and publishes the files.

Which Node.js versions can I use?

That depends on the server: every Plesk server has several versions. In Plesk, open Node.js and click the version next to Node.js Version to see them. If the version you need is not listed, create a support ticket.

How do I run the Laravel scheduler without SSH?

In Plesk, add a Scheduled Task of the type Run a PHP script with the path httpdocs/artisan (or wherever your artisan file is) and the argument schedule:run. Set it to Cron style with * * * * * so the scheduler runs every minute.

Why can't I find Node.js or Laravel in Plesk?

Node.js and Laravel are on the Get Started tab of your domain, and Laravel is also in the left menu. If they are not there, they are not enabled for your plan or server. Create a support ticket and we will look into it with you.

Prefer to talk to someone?

We are also happy to answer your questions personally. Schedule a free consultation or call us directly. We are glad to think along with you.

Stay up to date with recent developments! Subscribe and receive our newsletter Signing up...