Simple, high-level API for managing cloud servers across multiple providers from Elixir
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
lib
test
.gitignore
LICENSE
README.md
mix.exs

README.md

DynamicServerManager

Simple, high-level API for managing cloud servers across multiple providers from within Elixir.

This doesn't try to be everything, but instead provides two basic behaviours, for which additional providers can be added:

  • Server:

    • Create based on snapshot
    • Destroy
    • Query for basic information
  • DNS:

    • Create/destroy A records for configured domains

Installation

First, add to your mix.exs dependencies:

def deps do
  [{:dynamic_server_manager, "~> 0.0.1"}]
end

Then, update your dependencies:

$ mix deps.get

Configuration

See the sample configuration

Usage

See the example usage

Currently supported providers

Writing new providers

They are based on the behaviours as defined in the following modules:

  • Server: DynamicServerManager.Server
  • DNS: DynamicServerManager.Dns

Hopefully between that and referencing the existing plugins you'll get the idea.

TODO

  • Better documentation (maybe, someday...)
  • Better plugin label/module mapping, possibly via registration