Fast, flexible, clean deployment tool
DeployMaster is written in node.js, you should have latest stable version of node.
You can install DeployMaster with npm (as root)
npm install -g deploymaster..and you can run it! deploymaster
You can install DeployMaster with git, following commands:
git clone https://github.com/DeployMaster/DeployMaster.git DeployMaster
cd DeployMaster && npm installUsage: deploymaster <command> [options..]
command
init-host Create new hosting repo
start-host Start server for host repo
init-development Initialize DeployMaster development repo on this directory
config Set repo config
rm-repo Remove repo for this directory
repo-info Show repository information for this directory
track Track for all
status Show track status for all
push Push new/modified files to host repo
production Set production repo
password Set password for host repo
publish Publish from connected host repo to deployment repo
connect Connect this development repo to main repositorydeploymaster <command> --help
sudo deploymaster install-serviceYou can remove systemd service with;
sudo deploymaster remove-service..or you can install/remove for specific port;
sudo deploymaster install-service --port 5053
sudo deploymaster remove-service --port 5053mkdir /path/to/project_host
cd /path/to/project_host
deploymaster init-hostIf you did created a systemd service with "install-service" option, you should enter host directory before set it.
It is like this;
cd /var/deploymaster/deploymaster-5053-host"install-service" option creates host directories like /var/deploymaster/deploymaster-PORT-host
deploymaster password --set NEWPASSWORDEnable TLS
deploymaster config --key host.tls.use_tls --value trueDisable TLS
deploymaster config --key host.tls.use_tls --value falseSet RSA Private Key file
deploymaster config --key host.tls.key_file --value "/path/to/private.key"Set RSA Public Key (Cert) file
deploymaster config --key host.tls.cert_file --value "/path/to/public.crt"If you don't use systemd service, you can start hosting for any directory.
deploymaster start-hostor
deploymaster start-host --workdir /path/to/project_hostmkdir /path/to/project_dev
cd /path/to/project_dev
deploymaster init-developmentdeploymaster configAlso see
deploymaster config --helpdeploymaster connect --host 127.0.0.1:5053Enable TLS
deploymaster config --key remote.tls.use_tls --value trueDisable TLS
deploymaster config --key remote.tls.use_tls --value falseCreate production directory
mkdir /path/to/productionAdd production repo to developmen repo
deploymaster production --set production --dir /path/to/productionSet owner and group for production files (for POSIX)
deploymaster production --set production --dir /path/to/production --owner username --group groupnametouch test
echo "test file" >> test
deploymaster status --repo productionIf you are using TLS, you'll see this
Certificate fingerprint: 69:5B:97:20:D3:7B:56:08:8C:80:36:FE:6A:41:6F:A5:36:08:4B:E2
Do you trust it ?
(y)es (n)o (p)ermanently: If its ok, type "y" or "p" and press enter else type "n" and press enter
If you have new files;
deploymaster push --repo productiondeploymaster publish --repo production(New and modified files should be pushed.)
New and modified files come from pushed files to host directory.
If you have some changes and 100 new/modified files and pushed it.
When you did;
deploymaster push --repo production
deploymaster publish --production testingand after testing.. when you did;
deploymaster publish --production productionNew/modified 100 files come from host directory.
DeployMaster prefers Testing - Production approach.
Create .ignorelist.deploymaster file in development repo and production directory
It is like this
/config.php
/config/db.php
/temp
/staticThe main approach is two same ignorelists at development and production directories both.
But you might be want some specific ignored items for testing or production repos.
In development or production sides, DeployMaster will track files in all directories and sub-directories if they are not included in ignorelist.
If you are using only ignorelist in development or production side, DeployMaster will look for all files in other side..
If you think you can contribute to DeployMaster, clone, code, commit and create a pull request!
MIT