Install - movitto/omega GitHub Wiki

Installation Instructions

The following are instructions on how to run Omega from source on the platform of your choice.

Eventually it'd be good to submit packages to the major Linux distributions (any contributions on that front would be more than welcome!).

But until that time, this page will be updated to reflect the latest setup process on the supported platforms. Any errors in this process are high priority bugs in the application that need to be resolved (please file an issue if you run into anything).

Note the web frontend uses WebGL so if you wish to run and access that you will need a graphics card/adapter with OpenGL capabilities. Support for non-opengl rendering is on the TODO list.

Install Omega Dependencies:

  • sudo yum install git gcc gcc-c++ ruby-devel openssl-devel libcurl-devel rabbitmq-server
  • gem install rjr
  • gem install curb
  • gem install eventmachine_httpserver
  • gem install em-http-request --version 1.0.3
  • gem install em-websocket
  • gem install em-websocket-client
  • gem install amqp

Startup the messaging queue:

  • sudo service rabbitmq-server start
  • sudo chkconfig --level 35 rabbitmq-server on

Download Omega:

Run the server:

  • RUBYLIB='lib' ./bin/omega-server

Seed it (in a seperate terminal):

  • RUBYLIB='lib' ./examples/universes/small.rb

Create a user:

  • RUBYLIB='lib' ./examples/users.rb Anubis sibuna Athena regular_user

Include static image and audio content in ui:

  • git clone https://github.com/movitto/omega-conf.git # this will take a few minutes
  • ln -s ~/omega/omega-conf/release/omega-content/audio/ site/source
  • ln -s ~/omega/omega-conf/release/omega-content/images/ site/source

Setup the web frontend:

  • sudo yum install nodejs
  • gem install rake
  • gem install middleman
  • rake site:preview

A web server is needed to proxy requests between the browser and omega-server/ the web frontend:

  • sudo yum install httpd
  • sudo setenforce 0
  • Copy the omega.conf to /etc/httpd/conf.d/omega.conf.
  • sudo service httpd start

Pop open firefox, navigate to http://localhost/womega and login!

Gem list:

  • activesupport (3.2.15)
  • addressable (2.3.5)
  • amq-protocol (1.8.0)
  • amqp (1.1.0)
  • bigdecimal (1.2.0)
  • bundler (1.3.5)
  • chunky_png (1.2.9)
  • coffee-script (2.2.0)
  • coffee-script-source (1.6.3)
  • compass (0.12.2)
  • cookiejar (0.3.0)
  • curb (0.8.5)
  • em-http-request (1.0.3)
  • em-socksify (0.3.0)
  • em-websocket (0.5.0)
  • em-websocket-client (0.1.2)
  • eventmachine (1.0.3)
  • eventmachine_httpserver (0.2.1)
  • execjs (1.4.0)
  • ffi (1.9.3)
  • fssm (0.2.10)
  • haml (4.0.3)
  • hike (1.2.3)
  • http_parser.rb (0.6.0.beta.2, 0.5.3)
  • i18n (0.6.5)
  • io-console (0.4.2)
  • json (1.7.7)
  • kramdown (1.2.0)
  • listen (1.3.1)
  • middleman (3.1.6)
  • middleman-core (3.1.6)
  • middleman-more (3.1.6)
  • middleman-sprockets (3.1.4)
  • multi_json (1.8.2)
  • psych (2.0.0)
  • rack (1.5.2)
  • rack-test (0.6.2)
  • rake (10.1.0)
  • rb-fsevent (0.9.3)
  • rb-inotify (0.9.2)
  • rb-kqueue (0.2.0)
  • rdoc (4.0.1)
  • rjr (0.16.6)
  • sass (3.2.12)
  • sprockets (2.10.0)
  • sprockets-helpers (1.0.1)
  • sprockets-sass (1.0.2)
  • thor (0.18.1)
  • tilt (1.3.7)
  • uglifier (2.1.2)
  • websocket (1.1.1)

