Simple web app to host a catalog of vagrant boxes. A simplified Vagrant Cloud to be run on your private network.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/Vube/VagrantCatalog Show metadata output in a more readable format Nov 10, 2014
templates Show metadata output in a more readable format Nov 10, 2014
test Don't list boxes as sub-directories unless they contain nested boxes. Nov 10, 2014
.coveralls.yml Initial import May 2, 2014
.gitignore Added basic catalog index May 9, 2014
.htaccess Added basic catalog index May 9, 2014
.travis.yml
LICENSE Initial import May 2, 2014
README.md Added link to example. Mar 10, 2015
composer.json
config.php.dist Fixed relative download-url-prefix config and added a test to catch i… May 9, 2014
index.php Do not send output for HEAD requests. May 3, 2014
phpdoc.xml Initial import May 2, 2014
phpunit.xml.dist

README.md

Vagrant Catalog

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