PHPackages                             bolt/simple-deploy - 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. [DevOps &amp; Deployment](/categories/devops)
4. /
5. bolt/simple-deploy

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

bolt/simple-deploy
==================

A simple tool to deploy a site build from a local workstation to a (S)FTP enabled host.

v1.0.0(8y ago)710.2k↓33.3%3[1 PRs](https://github.com/bolt/simple-deploy/pulls)MITPHP

Since Sep 30Pushed 7y ago13 watchersCompare

[ Source](https://github.com/bolt/simple-deploy)[ Packagist](https://packagist.org/packages/bolt/simple-deploy)[ RSS](/packages/bolt-simple-deploy/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (9)Versions (3)Used By (0)

Bolt Simple Deploy Tool
=======================

[](#bolt-simple-deploy-tool)

To use this tool, on your development machine **only** you can create a file named `.deploy.yml`.

Each key in the `.deploy.yml` represents a deployment target that can be uploaded to via either FTP or SFTP (secure FTP).

Every deployment configuration you add to `.deploy.yml` must set the `protocol`to either `ftp` or `sftp`, and an `options` array.

**NOTE:** If your host provides SFTP, it is the preferred upload method as it is both faster and more secure than FTP alone, and supports more functionality.

Command Usage
-------------

[](#command-usage)

```
    php app/nut setup:deploy [options]

```

### Arguments

[](#arguments)

ValueDescriptiontargetName of the deployment setting to use from .deploy.yml### Options

[](#options)

ValueDescription--checkOnly check the connection settings for a given deployment--editInteractively create or edit a deployment configuration### Example: Editing or creating a connection

[](#example-editing-or-creating-a-connection)

```
    php app/nut setup:deploy --edit production

```

### Example: Checking a connection

[](#example-checking-a-connection)

```
    php app/nut setup:deploy --check production

```

### Example: Running a deployment

[](#example-running-a-deployment)

```
    php app/nut setup:deploy production

```

Configuration File
------------------

[](#configuration-file)

Configuration is done in a `.deploy.yml` file in the site's root directory on your development environment, with the following format:

```
staging:
    protocol:
    options:
        host:
        root:
        username:
        …

```

### FTP Options

[](#ftp-options)

#### Options

[](#options-1)

KeyDescriptionhostDNS host name to upload torootThe root directory of the remote site. Can be an absolute path, or if missing a trailing `/` it will be assumed to be a subdirectory of the remote user's home directoryusernameUser name to login to the remote host withpassword(optional) Password to login to the remote host withport(optional) Port number to connect to if the target is not listening on the defaultssl(optional) Connect to the FTP target host over a secure SSL-FTP connectiontimeout(optional) Time in seconds to wait for a connection attempttransferMode(optional) The transfer mode. Must be either ASCII or BINARYutf8(optional) Set the connection to UTF-8 modepassive(optional) Force FTP to use "passive" modeignorePassiveAddress(optional) Ignore the IP address returned when setting up a passive connection. Useful if a server is behind a NAT device. Requires PHP &gt;= 5.6.18#### Example

[](#example)

```
staging:
    protocol: ftp
    options:
        host: example.com
        root: my-site
        username: deploy
        password: 'your password goes here'

```

**NOTE:** In the above example, the root directory is a subdirectory of the remote user's home directory called `my-site/`, e.g. `/home/deploy/my-site/`.

### SFTP Options

[](#sftp-options)

#### Options

[](#options-2)

KeyDescriptionhostDNS host name to upload torootThe root directory of the remote site. Can be an absolute path, or if missing a trailing `/` it will be assumed to be a subdirectory of the remote user's home directoryusernameUser name to login to the remote host withpassword(optional) Password to login to the remote host withprivateKey(optional) Full path to private key file to for key exchange if **not** using password authenticationuseAgent(optional) Set to `true` if using a private key, and you don't want to use the system SSH agentport(optional) Port number to connect to if the target is not listening on the defaulttimeout(optional) Time in seconds to wait for a connection attempthostFingerprint(optional) The public key fingerprint of the deployment target**NOTE:** Either a `password` or `privateKey` **must** be set.

#### Example: Password Login

[](#example-password-login)

```
production:
    protocol: sftp
    options:
        host: example.com
        username: deploy
        password: 'your password goes here'
        root: /var/www/sites/example.com

```

#### Example: Key-Based Login

[](#example-key-based-login)

```
production:
    protocol: sftp
    options:
        host: example.com
        username: deploy
        privateKey: /home/your_home_dir/.ssh/id_rsa
        root: /var/www/sites/example.com

```

### Setting Permissions

[](#setting-permissions)

You can control the permissions of **newly created** files and directories by adding a `permissions` key under `options`.

By default, Simple Deploy will set files to `0664` and directories to `0775`, but if you need less restricted permissions (not recommended) you can set them like:

```
    options:
        permissions:
            file: 0666
            dir: 0777

```

Of course more secure values are also possible and recommended.

### Editing

[](#editing)

A very simple editor is also available by adding the `--edit` option to the command.

```
php app/nut setup:deploy --edit

```

#### Example: Editing the configuration for the "production" target

[](#example-editing-the-configuration-for-the-production-target)

```
php app/nut setup:deploy --edit production

```

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity30

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 95% 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 ~209 days

Total

2

Last Release

2943d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a15c90b32e75c27fc63f79357a914b4caa7af5fdb69a2e150341515ddececf95?d=identicon)[Macintosh\_plus](/maintainers/Macintosh_plus)

![](https://avatars.githubusercontent.com/u/1835343?v=4)[Bob van de Vijver](/maintainers/bobvandevijver)[@bobvandevijver](https://github.com/bobvandevijver)

![](https://avatars.githubusercontent.com/u/3901745?v=4)[Tobias Feijten](/maintainers/tobias-93)[@tobias-93](https://github.com/tobias-93)

![](https://avatars.githubusercontent.com/u/1833361?v=4)[Bob den Otter](/maintainers/bobdenotter)[@bobdenotter](https://github.com/bobdenotter)

![](https://avatars.githubusercontent.com/u/5082?v=4)[Ross Riley](/maintainers/rossriley)[@rossriley](https://github.com/rossriley)

---

Top Contributors

[![GwendolenLynch](https://avatars.githubusercontent.com/u/1427081?v=4)](https://github.com/GwendolenLynch "GwendolenLynch (19 commits)")[![bobdenotter](https://avatars.githubusercontent.com/u/1833361?v=4)](https://github.com/bobdenotter "bobdenotter (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bolt-simple-deploy/health.svg)

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

###  Alternatives

[behat/behat

Scenario-oriented BDD framework for PHP

4.0k96.8M2.0k](/packages/behat-behat)[wsdltophp/packagegenerator

Generate hierarchical PHP classes based on a WSDL

4351.9M19](/packages/wsdltophp-packagegenerator)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[shopware/deployment-helper

Shopware deployment tools

19305.3k5](/packages/shopware-deployment-helper)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)

PHPackages © 2026

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