phusion / juvia

A commenting server similar to Disqus and IntenseDebate.
http://phusion.github.io/juvia/
GNU Affero General Public License v3.0
1.03k stars 94 forks source link

About Juvia

Logo

Juvia is currently maintained, but we surely will appreciate new contributors.

Juvia is an open source commenting system. It allows you to outsource your commenting needs to an external system so that you don't have to build your own commenting system for each website or each web app. Embedding a Juvia commenting page only involves pasting a JavaScript snippet into your web page.

Juvia is similar to Disqus and IntenseDebate. However both of them seem to be designed in the early 2000s before the rise of AJAX: trying to integrate either of them in an AJAX web application results in many wasted afternoons and a screen full of inexplicable JavaScript errors. Juvia offers full support for AJAX web pages and any JavaScript is written in such a way that it avoids conflicts with the page's existing JavaScripts.

Juvia currently also makes no effort to support nested comments. I believe nested comments only make sense for extremely active discussion forums. Instead, Juvia strives for simplicity.

Other notable highlights:

Installation

  1. Clone this repository into a desired directory and cd to it.
  2. Configure your database details by editing config/database.yml. An example is provided in config/database.yml.example. Only edit the information under the 'production' section.
  3. Configure other things by editing config/application.yml. An example is provided in config/application.yml.example. Only edit the information under the 'production' section.
  4. Install the necessary dependencies: bundle install --without='development test postgres sqlite' --path=help
  5. Install the database schema: bundle exec rake db:schema:load RAILS_ENV=production
  6. Compile the static assets: bundle exec rake assets:precompile RAILS_ENV=production RAILS_GROUPS=assets
  7. Deploy this application to Phusion Passenger or whatever application server you prefer.

You can now access Juvia through the address that you configured. It will ask you to create an initial administrator account and to register a site.

Upgrade

  1. cd to the source directory and update the code to the latest version: git fetch && git reset --hard origin/master
  2. Install the necessary dependencies: bundle install --without='development test' --path=help
  3. Upgrade the database schema: bundle exec rake db:migrate RAILS_ENV=production
  4. Compile the static assets: bundle exec rake assets:precompile RAILS_ENV=production RAILS_GROUPS=assets
  5. Run touch tmp/restart.txt (if you're using Phusion Passenger) or restart your application server.

Cryptographic verification

I do not release source tarballs for Juvia. Users are expected to get the source code from Github.

From time to time, I create Git tags for milestones. These milestones are signed with the Phusion Software Signing key. After importing this key you can verify Git tags as follows:

git tag --verify milestone-2013-03-11

Rails helper

James Smith has written a Rails helper gem for embedding Juvia comments into Rails web applications. See juvia_rails.

TODO

Juvia is pretty broken and outdated at the moment. That means we have to stabilize and update components first. That's what we are gonna do:

Some features we will like to implement in the future: