top
(README.md)
Lobster
=======

Introduction
------------

Lobster is a simple hourly billing panel for virtual machine services. Lobster
does not manage virtual machines directly -- instead, it relies on backends that
it communicates with through VM interfaces; several backends are supported.

See https://github.com/LunaNode/lobster/wiki/GettingStarted to get started.

Regions
-------

Lobster allows multiple regions to be defined. Each region has a separate
virtual machine interface, although the interface type may be the same. Plans
are shared across regions, but images are not.

Billing
-------

Lobster currently only supports a prepaid hourly billing model. Users pay via
some payment interface, and once payment is recorded as completed, credit is
added to their account. If a user is running out of credit, Lobster will send
low credit notifications; once credit reaches zero, services are suspended, and
eventually the account is terminated.

There are three services billed by Lobster:

* Virtual machines: have an hourly price defined in the plan
* Image storage: billed based on a configurable price per gigabyte-hour
* Bandwidth: users are given a bandwidth pool allocation in each region based on the sum of the plan bandwidth of their virtual machines. If a user uses more traffic across their VMs in some region than this allocation, they will be charged at a configurable price per gigabyte. Bandwidth is billed on a per-calendar-month basis, so usage and allocations are reset each month. Note that if a user only provisions a VM for one hour, then they will receive only a proportional allocation (the bandwidth specified in the plan is the monthly allocation).

Backends
--------

Different backends have different features, but Lobster tries to support as
much as possible. Currently these backends are supported:

* OpenStack
* SolusVM
* CloudStack (experimental)

These provider-specific APIs are also supported:

* Luna Node
* Digital Ocean
* Linode
* Vultr

Lobster also supports using Cloug [1] providers as VM backends. Cloug is a cloud
API library that provides a common interface to access multiple APIs, just as
Lobster provides a common panel. Cloug is still under development, but the aim
is to eventually move all VM interface code on Lobster to Cloug.

[1] https://github.com/LunaNode/cloug

Payment gateways
----------------

Payment is generally accepted via a pay-callback system, where we direct the
user to a payment gateway and then wait for a secure callback notification from
the gateway that confirms payment.

Supported payment gateways:

* Paypal
* Coinbase

Contributing
------------

The Lobster project uses Github for coordination.

URL: https://github.com/LunaNode/lobster

Note that per the Apache license, any contribution you submit for inclusion in
Lobster shall be under the terms of the Apache license. See Section 5 of the
Apache License Version 2.0 for details.

Imported by 34 package(s)

  1. github.com/LunaNode/lobster/cmd
  2. github.com/LunaNode/lobster/core/support
  3. github.com/LunaNode/lobster/module/whmcs
  4. github.com/LunaNode/lobster/payment/coinbase
  5. github.com/LunaNode/lobster/payment/fake
  6. github.com/LunaNode/lobster/payment/paypal
  7. github.com/LunaNode/lobster/payment/stripe
  8. github.com/LunaNode/lobster/vmi/cloudstack
  9. github.com/LunaNode/lobster/vmi/cloug
  10. github.com/LunaNode/lobster/vmi/digitalocean
  11. github.com/LunaNode/lobster/vmi/fake
  12. github.com/LunaNode/lobster/vmi/linode
  13. github.com/LunaNode/lobster/vmi/lobster
  14. github.com/LunaNode/lobster/vmi/lunanode
  15. github.com/LunaNode/lobster/vmi/openstack
  16. github.com/LunaNode/lobster/vmi/solusvm
  17. github.com/LunaNode/lobster/vmi/vultr
  18. github.com/lunanode/lobster/cmd
  19. github.com/lunanode/lobster/core/support
  20. github.com/lunanode/lobster/module/whmcs
  21. github.com/lunanode/lobster/payment/coinbase
  22. github.com/lunanode/lobster/payment/fake
  23. github.com/lunanode/lobster/payment/paypal
  24. github.com/lunanode/lobster/payment/stripe
  25. github.com/lunanode/lobster/vmi/cloudstack
  26. github.com/lunanode/lobster/vmi/cloug
  27. github.com/lunanode/lobster/vmi/digitalocean
  28. github.com/lunanode/lobster/vmi/fake
  29. github.com/lunanode/lobster/vmi/linode
  30. github.com/lunanode/lobster/vmi/lobster
  31. github.com/lunanode/lobster/vmi/lunanode
  32. github.com/lunanode/lobster/vmi/openstack
  33. github.com/lunanode/lobster/vmi/solusvm
  34. github.com/lunanode/lobster/vmi/vultr

Imports 14 package(s)

  1. github.com/gorilla/context
  2. github.com/gorilla/mux
  3. github.com/LunaNode/lobster/websockify
  4. github.com/LunaNode/lobster/utils
  5. github.com/gorilla/schema
  6. github.com/go-sql-driver/mysql
  7. github.com/LunaNode/lobster/ipaddr
  8. github.com/LunaNode/lobster/i18n
  9. github.com/LunaNode/email
  10. github.com/scalingdata/gcfg
  11. github.com/LunaNode/lobster/wssh
  12. github.com/asaskevich/govalidator
  13. github.com/LunaNode/lobster/api
  14. golang.org/x/crypto/pbkdf2

Test imports 1 package(s)

  1. github.com/gorilla/websocket