Coder Social home page Coder Social logo

vx-install's Introduction

Vexor - Continuous Integration Server

Open Source, MIT License

Github and Gitlab 5.x integration

Build matrices

travis.yml compatibility

Caching Dependencies

Deploy using SSH

Currently support from the box: Ruby, Scala, Clojure

Build on Ruby, Rails, Docker, Angular.js

More http://vexor.io

Prerequisites

You will need 2 (better 3) Ubuntu 12.04 or 13.10 servers to host, x64 necessarily, respectively:

  • Web application
  • Worker
  • Rabbitmq

Web and Rabbitmq may be hosted on the same machine.

Worker machine must have Linux kernel of at least v3.8, the higher the better. To check it run uname -r and upgrade with sudo apt-get install linux-generic-lts-saucy if needed.

All installation goes automatically, so you'll need sudo without a password (check with sudo -u root id). If it asks for a password add ALL=(ALL:ALL) NOPASSWD:ALL to /etc/sudoers for a an appointed user or a group.

Before installation

Create app if you use Github:

  • Application name --- any
  • Homepage URL --- your server address
  • Authorization callback URL http[s]://your.server.address/auth/github/callback

If your app sits in the Gitlab just specify its address.

Installation

Installation runs ansible, so you have to have it on the machine from which you run the installation.

OSX

brew install ansible

Ubuntu

apt-add-repository ppa:rquillo/ansible
sudo apt-get update
sudo apt-get install ansible

Or, read the official ansible guide.

Now clone the installer repo:

git clone https://github.com/vexor/vx-install.git
cd vx-install
git checkout stable-0.9
cp inventory/production.example inventory/production

Edit the configuration in inventory/production:

[vexor-mq]
# rabbitmq server address
mq0.example.com

[vexor-web]
# web application address
ci.example.com

[vexor-worker]
# server running the worker
worker0.example.com

[vexor:children]
# don't touch this
vexor-mq
vexor-web
vexor-worker

[vexor:vars]

# Here goes the config

# SSH username
ansible_ssh_user=ubuntu

# Github credentials; remove these lines if you don't use Github
github_key=<YOUR GITHUB KEY>
github_secret=<YOUR GITHUB SECRET>

# Allows only users of a certain Organization
github_restriction=<YOUR ORGANIZATION NAME>

# Gitlab servers, if any, divided by commas
gitlab_url=http://demo.gitlab.com,gitlab.example.com

# Web application server (used in web hooks)
# vx_web_hostname=ci.example.com

# Web application processes number,
# defaults to the current number of CPUs
# vx_web_num_workers=8

# Worker threads number,
# defaults to CPU number
# vx_worker_num_workers=3

# Here you can specify your own default docker image:
# vx_worker_docker_image: "dmexe/vexor-precise-full"

Then, start:

./play production

Then, login to the workers server and manually install a docker image used for all work; it's 2G big so the download may consume some time.

docker pull dmexe/vexor-precise-full

Here, you've completed the quest!

Email setup

Web application uses system sendmail so you have to have it configured. Or, use ssmtp.

What you will have on your servers

Web application

  • Ruby in /opt/vexor/ruby
  • App in /opt/vexor/web/current
  • postgresql 9.1
  • memcached

Worker

  • Ruby in /opt/vexor/ruby
  • App in /opt/vexor/worker/current
  • docker

Rabbitmq

  • rabbitmq & erlang

vx-install's People

Contributors

dmexe avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.