rstat.us is a microblogging site built on top of the ostatus protocol.
If you'd like to contribute, here are some details:
- The stack: ruby/sinatra/mongodb
- The code
- The documentation (need lots of improvement here!)
- The Issues list
- Please fork the project and make a pull request
We have documentation that explains all of our source code, using rocco. You can view it here.
First off: you will need MongoDB (www.mongodb.org). They have a quickstart guide for getting it installed and running.
Then do:
$ git clone https://github.com/$MY_GITHUB_USERNAME/rstat.us.git
$ cd rstat.us
Copy the config file; if you have actual Twitter API keys, you can add yours, but this file just needs to exist for the server to work.
$ cp config/config.yml.sample config/config.yml
Then update your gemset:
$ gem install bundler && bundle install
And start the server:
$ rackup
Bam! Visit http://localhost:9292/ in your browser, and you'll be good.
We use Coffeescript (.coffee) or Sassy CSS (.scss) for javascript and CSS development respectively. When running the site locally, these files will automatically be compiled by the application when requested.
When preparing for deployment, we compress our stylesheets and javascripts, as well as embedding what images we can. To compile Coffeescript and SCSS, use the following rake task:
$ rake assets:compile
Note: This relies on some sort of coffee compiler being installed globally. If you get "undefined method 'compile' for nil:NilClass", that might be your problem. On Ubuntu, installing the nodejs package fixes this; for other systems, check out nodejs.org.
For coffee-script installation, check the docs.
You may also need the java runtime for asset compression, which is handled by jammit using yui compressor and closure compiler. Installing a JDK, such as OpenJDK should do the trick.
If you need help with this, then you're not ready to run one. Here's the deal: we're still finishing up our ostatus implementation, and until it's 100% compatible, these instructions are kept secret. Eventually, we plan on making this super easy, but until we feel that it's ready, we're keeping the instructions 'secret.' Sorry!
If you do run your own node anyway, please keep current with upstream until we hit 1.0, and it should all be smooth sailing!