PHPackages                             simple-scripts/cloudways-deploy-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. simple-scripts/cloudways-deploy-manager

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

simple-scripts/cloudways-deploy-manager
=======================================

Cloudways Deploy Manager

v1.3.0(4mo ago)138[2 PRs](https://github.com/simple-scripts/CloudwaysDeployManager/pulls)MITPHPPHP ^8.1CI passing

Since Oct 8Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/simple-scripts/CloudwaysDeployManager)[ Packagist](https://packagist.org/packages/simple-scripts/cloudways-deploy-manager)[ Docs](https://github.com/simple-scripts/clouddeploymanager)[ GitHub Sponsors](https://github.com/SimpleScripts)[ RSS](/packages/simple-scripts-cloudways-deploy-manager/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (14)Versions (10)Used By (0)

Cloudways Deploy Manager
========================

[](#cloudways-deploy-manager)

A Laravel 10+ package that is intended to only run on a developer local machine. It will create a local DB tables to store your Cloudways Server and App credentials.

Quick overview commands:
------------------------

[](#quick-overview-commands)

- `cw:deploy:laravel` Run all commands to deploy a Laravel app on Cloudways via SSH
- [cw:manager:composer-auth](#update-the-composerauthjson-creds) Upload/update the remote ~/.composer/auth.json file
- [cw:manager:export](#server-credentials) Export saved CloudServers to JSON file, excluding local
- [cw:manager:import](#server-credentials) Import CloudServers from database/JSON/servers.json file
- [cw:manager:ssh](#ssh-keys) Upload SSH Key as defined in the .env

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require simple-scripts/cloudways-deploy-manager
```

You can publish and run the migrations with:

```
php artisan vendor:publish --tag="clouddeploymanager-migrations"
php artisan migrate
```

You can publish the config file with:

```
php artisan vendor:publish --tag="clouddeploymanager-config"
```

ENV
---

[](#env)

Add to your .env:

For package:

```
CLOUDWAYS_EMAIL=
CLOUDWAYS_API_KEY=
```

Cloudways Deploy manager settings:

```
# Set this to something like: name_cloud_deploy_manager
CW_DM_APP_CREDENTIALS_USERNAME=name_cloud_deploy_manager
# SSH Keys to be able to log into Cloudways servers
# This is required to run related commands
# If you have not set up a ssh key for Cloudways see: https://support.cloudways.com/en/articles/5120579-why-should-you-set-up-ssh-keys#h_4163feed5d
CW_DM_SSH_KEY_PUBLIC_PATH="C:\\Users\\username\\.ssh\\key.pub"
CW_DM_SSH_PUBLIC_KEY="ssh-rsa ***"
CW_DM_CW_DM_SSH_PRIVATE_KEY_PATH="C:\\Users\\username\\.ssh\\cloudways_putty.ppk"
CW_DM_SSH_KEY_PPK_PRIVATE_PATH="C:\\Users\\username\\.ssh\\cloudways_putty.ppk"
# Name of uploaded SSK key and will be visible in Cloudways
# ex: MyName Dev Laptop
CW_DM_SSH_KEY_UPLOADED_NAME="MyName Dev Laptop"

# Windows only:
CW_DM_SSH_USE_PLINK=true
```

Event
-----

[](#event)

- \\SimpleScripts\\CloudDeployManager\\Events\\CloudwaysDeployLaravelPrependRemoteSsh - Listen to this event and add more custom commands to run for your Laravel Deploy

Project set up
--------------

[](#project-set-up)

A package is intended to only run on a developer local machine.

Install via composer on a Laravel 10+ project.

### Server credentials

[](#server-credentials)

- New/Manually create with a DB tool like HeidiSQL or Sequel
    - Server: create a new record in the cloudways\_servers table
        - Fill in the needed fields by finding values in the Cloudways Server UI page
        - All data can be found on the cloudways server page
            - Do not fill in the cloudways\_servers.ssh\_key\_id
    - Apps: create a new record in the cloudways\_apps table, you first need to add in a server record as noted above
        - Leave the cloudways\_apps.cred\_id NULL
        - Find other fields in the Cloudways App UI page

### SSH Keys

[](#ssh-keys)

SSH Keys are needed for every server application to run composer install and other various commands. Follow the steps below to create them for every server application.

- Setup your local ssh key as n
- You will need to create one local .ssh key
    - on windows install Putty and use option 3:
    - Linux/Mac:
        - run `ssh-keygen -t rsa` and save to your preferred location
- Now set the correct path values in the .env for your generated keys
- Run the following command to push your generated keys to the cloudways servers in your DB:

```
php artisan cw:manager:ssh
```

If it is your first time to connect to a server via an SSH Key you will need to confirm the keys before you can run update commands. If you ran the `php artisan cw:manager:ssh` command it should have created the \_ssh/confirm.sh file. You can run this from your terminal like so: `sh _ssh/confirm.sh` and then you will need to confirm each one. Windows/Plink also will ask you to hit enter to continue. Now you will have a valid ssh session, but you will want to kill it, type exit and then press enter. It will then go to the next one in the list until all have been completed.

Now you are ready to run some commands!

### Update the ~/.composer/auth.json creds

[](#update-the-composerauthjson-creds)

If you use private packages or need to have an auth.json file for your Apps, you can automate this to many servers. Github API keys expire after a time and need to be updated. Create a valid file: database/JSON/auth.json with a valid Github API key. It will

```
{
    "github-oauth": {
        "github.com": "ghp_..."
    },
    "http-basic": {
        "your-private-satis.com": {
            "username": "....",
            "password": "...."
        }
    }
}
```

Then run: `php artisan cw:manager:composer-auth` see the help for more info

Development
-----------

[](#development)

This project is using the [`spatie/ssh`](https://github.com/spatie/ssh) and [`rockbuzz/lara-cwapi`](https://github.com/rockbuzz/lara-cwapi) packages. The Ssh package runs composer install commands and the lara-cwapi is the basic package to connect to the Cloudways API.

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance83

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 72.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~74 days

Recently: every ~109 days

Total

7

Last Release

140d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ca034e224ec22e3cff57abaadbb6175a84648f2e0af2c27f9092f202eee2b463?d=identicon)[jgulledge19](/maintainers/jgulledge19)

---

Top Contributors

[![jgulledge19](https://avatars.githubusercontent.com/u/671767?v=4)](https://github.com/jgulledge19 "jgulledge19 (21 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (7 commits)")[![CalebSamland](https://avatars.githubusercontent.com/u/86679848?v=4)](https://github.com/CalebSamland "CalebSamland (1 commits)")

---

Tags

laravelcloudways deploy manager

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/simple-scripts-cloudways-deploy-manager/health.svg)

```
[![Health](https://phpackages.com/badges/simple-scripts-cloudways-deploy-manager/health.svg)](https://phpackages.com/packages/simple-scripts-cloudways-deploy-manager)
```

###  Alternatives

[spatie/laravel-data

Create unified resources and data transfer objects

1.8k28.9M627](/packages/spatie-laravel-data)[spatie/laravel-livewire-wizard

Build wizards using Livewire

4061.0M4](/packages/spatie-laravel-livewire-wizard)[hirethunk/verbs

An event sourcing package that feels nice.

513162.9k6](/packages/hirethunk-verbs)[worksome/exchange

Check Exchange Rates for any currency in Laravel.

123544.7k](/packages/worksome-exchange)[ralphjsmit/livewire-urls

Get the previous and current url in Livewire.

82270.3k4](/packages/ralphjsmit-livewire-urls)[hydrat/filament-table-layout-toggle

Filament plugin adding a toggle button to tables, allowing user to switch between Grid and Table layouts.

6292.3k1](/packages/hydrat-filament-table-layout-toggle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
