amhappy is all about making QA, dev, and designers lives happier by making it easier to spin up sandboxes of web applications. THIS IS Proof Of Concept quality code!
- Container: A packaged "machine" as defined by a Dockerfile
- Application: A group of Containers, defined in a fig.yml or a docker-compose.yml, that allow a system to operate. For example Mysql+Apache/PHP(dependencies)+Code containers is an Application
- Happinstance: It is a "Happy Instance" of an application with a specific configuration. Things like port, specific branch and VHOST are all part of a Happinstance's configuration.
- Happstore: Our repository of configured applications on Git.(WIP, currently a directory)
amhappy is a REST-ish webserver written in Pyramid using Cornice on the backend with an AngularJS based web UI.
(WIP) To achieve this magical land of happiness, some initial setup is required.
- Install Docker
- Install CouchDB(either standalone or via an image)
- Pull and run the jwilder/nginx-proxy image for vhost routing support
- Pull a fig repository
- Make adjustments to this application's development.ini to point at your fig repository checkout.
- Start it up!
The use case flow should be pretty straightforward
The main page is the dashboard. It allows you to see Happinstances that have been created, their statuses and links to the detail page. Also there will be a link to the virtualhost, if applicable.
The create page has a dropdown of all of the applications in the Happstore. When one selected it loads the .yaml file for it and turns it to JSON and displays it for the user. It also looks for Environment keys and puts them below the config along with a form to customize them. Once all selections, plus the Happinstance name, are filled out click submit to create the Happinstance. The app will then take you back to the dashboard.