Folksemantic is a search,recommendation and social system for helping users engage with one another and content from OpenCourseware, the NSDL and various other repositories that focus on Open Educational Content.
Folksemantic requires a standard Ruby on Rails stack as well as a Java installation to function correctly.
Detailed instructions on how to deploy Folksemantic including setting up ruby, ruby on rails, and java can be found in INSTALL.rdoc.
Copy config/global_config.yml.example to config/global_config.yml and edit it to reflect your application customized configurations.
Copy config/environments/production.rb.example to config/environments/production.rb and edit ‘asset_host` in order to reflect the name of the production asset server.
An example file for Capistrano deployment can be found in config/deploy.example.rb. Copy that file to config/deploy.rb. This file was taken from an EngineYard example file and will need to be modified for your specific server configuration.
All the gems are hosted on gemcutter so set it up first:
sudo gem install gemcutter
rake gems:install won’t work because the gems are included in the project’s Rakefile. Instead copy and paste the code below into your command line. It will take a while to install all the gems. I recommend getting a tasty beverage and surfing the net while you wait for this to complete.
sudo gem install will_paginate sudo gem install authlogic sudo gem install searchlogic sudo gem install bcrypt-ruby sudo gem install acts-as-taggable-on sudo gem install paperclip sudo gem install awesome_nested_set sudo gem install friendly_id sudo gem install sanitize sudo gem install recaptcha sudo gem install newrelic_rpm sudo gem install feedzirra sudo gem install tiny_mce sudo gem install facebooker sudo gem install action_mailer_tls sudo gem install aasm sudo gem install geokit sudo gem install hoptoad_notifier sudo gem install httparty -v0.4.5 sudo gem install oauth sudo gem install oauth-plugin sudo gem install babelphish sudo gem install disguise sudo gem install uploader sudo gem install muck-engine sudo gem install muck-solr sudo gem install muck-feedbag sudo gem install muck-raker sudo gem install muck-services sudo gem install muck-users sudo gem install muck-activities sudo gem install muck-comments sudo gem install muck-profiles sudo gem install muck-friends sudo gem install muck-shares sudo gem install muck-contents sudo gem install muck-blogs sudo gem install muck-invites sudo gem install muck-oauth
Folksemantic requires a database installation. We recommend MySql, but the project should also work with PostGreSQL. Folksemantic has not been tested with other databases. Copy config/database.example.yml to database.yml. This file contains typical database settings but you might have to change them based on your local configuration.
Run the rake tasks needed to setup and populate the database:
rake db:create rake db:migrate rake muck:db:populate rake muck:services:db:populate rake muck:services:db:bootstrap_services rake muck:services:db:create_global_feeds_aggregation
If you are running these tasks on the production server you will need to add ‘RAILS_ENV=production’
rake db:create RAILS_ENV=production rake db:migrate RAILS_ENV=production rake muck:db:populate RAILS_ENV=production rake muck:services:db:populate RAILS_ENV=production rake muck:services:db:bootstrap_services RAILS_ENV=production rake muck:services:db:create_global_feeds_aggregation RAILS_ENV=production
Create a default admin user.
rake muck:users:create_admin
Then sign in to the application with:
username: admin password: asdfasdf
If you run this task on a production server be sure to change the password.
By default folksemantic uses New Relic to monitor website performance. config/newrelic.yml.example to config/newrelic.yml and get a get from www.newrelic.com. You might also want to use their install instructions to ensure you have the latest yml file
Now that the system is installed you can start harvesting feeds and customizing the UI.
rake solr:start
or on production:
rake solr:start RAILS_ENV=production
rake muck:raker:start
or on production:
rake muck:raker:start RAILS_ENV=production
You can add a set of default feeds that represent the OCW and OER community. Do this by running:
rake muck:services:db:bootstrap
Start up the harvesting and recommendation system:
rake muck:raker:start
Output will be logged to:
log/raker.log file
Stop the system with:
rake muck:raker:stop
Folksemantic provides the ‘disguise’ theme engine so that the interface can be customized based on themes.
Generate a new theme for your Rails application using the built in theme generator:
./script/generate theme theme_name
Disguise can run in two modes. The first is the default which let’s an administrator set the current theme via the built in admin interface. The second looks at the url of the incoming request and matches it to a theme. To enable this second mode create an initializer in /config/initializers/disguise.rb and enter the following contents:
Disguise::USE_DOMAIN_FOR_THEMES = true