Vesl

A Drupal environment with batteries included.

What is Vesl?

Vesl is the easiest and quickest way to spin up a Drupal website. Out of the box it comes with all the tools you'll need for development so you don't have to spend time cobbling these together yourself.

Docker

Under the hood Vesl uses Docker so it's very lightweight and blazingly fast to start up. Everything is powered by preconfigured images that you can access directly on Docker Hub.

Vim IDE

Our command line text editor is complete with a full-fledged debugger, definition lookup, file browser, search, auto-completion, syntax highlighting, code linting, and many more features.

Tmux

Split your terminal into multiple panes or windows to run processes like Sass, Grunt, or Gulp. You can save all your sessions after stopping a vesl using Resurrect.

MyCLI

Autocompletion and syntax highlighting for your MySQL prompt and an improved paged output (pager less -SFX) allows you to manage your database without needing a GUI.

Tig

Visual representation for your branches and git history. Quickly see exactly what files looked like at any given point in time. Review diffs on specific files and search through history with grep.

Drush and Drupal Console

Includes all Drupal specific tools for running tasks on the command line. Clear caches, build out module scaffolding, or manage your site configuration without leaving your terminal.

Features

  • Git blame, review diffs, and more right from vim using Fugitive.
  • Browse your file tree in vim using Nerdtree and Tabs.
  • Full path and fuzzy text search for your entire project in vim with Cntrl-P.
  • Full-fledged debugger for XDebug in vim using VDebug.
  • Jump to definition to review functions, classes, or methods with Ctags.
  • PHP linting for Drupal coding standards using PHPCS.
  • Browse the structure of files and jump to declarations with Tagbar.
  • Smart command completion and git context for your shell using Fish.
  • Manage project dependencies using industry standard Composer for PHP.
  • Localhost with SSL/TLS encryption already setup using OpenSSL.

Getting Started

Installation


Before Installation: Make sure you have Docker installed.

Download Vesl from GitHub:


wget https://raw.githubusercontent.com/Jantcu/vesl/master/vesl
                  

Make the file executable:


chmod u+x vesl
                  

Move the file into your path so you can run it from anywhere:


mv vesl /usr/local/bin/vesl
                  

If it's working you should be able to type vesl into your terminal and see:


                _        _~
__   _____  ___| |   _~ )_)_~
\ \ / / _ \/ __| |   )_))_))_)
 \ V /  __/\__ \ |   _!__!__!_
  \_/ \___||___/_|   \_______/

~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~
^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
                  

Creating a Vesl


Download the current version of Drupal 8 and unzip the files:


wget https://www.drupal.org/download-latest/zip
unzip zip
                  

Move inside the Drupal project (note your directory will likely have a different name):


cd drupal-8.6.4/ # Use the version you actually downloaded.
                  

Load the Drupal Blueprint into Vesl (only needs to be done on setup or if you want a newer version of the blueprint):


vesl load drupal
                  

Create a new vesl using the Drupal blueprint and name it when prompted:


vesl cast drupal
Name your vesl: whatever_name_you_like
                  

Optional: List all your Vesls to see info about them (Use the IP and Port listed for running Vesls to access your site in your web browser, example: https://0.0.0.0:443):


vesl list
                  

Attach to your container so you can start working on your site using the developer tools included with Vesl:


vesl sail whatever_name_you_chose
                  

When you're all set you can clean up this demo by deleting your Vesl:


exit # You need to leave the Vesl shell you're attached to first.
vesl dock whatever_name_you_chose # You need to stop the Vesl before deleting it.
vesl sink whatever_name_you_chose # Then confirm you want to delete forever.
Are you sure you want to permanently delete whatever_name_you_chose (y/n)? y
                  

Full Documentation


If you'd like more in depth documentation about all the commands you can run with Vesl, please checkout the repository on GitHub.

More on GitHub

License

Vesl was created by Jantcu and is 100% FREE and OPEN SOURCE under the MIT License.

A copy of this license is include in the repository.

If Vesl has helped you in a meaningful way and you'd like to contribute to keeping the project moving forward, we appreciate it. Thank you Open Source hero!

Contact

We hope you find Vesl useful for your CMS projects.
Feel free to get in touch if you have any questions or suggestions.

Why Vesl was created

Vesl came out of a Drupal core sprint in January 2017 when we found that new contributors were spending a full day trying to spin up a local Drupal environment. They were frustrated and discouraged before even writing any code so we began working on a solution. There were similar tools entering the space around the same time, but they all seemed focused on customization, which is great for handling all sorts of edge cases, but often adds unneeded complexity for setup and use. We decided to go the other direction with Vesl and created a one-size-fits-most product that is designed around simplicity and consistency. This makes Vesl a perfect candidate as a learning tool to be used for demos, code sprints, and projects that follow standard Drupal convention.

Other great projects: Vesl was designed to be dead simple, so in keeping with that goal, down the road you might find it's missing some more advanced features. If your environment needs to be more extensible, we recommend checking out some other excellent docker based orchestration tools like Lando or Docksal.

Jim Fisk
Founder at Jantcu

Get Connected