• This repository has been archived on 25/May/2022
  • Stars
    star
    141
  • Rank 259,149 (Top 6 %)
  • Language
    PHP
  • License
    Mozilla Public Li...
  • Created about 11 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Vagrant box for Joomla development.

Screenshot

Joomlatools Vagrant

Joomlatools Vagrant automates the setup of a Joomla development environment. It is capable of running a full featured LAMP stack with a single command so that you can start working on your Joomla projects quickly.

Requirements

Installation

  1. Install VirtualBox

  2. Install Vagrant

  3. Run the following commands in a folder of your choice:

    vagrant init joomlatools/box
    
  4. Only for Ubuntu users - start the NFS service to be able to mount directories:

    sudo service nfs-kernel-server start
    
  5. Start the box:

    vagrant up
    

    This will download the Vagrant box and get it running.

  6. Add the following line into your hosts file (/etc/hosts on Linux and MacOS, for other operating systems see here)

    33.33.33.58 joomla.box webgrind.joomla.box phpmyadmin.joomla.box
    
  7. The dashboard is now available at joomla.box

There will be two new folders created called www and Projects. These folders act as shared folders between your host computer and the box.

Usage

  1. Once you have installed the box as described above, SSH into the box:

    vagrant ssh
    
  2. Create your first Joomla website with this command:

    joomla site:create mysite
    
  3. Your new site is available at joomla.box/mysite. You can login using the credentials admin / admin.

  4. You can now symlink and install your custom extensions into the site, manage PHP versions and much more. Head over to our documentation pages to learn more about the box and its possibilities.

Updating to the latest version

When new versions of the box are released you can update your local machine by executing:

vagrant box update

Note that updating the box will not update an already-running Vagrant machine. To reflect the changes in the box, you will have to destroy (vagrant destroy) and bring back up the Vagrant machine (vagrant up).

For more details refer to our FAQ.

Sharing access to the box

HTTP

Open source is all about collaboration, so there will be times you will want to share your work with others. Luckily for you, we've pre-configured ngrok to run within the vagrant box.

We've also created a new box command box share to help you share your websites.

Terminal

You can also share access to the terminal via SSH. There are two methods:

  1. With tmate: run the tmate command on the box and share the resulting ssh connection string.
  2. Using Vagrant's built-in SSH sharing feature.

Hacking on the box

Set up

If you want to make changes to the box's infrastructure, you can do so by building the box from scratch. Follow these steps to get started:

  1. Clone this repository:

    git clone https://github.com/joomlatools/joomlatools-vagrant.git
    
  2. Install required Vagrant plugins

    vagrant plugin install vagrant-puppet-install
    vagrant plugin install vagrant-vbguest
    
  3. Install dependencies with bundler:

    bundle install
    
  4. Go to the repository folder and build the box:

    cd joomlatools-vagrant
    vagrant up
    
  5. You can now edit the Puppet configuration. To apply your changes, provision the box again:

    vagrant provision
    

Building and releasing using Packer

We use Packer to automatically build the box. To start a build, follow these steps:

  1. Clone this repository:

    git clone https://github.com/joomlatools/joomlatools-vagrant.git
    
  2. Install dependencies with bundler:

    bundle install
    
  3. Download the required Puppet modules using librarian-puppet:

    cd puppet
    librarian-puppet install --path modules/common/
    
  4. Install Packer

  5. Now edit the packer.json file. Look for the current version and increase the version number. The version number is defined in the variables section and can be found at the top of the file. It looks like this:

  6. Also increase the $box_version variable in puppet/manifests/default.pp and update the changelog.

  7. Commit the change and push back to GitHub.

  8. Instruct packer to start the build:

    packer build -on-error=ask packer.json
    
  9. Once finished a joomlatools-0.0.0.box file will be created with the correct version number. Upload it to Vagrant Cloud to make it available to everyone else.

  10. After publishing the new version, make sure to update the commands on the Joomlatools Developer site (see wiki) and update the phpmanager dependency installation script.

Run ServerSpec tests

  1. Go to the tests directory: cd tests/
  2. Install serverspec with bundle install
  3. Run the tests: bundle exec rake spec

Note: to run on the box, run BACKEND=exec bundle exec rake spec

Reporting issues

The box is a very complex piece of technology, based on many different open source tools and libraries many of which are far beyond our capabilities and understanding.

We therefore deliberately keep the Issues section on this specific Github repo closed for such questions as we want to encourage people to submit code to add features or fix bugs by opening up Pull Requests instead of report bug or problems through Issues.

If you do have a problem running the box please use either our forum or chat room to get in touch with us and we are most happy to try and help you.

Contributing

Joomlatools Box is an open source, community-driven project. Contributions are welcome from everyone. We have contributing guidelines to help you get started.

Contributors

See the list of contributors.

License

Joomlatools Vagrant box is free and open-source software licensed under the MPLv2 license.

Community

Keep track of development and community news.

More Repositories

1

joomlatools-console

Command line interface (CLI) for Joomla.
PHP
111
star
2

joomlatools-composer

Composer extension installer for Joomla.
PHP
52
star
3

joomlatools-pages

Joomlatools Pages is an easy to use page generator (for Joomla)
PHP
48
star
4

joomlatools-platform

Modern Joomla developer stack.
PHP
33
star
5

joomlatools-framework

Modern PHP extension framework (for Joomla)
JavaScript
19
star
6

joomla-basicauth

Basic HTTP authentication plugin for Joomla.
PHP
13
star
7

joomla-catcher

Catch and debug Joomla events.
PHP
10
star
8

joomlatools-gitpod

A super simple way to test out different versions Joomla, straight from the browser with
Shell
8
star
9

joomlatools-todo

Todo extension for Joomla build using Joomlatools Framework.
PHP
7
star
10

joomlatools-server

Cloud native dev evironment for Joomla CMS, Wordpress and Joomlatools Pages
Shell
5
star
11

joomlatools-composer-helloworld

A Hello World component for Joomla
PHP
4
star
12

joomlatools-platform-content

Content extension for Joomlatools Platform.
PHP
3
star
13

joomlatools-framework-tags

Tagging component for Joomlatools Framework.
PHP
2
star
14

homebrew-mason

Homebrew formula for Joomlatools Mason
Ruby
2
star
15

joomlatools-framework-scheduler

Job scheduler component for Joomlatools Framework.
PHP
2
star
16

joomlatools-framework-comments

Comments Component for Joomlatools Framework.
PHP
2
star
17

joomlatools-pages-playground

Online playground for Joomlatools Pages, explore the demos right from your browser.
Shell
2
star
18

joomlatools-platform-media

Media extension for Joomlatools Platform
JavaScript
1
star
19

joomlatools-platform-finder

Finder extension for Joomlatools Platform.
PHP
1
star
20

joomlatools-platform-categories

Category extension for Joomlatools Platform.
PHP
1
star
21

joomlatools-framework-migrator

A reusable migrator for Joomlatools Framework.
PHP
1
star
22

joomlatools-framework-files

Files System Component for Joomlatools Framework.
JavaScript
1
star
23

logman-k2

K2 plugin for LOGman.
PHP
1
star
24

logman-kunena

Kunena plugin for LOGman.
PHP
1
star
25

joomlatools-framework-activities

Activity Stream Component for Joomlatools Framework.
PHP
1
star