vube/vagrant-catalog

Vagrant Cloud-like catalog for use on your private network

Installs: 5

Dependents: 0

Stars: 24

Watchers: 6

Language: PHP

0.3.1 2015-03-10 23:24 UTC

README

Build Status Coverage Status Latest Stable Version Dependency Status

Application to manage boxing up Vagrant VMs to be used as base boxes for use in private box distribution systems.

You can use vagrant-boxer to package up the Vagrant boxes and keep their metadata updated, then upload the files to a server that is running vagrant-catalog.

vagrant-catalog is a simple HTTP interface to your collection of Vagrant boxes that allows you to browse the boxes you've created and returns metadata to Vagrant so you can use commants like vagrant box outdated, vagrant box update, etc, on your own boxes.

A complete example can be found here: vagrant-boxer-example

Features

  • Simple vagrant catalog browser
  • Integrates easily with Vagrantfile
    • Shows you how to add each box to your Vagrantfile

Installation

To install, clone this repository into your web server's docroot, or a sub-directory thereof.

Then, run composer update

$ git clone https://github.com/vube/vagrant-catalog /path/to/docroot
$ cd /path/to/docroot
$ composer update

For example on a typical Debian server you may clone it into /var/www/vagrant.yourdomain.com

Configuration

$ cd /path/to/docroot
$ cp config.php.dist config.php
$ edit config.php

The default configuration is probably OK for most installations. It assumes are running in the docroot of your virtualhost, and that you are storing files in the files sub-directory.

Usage

Once you're set up, you need to actually install your Vagrant base boxes into the files sub-directory.

For example your docroot may look like this:

docroot:
  - files:
    - your_company:
      - base_box:
        - metadata.json
        - your_company-base_box-1.0.0-virtualbox.box
      - devel_box:
        - metadata.json
        - your_company-devel_box-1.0.0-virtualbox.box
  - config.php
  - index.php

In the above example, there are 2 Vagrant boxes, named your_company/base_box and your_company/devel_box.

The *.box files and the metadata.json files should be created by vagrant-boxer and then you should have uploaded them to this location.

Dependencies

  • A web server (Apache or nginx)
  • PHP 5.3.7+
  • Composer