Dead-simple PaaS
Ruby
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
conf
doc
lib
migrations
test
.gitignore
.rvmrc
Gemfile
Gemfile.lock
README
Rakefile
config.ru
nacreon.gemspec
nacreon.json

README

= Nacreon

So here it is, bits will be gotten to work, don't depend on anything in here,
as not a lot of it has been figured out yet.  It is beta software.  There's a
client (Ruby and command-line) that also serves as a reference implementation;
see github.com/pete/terpene for that.

Nacreon is intended as a very simple, lightweight, Platform-as-a-Service
application.  It is written in Ruby, and currently supports only Ruby 1.9
applications, but see doc/TODO for information on future support.

== Prerequisites:

* Ruby 1.9.x (1.9.1 *ought* to work, although I've been working under 1.9.2)
* Some gems:  watts, json, sequel, (and the gems that those
gems depend on).  `rake install_deps` or `bundle install` will take care of
this.

== Getting Ready:

You'll want to run `rake migrate` to update the database.  By default,
it uses an MySQL.  You can change this by making a 'nacreon.json' file,
and pointing the environment variable $NACREON_CONF at it (the one in the
root of the repo is intended as reference and a simple version for devs.)
[TODO:  Document the 'nacreon.json' config file when the other config stuff
get added to it.]

=== OS requirements

The packages required as prerequisites for various distros are listed below.
[TODO: Mostly incomplete.  If you run into a package that Nacreon requires that
isn't mentioned in the command for your OS, please update the command.]  See
doc/deployment.rdoc for information on how to deploy to a server.  Those
instructions are written for Debian/Ubuntu; see below for what is required for
your own operating system.  "MySQL" is assumed; for Postgres or other databases, you'll need a few 

As closely tied to the operating system as Nacreon is, it is difficult to
support operating systems that don't conform on some level to a regular Unix
environment.  Linux, Dragonfly BSD, and OSX work; your mileage may vary
elsewhere.  Will almost certainly not work under Plan 9 or Windows, but one of
the developers loves obscure platforms, so we can't say "never".

==== Debian / Ubuntu:

* Instructions that should work for both are available in doc/deployment.rdoc.

==== CRUX:

* `prt-get depinst ruby mysql-ruby`

==== MacOS X:

* Install (via ports or homebrew, likely) Ruby, MySQL, and the libraries for
accessing MySQL from Ruby.
* rake newb

==== Arch:

* `pacman -S ruby mysql-ruby`

== Running a Dev Server:

There's a rake task for unicorn, but anything that understands a
config.ru ought to work.
`rake unicorn` will start it up.  If you wish to run it as a daemon,
`rake daemon` will work.  You can reload without restarting unicorn by
doing `killall -HUP unicorn`.  See
http://unicorn.bogomips.org/SIGNALS.html for more information.

You'll also need to start up an AppManager daemon if you plan to run any apps.
That can be done with `rake appmanagerd` to run as a daemon with logging to
syslog, or `rake appmanager` to run in the foreground with logging to stdout.

== Poking at the App Interactively:

`rake irb` will start up IRB with everything loaded.  You can poke at
the models in Nacreon::Model, instantiate the application and check
routing, and run requests through it.

== Further Documentation
See doc/overview.rdoc for an overview of how the codebase works, if you want to
hack on Nacreon.

See doc/TODO for where we're going with this.