Archived Repository This code is no longer maintained. Feel free to fork it, but use it at your own risks. |
gaudi
This project is discontinued. Read about why here.
gaudi is a generator of architecture written in Go and using Docker. You can use it to start any type of application, and link them together without knowledge of Docker or system configuration. Using Go, gaudi can build and start your applications in parallel depending on their dependencies.
Check gaudi's website and follows @GaudiBuilder for more information.
Basic Usage
Describe any architecture with a simple YAML file (called .gaudi.yml
). For instance, for a PHP+MySQL combo:
applications:
front1:
type: apache
links: [app]
volumes:
.: /var/www
custom:
fastCgi: app
ports:
8080: 8080
app:
type: php-fpm
links: [db]
ports:
9000: 9000
volumes:
.: /var/www
db:
type: mysql
ports:
3306: 3306
Start this environment (with sudo privileges):
gaudi
gaudi will try to find a .gaudi.yml
file in the current folder, and start each application simultaneously, or sequentially if they depend on each other.
Installation
gaudi requires Docker to run.
OSX / Windows: Using Vagrant
The Cethy/vagrant-gaudi repository describes how to install gaudi with Vagrant.
Debian & Ubuntu
wget -O - http://gaudi.io/apt/gaudi.gpg.key | sudo apt-key add -
echo "deb http://gaudi.io/apt/ precise main" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install gaudi
Other linux systems
On other system you need to install Go 1.2 to install gaudi.
go get github.com/marmelab/gaudi
Check that your PATH
includes $GOPATH/bin
:
export PATH=$GOPATH/bin:/$PATH
Via Puppet
A puppet module is available to install gaudi.
The gaudi
application starts containers with Docker's commands which requires sudo privileges.
Make sure that the GOPATH
and GOROOT
environment variables are correctly set for the root
user (or other user with root privileges).
How Does It Work?
gaudi uses Docker to start all applications in a specific container.
It builds Docker files and specific configuration files from different templates.
All templates are listed in the templates/
folder, one for each application type.
Examples
You can find an example of how to start a Symfony application in the wiki.
Another examples can be found in the examples
folder.
Options
See gaudi options.
Configuration
Check How to configure gaudi to build your environment
Types
See all type of applications supported.
Binaries
gaudi can also runs binaries in the current folder.
A binary is not always attached to an application so gaudi allows to configure them in a different field binaries
.
See all type of binaries supported.
Build the debian package
Create a gpg key
gpg --gen-key
ls / -R
gpg --armor --export [email protected] --output gaudi.gpg.key
Run makefile
make apt
Contributing
Your feedback about the usage of gaudi in your specific context is valuable, don't hesitate to open GitHub Issues for any problem or question you may have.
All contributions are welcome. New applications or options should be tested with go unit test tool.
License
gaudi is licensed under the MIT Licence, courtesy of marmelab.