All Projects → ChrisMcKenzie → dropship

ChrisMcKenzie / dropship

Licence: Apache-2.0 license
Super simple deployment tool

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
HCL
1544 projects

Projects that are alternatives of or similar to dropship

Rocket
Automated software delivery as fast and easy as possible 🚀
Stars: ✭ 217 (+250%)
Mutual labels:  deployment, cd, deploy
Shipit
Universal automation and deployment tool ⛵️
Stars: ✭ 5,249 (+8366.13%)
Mutual labels:  deployment, deploy, shipit
Rsync Deployments
GitHub Action for deploying code via rsync over ssh
Stars: ✭ 59 (-4.84%)
Mutual labels:  deployment, deploy
The forge
Our groundbreaking, lightning fast PWA CLI tool
Stars: ✭ 70 (+12.9%)
Mutual labels:  deployment, deploy
Terraform Vsphere Kubespray
Deploy a Kubernetes HA cluster on VMware vSphere
Stars: ✭ 141 (+127.42%)
Mutual labels:  deployment, hcl
Flubucore
A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Stars: ✭ 695 (+1020.97%)
Mutual labels:  deployment, deploy
Lambda Deployment Example
Automated Lambda Deployments with Terraform & CodePipeline
Stars: ✭ 25 (-59.68%)
Mutual labels:  deployment, hcl
Github Pages Deploy Action
Automatically deploy your project to GitHub Pages using GitHub Actions. This action can be configured to push your production-ready code into any branch you'd like.
Stars: ✭ 2,507 (+3943.55%)
Mutual labels:  deployment, deploy
Cipi
An Open Source Control Panel for your Cloud! Deploy and manage LEMP apps in one click!
Stars: ✭ 376 (+506.45%)
Mutual labels:  deployment, deploy
Meli
Platform for deploying static sites and frontend applications easily. Automatic SSL, deploy previews, reverse proxy, and more.
Stars: ✭ 2,125 (+3327.42%)
Mutual labels:  deployment, deploy
Slashdeploy
GitHub Deployments for Slack
Stars: ✭ 150 (+141.94%)
Mutual labels:  deployment, cd
Deploy
Ansible role to deploy scripting applications like PHP, Python, Ruby, etc. in a capistrano style
Stars: ✭ 2,141 (+3353.23%)
Mutual labels:  deployment, deploy
Git Deploy
Php Script for Auto-Pull in server (Using WebHook from GitLab, GitHub and Bitbucket)
Stars: ✭ 495 (+698.39%)
Mutual labels:  deployment, deploy
Deployer
Deployer is a free and open source deployment tool.
Stars: ✭ 854 (+1277.42%)
Mutual labels:  deployment, deploy
Easy Deploy Bundle
The easiest way to deploy your Symfony applications
Stars: ✭ 446 (+619.35%)
Mutual labels:  deployment, deploy
Deployer
A deployment tool written in PHP with support for popular frameworks out of the box
Stars: ✭ 8,928 (+14300%)
Mutual labels:  deployment, deploy
Adapt
ReactJS for your infrastructure. Create and deploy full-stack apps to any infrastructure using the power of React.
Stars: ✭ 317 (+411.29%)
Mutual labels:  deployment, deploy
Kubernetes Digitalocean Terraform
📋 🌊 🌎 Setup a simple Kubernetes cluster in Digital Ocean using Terraform
Stars: ✭ 324 (+422.58%)
Mutual labels:  deployment, hcl
Terraform With Circleci Example
This is an example of automatic deployments of your infrastructure using terraform and CircleCI 2.0 workflows
Stars: ✭ 142 (+129.03%)
Mutual labels:  deployment, hcl
Cqtdeployer
This project is used to deploy applications written using QML, qt or other С / С++ frameworks.
Stars: ✭ 225 (+262.9%)
Mutual labels:  deployment, deploy

Dropship wercker status Download Join the chat at https://gitter.im/ChrisMcKenzie/dropship

Dropship is a simple tool for installing and updating artifacts from a CDN.

Features

  • Automatically performs md5sum checks of artifact that is on server and remote and will download automatically
  • Distributed sequential updates
  • Multiple Artifact Repository Support

Installation

To install on ubuntu do the following:

echo "deb http://dl.bintray.com/chrismckenzie/deb trusty main" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install dropship

Configuration

To setup dropship you will need to add/update the following files.

First you will need to tell dropship how to connect to your artifact repository so you will need to uncomment out the desired repo and fill in its options.

/etc/dropship.d/dropship.hcl

# vim: set ft=hcl :
# Location that service config will be read from
service_path = "/etc/dropship.d/services"

# Rackspace Repo Config
# =====================
repo "rackspace" {
  user = "<your-rackspace-user>"
  key = "<your-rackspace-key>"
  region = "<rackspace-region>"
}

repo "s3" {
  accessKey = "<your-s3-key>"
  secret = "<your-s3-secret>"
  name = "us-west-1"
  endpoint = "https://s3-us-west-1.amazonaws.com"
}

You will then have to create a file in the services directory of dropship. this will tell dropship how to check and install you artifact. You can have multiple service definitions in one file or multiple files.

/etc/dropship.d/services/my-service.hcl

# vim: set ft=hcl :
service "my-service" {
  # Use a semaphore to update one machine at a time
  sequentialUpdates = true

  # Check for updates every 10s
  checkInterval = "10s"

  # Run this command before update starts
  before "script" {
    command = "initctl my-service stop"
  }

  # Artifact defines what repository to use (rackspace) and where 
  # your artifact live on that repository
  artifact "rackspace" {
    bucket = "my-container"
    path = "my-service.tar.gz"
    destination = "./test/dest"
  }

  # After successful update send an event to graphite
  # this allows you to show deploy annotations in tools like grafana
  # 
  # The graphite hook will automatically add this services name into the 
  # graphite tags. You also have access to all of the services meta data
  # like Name, "current hash", hostname.
  after "graphite-event" {
    host = "http://<my-graphite-server>"
    tags = "deployment"
    what = "deployed to {{.Name}} on {{.Hostname}}"
    data = "{{.Hash}}"
  }

  # Run this command after the update finishes
  after "script" {
    command = "initctl my-service start"
  }
}

Building

  • install go 1.5.1
  • clone repo
  • run go get ./...
  • run go build -o dropship main.go

Roadmap

  • Hooks
  • Support for Amazon S3
  • Support for different file types docker (currently only tar.gz, and simple files)
  • Reporting system
  • Redis, etcd for semaphore
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].