Mobilis
Mobilis is a ruby app for generating linked sets of docker containers, for rapid prototyping of arbitrary project architecture.
It has some smarts built in to make common things simple, and will allow you to further customize the output for more complex needs.
Installation
$ gem install mobilis
Usage
$ mobilis
This will start the console based user interface.
Add projects of the various kinds. The input doesn't save you from mistakes like entering spaces for service names, so don't do it.
If you need any containers to connect to other containers via the internal names, you will want to add a link from the project that is connecting to the project that is being connected to.
When configured to your liking, select the generate option to generate the projects. This will DESTROY any data in an existing 'generate' directory.
Special Rails support
If a Ruby on Rails project is linked to a postgres or mysql instance, it will be setup with a DATABASE_URL environment variable that has the connection information.
In addition, the database instance will receive a environment variable with the name of the default production database that is based on the rails project's name
Security
The generated projects are insecure, because of credential handling details.
If you want to deploy the projects into a production environment, you are responsible for secrets management.
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and the created tag, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/Meleneth/mobilis.
Plans
Adding more project types + smart integrations Instrumenting generated projects with New Relic Smoothing out the flow of the UI Be able to load a previous configured set of projects for further editing ~~Make generated rails projects wait at startup until the database is usable~~ More details in TODO.md