This is a minimal Scala app targeting deployment to Heroku.
Its web layer is based on Finagle and its persistence layer on Rogue.
Basically, this app's a RESTful service API.
The app's persistence layer depends on MongoDB, so start it:
$ mongod
Additionally, Memcached is being used, so e.g.:
$ memcached -vv
To run the app locally via foreman
:
$ gem install foreman
$ foreman start
Then point your browser to this URL:
Note: you need to build before (see below).
To compile + package Scala on-the-fly
via sbt
0.10:
$ sbt
> ~package
For compiling/packaging once just leave off the ~
.
To make an assembly of all sbt
project lib dependencies:
$ sbt
> assembly:package-dependency
$ gem install heroku
$ heroku create --stack cedar
$ heroku addons:add mongolab
$ heroku config
Now, adjust src/main/resources/props/production.default.props
according to MONGOLAB_URI
.
Plus, rebuild application.jar
(via sbt package
) to include this config update.
$ heroku config:add LIFT_PROD=-Drun.mode=production
$ git commit -am 'Make it ready for production.'
$ git push heroku master
Then, make the project's lib dependencies JAR (via sbt assembly:package-dependency
).
$ git commit -am 'Add lib dependencies.'
$ git push heroku master
$ heroku open