Otto knows how to develop and deploy any application on any cloud platform, all controlled with a single consistent workflow to maximize the productivity of you and your team.
For more information, see the introduction section of the Otto website.
The key features of Otto are:
Automatic development environments: Otto detects your application type and builds a development environment tailored specifically for that application, with zero or minimal configuration. If your application depends on other services (such as a database), it'll automatically configure and start those services in your development environment for you.
Built for Microservices: Otto understands dependencies and versioning and can automatically deploy and configure an application and all of its dependencies for any environment. An application only needs to tell Otto its immediate dependencies; dependencies of dependencies are automatically detected and configured.
Deployment: Otto knows how to deploy applications as well develop them. Whether your application is a modern microservice, a legacy monolith, or something in between, Otto can deploy your application to any environment.
Docker: Otto can use Docker to download and start dependencies for development to simplify microservices. Applications can be containerized automatically to make deployments easier without changing the developer workflow.
Production-hardened tooling: Otto uses production-hardened tooling to build development environments (Vagrant), launch servers (Terraform), configure services (Consul), and more. Otto builds on tools that powers the world's largest websites. Otto automatically installs and manages all of this tooling, so you don't have to.
Getting Started & Documentation
All documentation is available on the Otto website.
If you wish to work on Otto itself or any of its built-in systems, you'll first need Go installed on your machine (version 1.4+ is required).
For local dev first make sure Go is properly installed, including setting up a GOPATH.
Next, clone this repository into
make to get the dependencies and run the tests.
If this exits with exit status 0,
then everything is working!
$ make updatedeps ... $ make ...
To compile a development version of Otto, run
make dev. This will put the
Otto binary in the
$ make dev ... $ bin/otto ...
If you're developing a specific package, you can run tests for just that
package by specifying the
TEST variable. For example below, only
otto package tests will be run.
$ make test TEST=./otto ...
There is no documentation for this package.
Source Files ¶
app contains the interfaces and structures for application type implementations for Otto.
|app contains the interfaces and structures for application type implementations for Otto.|
The directory package includes the interface for the Otto Appfile directory service that stores data related to Appfiles.
|The directory package includes the interface for the Otto Appfile directory service that stores data related to Appfiles.|
localaddr is a helper library for allocating local IP addresses.
|localaddr is a helper library for allocating local IP addresses.|
Helpers for interacting with the local SSH Agent
|Helpers for interacting with the local SSH Agent|