Install Omega Dependencies:

  • sudo apt-get install git c++ ruby1.9.1-dev libssl-dev libcurl4-openssl-dev rabbitmq-server
  • gem install --install-dir ~/.gem/ruby/1.9.1/ rjr
  • gem install --install-dir ~/.gem/ruby/1.9.1/ curb
  • gem install --install-dir ~/.gem/ruby/1.9.1/ eventmachine_httpserver
  • gem install --install-dir ~/.gem/ruby/1.9.1/ em-http-request --version 1.0.3
  • gem install --install-dir ~/.gem/ruby/1.9.1/ em-websocket
  • gem install --install-dir ~/.gem/ruby/1.9.1/ em-websocket-client
  • gem install --install-dir ~/.gem/ruby/1.9.1/ amqp

Download Omega:

Run the server:

  • RUBYLIB='lib' ./bin/omega-server

Seed it (in a seperate terminal):

  • RUBYLIB='lib' ./examples/universes/small.rb

Create a user:

  • RUBYLIB='lib' ./examples/users.rb Anubis sibuna Athena regular_user

Include static image and audio content in ui:

  • git clone https://github.com/movitto/omega-conf.git # this will take a few minutes
  • ln -s ~/omega/omega-conf/release/omega-content/audio/ site/source
  • ln -s ~/omega/omega-conf/release/omega-content/images/ site/source

Setup the web frontend:

  • sudo apt-get install nodejs
  • gem install --install-dir ~/.gem/ruby/1.9.1/ middleman
  • cd site
  • ~/.gem/ruby/1.9.1/bin/middleman server -p 4567

A web server is needed to proxy requests between the browser and omega-server/ the web frontend:

  • sudo apt-get install apache2
  • Copy the omega.conf to /etc/httpd/conf.d/omega.conf.
  • sudo service a2enmod proxy
  • sudo service a2enmod proxy_http
  • sudo service apache2 start

Pop open firefox, navigate to http://localhost/womega and login!

Gem list:

  • activesupport (3.2.15)
  • addressable (2.3.5)
  • amq-protocol (1.8.0)
  • amqp (1.1.0)
  • bundler (1.3.5)
  • chunky_png (1.2.9)
  • coffee-script (2.2.0)
  • coffee-script-source (1.6.3)
  • compass (0.12.2)
  • cookiejar (0.3.0)
  • curb (0.8.5)
  • em-http-request (1.0.3)
  • em-socksify (0.3.0)
  • em-websocket (0.5.0)
  • em-websocket-client (0.1.2)
  • eventmachine (1.0.3)
  • eventmachine_httpserver (0.2.1)
  • execjs (1.4.0)
  • ffi (1.9.3)
  • fssm (0.2.10)
  • haml (4.0.3)
  • hike (1.2.3)
  • http_parser.rb (0.6.0.beta.2, 0.5.3)
  • i18n (0.6.5)
  • json (1.8.1)
  • kramdown (1.2.0)
  • listen (1.3.1)
  • middleman (3.1.6)
  • middleman-core (3.1.6)
  • middleman-more (3.1.6)
  • middleman-sprockets (3.1.4)
  • multi_json (1.8.2)
  • rack (1.5.2)
  • rack-test (0.6.2)
  • rake (10.1.0)
  • rb-fsevent (0.9.3)
  • rb-inotify (0.9.2)
  • rb-kqueue (0.2.0)
  • rjr (0.16.6)
  • sass (3.2.12)
  • sprockets (2.10.0)
  • sprockets-helpers (1.0.1)
  • sprockets-sass (1.0.2)
  • thor (0.18.1)
  • tilt (1.3.7)
  • uglifier (2.1.2)
  • websocket (1.1.1)

Download/Install Ruby For Windows:

Registration Screenshot

Enter the following commands at the prompt (indicated here with '>')

  • cd C:\Ruby193\devkit

  • ruby dk.rb init

  • ruby dk.rb install

Install Omega Dependencies:

  • gem install rjr --platform=ruby

  • gem install eventmachine_httpserver --platform=ruby

  • gem install em-http-request --platform=ruby --version=1.0.3

  • gem install em-websocket --platform=ruby

  • gem install em-websocket-client --platform=ruby

Download curl for Windows:

Registration Screenshot

  • gem install curb --platform=ruby -- --with-curl-bin="C:/curl/bin" --with-curl-lib="C:/curl/bin" --with-curl-include="C:/curl/include"

Install messaging queue:

Install git for Windows and fetch Omega:

