A bridge across website instances/environments to simplify the exchange of database and files not under SCM. This was first written having Drupal in mind, though it works for other frameworks as well.
Visit https://aklump.github.io/loft_deploy for full documentation.
Before you begin, to save from lot's of password entries, you should ensure key-based authentication is working between server instances.
Add to your codebase:
$ cd /path/to/local/app
$ composer require aklump/loft-deploy
Add the following to .gitignore for your project.
.loft_deploy/
Now deploy across environments as you would any other change.
On your production server do the following to configure it:
$ cd /path/to/production/app
$ ./vendor/bin/loft_deploy.sh init prod
$ ./vendor/bin/loft_deploy.sh config
$ ./vendor/bin/loft_deploy.sh configtest
$ ./vendor/bin/loft_deploy.sh config-export
On your local machine, configure it, adding the snippet generated in the previous step via config-export
.
$ cd /path/to/local/app
$ ./vendor/bin/loft_deploy.sh init dev
$ ./vendor/bin/loft_deploy.sh config
$ ./vendor/bin/loft_deploy.sh configtest
Now pull your non SCM assets from production to local:
$ ./vendor/bin/loft_deploy.sh pull
ldp
commandTo make working with Loft Deploy easier you should install the ldp
command,
which allows you to execute vendor/bin/loft_deploy.sh from any directory
within your project.
After Composer installing aklump/loft-deploy, place a symlink to ./vendor/bin/ldp.sh somewhere $PATH can find it, e.g.,
$ cd ~/bin
$ ln -s /path/to/app/vendor/bin/ldp.sh ldp
Now use ldp
as the command to execute loft_deploy.sh from within any
directory in your project, e.g.,
$ cd /path/to/app/
$ ldp info
$ cd /path/to/app/web/modules
$ ldp info
No problem because ldp.sh works across all versions of Loft Deploy, the symlink to project A will work for project B and C. That is to say, you need only install one symlink for many projects, even if those many projects have different versions of Loft Deploy installed.
The configuration file may be edited in one of two ways:
$ ldp config
(using $EDITOR
)Be sure to test your configuration until you see no warnings $ ldp configtest
.
See also configuration
See inner documentation for how to use.
If you find this project useful... please consider making a donation.
In the Loft Studios
Aaron Klump - Web Developer
sourcecode@intheloftstudios.com
360.690.6432
PO Box 29294 Bellingham, WA 98228-1294