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
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.
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 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!
Web application uses system sendmail so you have to have it configured. Or, use ssmtp.
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