Skip to content

icco/natroku

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 

Repository files navigation

natroku

"Container management for the unemployed".

NOTE: As of 2015-03-29, this does not work and is just a theory. Hit me up if you have questions about development or helping out (or just send a pull request or file issues).

Design

natroku is actually three pieces of software (router, configd, dbc), each contained in a subdirectory of this repo. The idea is this system could run all on a single host, or spread out across many.

Router

The router is pretty simple. Given a request on port 80 (or whatever port you want) it looks at its configuration and forwards that on to a Docker container described as the source for the domain the request is for. Currently it only supports HTTP. If user visits raw IP, return 410.

Configuration Server (configd)

A polling server that uses Git as a database. It looks at all of the containers it knows about and writes out a config that represents the state of the world as it knows it. If the config has changed, it sends a notification to the router and dbc to reread their configuration.

Database Controller (dbc)

This acts like the router, but instead acts on database requests, specifically postgresql connections.

Alternatives

This is a heavily evolving area, I pulled a lot of this from Stack Overflow and a random mindmap.

So if you look at a lot of the solutions, like Mesos, Kubernetes, Decking, Helios, Flynn, Lattice, CoreOS and Deis, they all require a ton of resources.

Below I'm going to try and break down the features and minimum footprint needed for each.

About

Dumb person hosting

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published