Registration Screenshot

Run Omega:

  • set PATH=%PATH%;C:\curl\bin

  • cd C:\omega

  • ruby -Ilib bin\omega-server

The server will now stay running so long as this terminal is open.

Seed Omega (in a seperate terminal):

  • cd C:\omega

  • ruby -Ilib .\examples\universes\small.rb

  • ruby -Ilib .\examples\users.rb Anubsi sibuna Athena regular_user

  • note: ran into issue w/ previous command where it ran successfully but did not exit/return to command line (just hung) after it was done, need to fix

Setup UI Audio/Image content:

  • Open git gui
  • Clone https://github.com/movitto/omega-conf.git to C:\omega\omega-conf (will take a few minutes)
  • Copy images and audio directories underneath C:\omega\omega-conf\release\omega-content to C:\omega\site\source

Registration Screenshot

Run Web UI frontend:

Setup nginx webserver to proxy requests between Omega and web fronend:

  • Download: http://nginx.org/download/nginx-1.5.6.zip

  • Install to C:\nginx

  • Edit C:\nginx\conf\nginx.conf config

  • Add the following to the default server section of the config:

      location /womega/ {
           rewrite ^/womega/(.*) /$1 break; 
           proxy_pass        http://localhost:4567;
      }
    
      location /omega {
           proxy_pass        http://localhost:8888;
      }
    

Registration Screenshot

  • Double click on nginx.exe in C:\ngnix to start the server

Use the Simulation:

Gem list:

  • activesupport (3.2.15)
  • addressable (2.3.5)
  • amq-protocol (1.8.0)
  • amqp (1.1.1)
  • bigdecimal (1.1.0)
  • bundler (1.3.5)
  • chunky_png (1.2.9)
  • coffee-script (2.2.0)
  • coffee-script-source (1.6.3)
  • colored (1.2)
  • compass (0.12.2)
  • cookiejar (0.3.0)
  • curb (0.8.5)
  • em-http-request (1.0.3)
  • em-socksify (0.3.0)
  • em-websocket (0.5.0)
  • em-websocket-client (0.1.2)
  • eventmachine (1.0.3 x86-mingw32)
  • eventmachine_httpserver (0.2.1)
  • execjs (1.4.0)
  • ffi (1.9.3)
  • fssm (0.2.10)
  • haml (4.0.3)
  • hike (1.2.3)
  • http_parser.rb (0.5.3)
  • i18n (0.6.5)
  • io-console (0.3)
  • json (1.8.1, 1.5.5)
  • kramdown (1.2.0)
  • listen (1.3.1)
  • middleman (3.1.6)
  • middleman-core (3.1.6)
  • middleman-more (3.1.6)
  • middleman-sprockets (3.1.4)
  • minitest (2.5.1)
  • multi_json (1.8.2)
  • rack (1.5.2)
  • rack-test (0.6.2)
  • rake (10.1.0, 0.9.2.2)
  • rb-fsevent (0.9.3)
  • rb-inotify (0.9.2)
  • rb-kqueue (0.2.0)
  • rdoc (3.9.5)
  • rjr (0.16.6)
  • sass (3.2.12)
  • sprockets (2.10.0)
  • sprockets-helpers (1.0.1)
  • sprockets-sass (1.0.2)
  • thor (0.18.1)
  • tilt (1.3.7)
  • uglifier (2.1.2)
  • wdm (0.1.0)
  • websocket (1.1.1)

See the Configuration section of the wiki for more information on how to configure the server.

The Omega Config Recipe consists of many tools & config files to assist w/ an omega install:

  • a puppet receipe to install / setup omega w/ dependencies and frontend

  • a bootstrapping script to install Omega from scratch + other helper / utility scripts

  • the image & audio content for an omega release

  • various other resources, config files, docs, and helpers

It iss a good starting resource to see the steps required to install project releases.

To use the bootstrap script simply download and run it as root like so:

$ wget https://raw.github.com/movitto/omega-conf/master/bin/omega-bootstrap.sh
$ chmod +x omega-bootstrap.sh
$ sudo ./omega-bootstrap.sh

Note it's been a little while since the recipe / bootstrap script has been updated. If there are any bugs feel free to file and issue or a pull request! Thanks!