/deployer

Laravel Zero Downtime 🚧 Work in progress

Primary LanguageRustMIT LicenseMIT

Deployer

deployer crate test build issues Downloads MIT License deployer documentation dependency status

🚧 Work in progress

A simple Laravel deployer for your projects.

Example

Using the binary

$ cargo install deployer
$ deployer deployer.yml

Using the crate

Add the following dependency to the Cargo.toml file:

[dependencies]
deployer = "0.0.2"

And then get started in your main.rs:

use deployer::Deployer;

fn main() {
	
	let config = "deployer.yml";
	
	let mut deployer = Deployer::new();
	deployer.configure(config);
	deployer.deploy();
	
}
# Dev
$ cargo run -- deployer.yml

# Build
$ cargo build
$ target/release/deployer deployer.yml

# Test
$ cargo test

Configuration file deployer.yml

---
repository: git@github.com:samirdjelal/deployer.git
hostname: 127.0.0.1:22
username: root
password: password
deploy_path: /opt/deployer
keep_releases: 5
http_user: daemon
php_path:

shared_files:
  - .env

shared_dirs:
  - storage

writable_use_sudo: false
writable_recursive: true
writable_chmod_mode: 0777
writable_dirs:
  - bootstrap/cache
  - storage
  - storage/app
  - storage/app/public
  - storage/framework
  - storage/framework/cache
  - storage/framework/sessions
  - storage/framework/views
  - storage/logs

pre_deploy_commands:
  - ls -lah /opt/lampp/xampp
  - echo "Hello World" > /root/file.txt
  - cat /root/file.txt

post_deploy_commands:
  - echo "Good bye!"

License

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in deployer by you, shall be licensed as MIT, without any additional terms or conditions.