Skip to content

Gys/deployit

 
 

Repository files navigation

alt text

Deploy It: the command-line toolkit for fast apps deploying

Deploy It is an open-source command-line toolkit and daemon in one application, which allows you to deploy applications to server.

Deploy It fetches code from current directory, request or repo, build it and deploy it to server. Deploy It uses powerful containers, that means that your app will be run anywhere, from your development environment on your laptop to any large scale cloud hosting. You can run deploy it daemon on the host where you want to deploy your applications (it can be local or remote), run CLI with this host and your applications will be deployed on specified host.

This project has Roadmap, feel free to offer your features.

Look at our Changelog to see project progress!

We are actively searching for contributors! If you want to help our project and to make developers life easier, please read our Contibuting guideliness.

We have benefits for active contributors!

alt text


Table of contents

  1. Key features
  2. Prerequisites
  3. How to install
  4. Current CLI commands
  5. Help
  6. Maintainers

Key features

  1. Fast application deploying to any server
  2. Easy application sharing
  3. Easy application management
  4. Deploying application with url/hub (like docker hub)
  5. Deploying scheduling
  6. Deploying services like redis, rabbitmq, mysql, etc.

Prerequisites

CLI:

  • Go 1.6 or higher
  • Git

Daemon:

  • Docker
  • Go 1.6 or higher
  • Git

How to install

  1. Download Deploy it
$ git clone git@github.com:deployithq/deployit.git
$ cd deployit
$ make build
  1. Start daemon on host, where you want to deploy your apps
$ sudo deploy daemon
  1. Clone sources and run $ deploy it command while in sources directory
$ git clone https://github.com/<username>/<repo>
$ cd <repo>
$ deploy it --host localhost --port 3000 --tag latest

Current CLI commands

Daemon

Install daemon on the host, where you want to deploy your apps

Run $ sudo deploy daemon

Daemon flags:

  • [--debug] Shows you debug logs
  • [--port] Port, which daemon will listen
  • [--docker-uri] Docker daemon adress
  • [--docker-cert] Docker client certificate
  • [--docker-ca] Docker certificate authority that signed the registry certificate
  • [--docker-key] Docker client key

It:

  1. Go to folder with your application source code
  2. Run $ deploy it --host localhost --port 3000 --tag latest --log

What magic is behind $ deploy it command:

  1. CLI scans all files
  2. CLI creates hash table for scanned files
  3. CLI packs needed files into tar.gz
  4. CLI sends all files to daemon via HTTP
  5. DAEMON unpacks tar.gz
  6. DAEMON builds unpacked sources
  7. DAEMON deploys app to host where daemon is running

Deploy config

If you want to deploy your application with specific configurations, you can create "deployit.yaml" file, as shown below:

env: 
- DEBUG=*
- HOST=localhost
- PORT=3003
memory: 256
ports: 
- 3000
- 9000
volumes:
- /data:/data
- /opt:/opt

Configs:

  • env: Environments for your application
  • memory: Memory limit
  • ports: App ports
  • volumes: Host storage : App storage

This config is optional. Use it only if you want.

App start/stop/restart/remove

  1. Go to folder with your application source code
  2. Run $ deploy app --host localhost --port 3000 start

Common flags

These flags are suitable for all commands except daemon.

Deploy it flags:

  • [--debug] Shows you debug logs
  • [--tag] Version of your app, examples: "latest", "master", "0.3", "1.9.9", etc.
  • [--host] Adress of your host, where daemon is running
  • [--port] Port of daemon host
  • [--ssl] HTTPS mode if your daemon uses ssl
  • [--log] Show build logs

Future commands

  • deploy git
  • deploy hub
  • deploy app logs
  • deploy it at 4:00 pm for 2 hours
  • deploy redis/mysql/mongodb/rabbitmq ...

Help

All information about Deploy It is available via following commands:

Brief info about all commands

$ deploy --help

Deploy it command

$ deploy it --help

Daemon

$ deploy daemon --help

Help about other commands:

$ deploy <command> --help

Maintainers

We have separated maintainers page here: MAINTAINERS.md

Authors

Alexander: https://github.com/undassa

Konstantin: https://github.com/unloop

Bogdan: https://github.com/gofort

About

Command-line toolkit to deploy apps -

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.8%
  • Makefile 0.2%