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!
- Fast application deploying to any server
- Easy application sharing
- Easy application management
- Deploying application with url/hub (like docker hub)
- Deploying scheduling
- Deploying services like redis, rabbitmq, mysql, etc.
- Go 1.6 or higher
- Git
- Docker
- Go 1.6 or higher
- Git
- Download Deploy it
$ git clone git@github.com:deployithq/deployit.git
$ cd deployit
$ make build
- Start daemon on host, where you want to deploy your apps
$ sudo deploy daemon
- 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
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
- Go to folder with your application source code
- Run
$ deploy it --host localhost --port 3000 --tag latest --log
What magic is behind $ deploy it
command:
- CLI scans all files
- CLI creates hash table for scanned files
- CLI packs needed files into tar.gz
- CLI sends all files to daemon via HTTP
- DAEMON unpacks tar.gz
- DAEMON builds unpacked sources
- DAEMON deploys app to host where daemon is running
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.
- Go to folder with your application source code
- Run
$ deploy app --host localhost --port 3000 start
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
- deploy git
- deploy hub
- deploy app logs
- deploy it at 4:00 pm for 2 hours
- deploy redis/mysql/mongodb/rabbitmq ...
All information about Deploy It is available via following commands:
$ deploy --help
$ deploy it --help
$ deploy daemon --help
$ deploy <command> --help
We have separated maintainers page here: MAINTAINERS.md
Alexander: https://github.com/undassa
Konstantin: https://github.com/unloop
Bogdan: https://github.com/gofort