Skip to content

Create and manage containerized development environments on AWS

License

Notifications You must be signed in to change notification settings

looneym/sobotka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sobotka

Description

Sobotka is a command line tool for managing containerized remote development environments on AWS' EC2.

Features

  • Provisioning EC2 instances
  • Syncing files in your local directory with the remote host; facilitates live application reload
  • Botstrapping the host with docker and docker-compose
  • Running the application with docker-compose up

Using Sobotka involves defining and working with Projects. A Project is an object which represents a cloud-based development environment, including a remote host, dependancies and project code.

A Project is first defnied in a manifest.yml file in the root of your project directory.

After running the init command, a project is created and associated with the current local directory. Further operations are performed with short command line instructions.


Quick start

  1. Install Sobotka:

pip install sobotka

  1. Clone the example app repository:

git clone https://github.com/looneym/sobotka-example.git

cd sobotka-example

  1. Generate a SSH key with:

sobotka key

Optionally use an existing key pair, updating the manifest as required.

  1. Create a config file in ~/.aws/config with AWS API access key and region. You'll also need to set up a security group. See the aws configuration docs for more info

  2. Run the following commands in the project directory:

sobotka init
sobotka bootstrap
sobotka push
sobotka run
  1. Navigate to http://sobotka-example.dev in your browser to access your application!

More detailed usage instructions can be found here

Documentation Index

Documentation is available here

Configuration / Requirements

  • AWS: API access credentials as well as an SSH key pair. You also need to define a security group on AWS which specifies the rules for inbound traffic to the host. More details in the documentation on AWS configuration requirements
  • Your own applicaton: Your application itself must be dockerized and comprize of one or more services (e.g. web, redis, DB) defined in a docker-compose.yml file which also specifies any network rules and volumes required for the application. Application requirements are discussed in more detail here.

Use case

Sobotka solves a similar problem as Vagrant: define your environment along with your project code to eliminate differences between indvidual developers, prevent conflicts and dependency issues on your local machine, easily share example code and projects between people and keep a versioned history of your environment. Since Sobotka uses docker-compose it's easy to move your dev code into production environment configured using the same technology.

Since Sobotka requires no VM on the local machine and minimal configuration it's an easy way to get a new machine up and running as a dev box as well as allowing you to offload the computational cost to the cloud to facilitate development on underpowered machines

Something broken?

Please open an issue

About

Create and manage containerized development environments on AWS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published