Skip to content

Latest commit

 

History

History
136 lines (93 loc) · 3.58 KB

installation.md

File metadata and controls

136 lines (93 loc) · 3.58 KB

Installation

Introduction

This installation is validated on a fresh Debian 7 (Wheezy) 64 bits. It should be almost the same on others dpkg systems.

As you may have seen, in other parts of the documentation, XO is composed of two parts: XO-Server and XO-Web. They can be installed separately, even on different machines, but for the sake of simplicity we will set them up together.

Packages and Pre-requisites

NodeJS

XO needs Node.js. You can install it:

  • by following this procedure.
  • on Wheezy, the build from source was tested and working well.
  • by using n, documented just below.

We'll use n because it's powerful and flexible. Install it as root:

/usr/bin/ wget https://raw.githubusercontent.com/visionmedia/n/master/bin/n
chmod +x /usr/bin/n
n stable

We'll consider at this point that you've got a working node on your box. E.g:

$ node -v
v0.10.25

Packages

apt-get install build-essential redis-server libpng-dev ruby git

We also need compass in Ruby (we want to remove this dependency as soon as possible)

gem install compass

Fetching the Code

You may either download them here and here or use git with these repositories from http://github.com/vatesfr/xo-server and http://github.com/vatesfr/xo-web:

git clone http://github.com/vatesfr/xo-server
git clone http://github.com/vatesfr/xo-web

Installing dependencies

XO-Server

Once you have it, you can use npm to install the other dependencies: go into XO-Server directory and launch the following command:

npm install

Then, you have to create a config file for XO-Server:

cp config/local.yaml.dist config/local.yaml

Edit it to have the right path to deliver XO-Web, because XO-Server embeds an HTTP server (we assume that XO-Server and XO-Web are on the same directory). It's near the end of the file:

  mounts:
    '/':
      - '../xo-web/dist/'

WARNING: YAML is very strict with indentation: use spaces for it, not tabs.

In this config file, you can also change default ports (80 and 443) for XO-Server.

You can try to start XO-Server to see if it works. You should have something like that:

$ ./xo-server
WebServer listening on 0.0.0.0:80
[INFO] Default user: "[email protected]" with password "admin"

XO-Web

First, we'll also install dependencies:

npm install

You can now install bower dependencies and build the application:

./gulp --production

Running XO

The sole part you have to launch is XO-Server which is quite easy to do, just launch the xo-server script, which is in the root of XO-Server's directory':

$ ./xo-server

That's it! Go on your browser to the XO-Server IP address, and it works :)

Other stuff

  • You can also consider using forever to have always the process running.
npm install -g forever
forever start -c ./node_modules/.bin/coffee src/main.coffee
  • Our stable branch is "master" and the beta branch is "next-release". You can change it if you want to test our latest features (on both XO-Server and XO-Web, do NOT mix them):
git checkout next-release
  • If you want to update your current version, do this on both repositories:
git pull --ff-only
npm install

And this in XO-Web:

./gulp --production