Fred Youhanaie

YAWLbox, a self contained YAWL engine

Following my initial play with YAWL on a Debian box, I have now created a Vagrant base box that can be downloaded and deployed from Dropbox.

This can be used as the base platform for experimenting with YAWL4Enterprise.

Getting Started

To get up and running, and provided that you have Vagrant and VirtualBox already installed on your server, then the following is all you need:

mkdir yawlbox
cd yawlbox
vagrant init yawlbox
vagrant up

You should be able to watch the boot process by connecting to the console with any RDP client, such as tsclient or xfreerdp, the VRDE port is the default 3389.

Once, the box is up, you can login with vagrant ssh. You should also be able to connect to YAWL with http://localhost:8888/resourceService.

For connecting from the YAWL Editor to the engine you would need to adjust the hostname and port as above. The change can be done in the Settings drop down menu of the Editor with the “Engine Connection” and “Resource Service Connection” menu items.

The Software Stack

The box consists of the following major components:

  1. Debian 7.1.0 (Wheezy)
  2. PostgreSQL 9.2
  3. Tomcat 7
  4. YAWL Engine 2.3.5

Box Configuration


The set of packages installed at the base OS layer is minimal, there are no Desktop, X11 or other software included. The base OS only contains what is needed for PostgreSQL, Tomcat and YAWL.


This was installed using the apt repository at A new database was created for yawl with owner postgres and the password expected by YAWL.

The box uses single NAT interface to connect to the outside world. There are two port forwarding rules that allow the outside world to connect to the vbox. These are shown below, and defined in the VagrantFile that was created during the vagrant init phase:

Host Guest Guest Service
2222 22 SSH server
8888 8080 Tomcat service

Important Notes

The vagrant box is intended as a conventient way for anyone interested in experimenting or building prototypes with the YAWL4Enterprise engine. As it stands the box needs additional changes, such as the default passwords for Vagrant, YAWL and Tomcat (see the respective manuals for the details) before the system is ready for production use.

The box comes with no warranties whatsoever, Do drop me a line if you find this useful, or experienced problems with the configuration.



Installing YAWL on a Debian system

What is YAWL?

YAWL (Yet Another Workflow Language) is an open source (LGPL) workflow system that started life about 10 years ago. You’ll find a good deal of documentation and examples at their web site.

This post is intended for those who have already discovered YAWL and would like to try YAWL4Enterprise on a Debian GNU/Linux system.

The YAWL documentation describes how to install YAWL4Enterprise on an MS windows based system, but it gives very brief guidance on how to do the same on other systems such as Linux.

The following is based on my experience of installing and configuring YAWL on a freshly created Debian 7.1.0 (Wheezy) system. These notes should be taken as complementary to those in the manual.

Summary of the steps

Note that these instructions are for installing YAWL on a fresh system, or at least one that is not running postgresql or tomcat.

You should certainly NOT attempt this on a production system, or one where you are already running tomcat or postgresql services, unless you already know what you are doing!

You should also be familiar with the installation chapter in the User Manual, as well as basic Debian software installation commands, such as apt-get.

Base system

Install Debian 7.1.0 on a system, either bare metal or a virtual machine. When using the interactive installer it is sufficient to only select the “standard system utilities” and the “ssh-server” packages.


Install PostgreSQL. The latest stable version available from the Debian repository is 9.1, however, you can install the latest stable version (currently 9.2) using the instructions on the PostgreSQL web site, if you wish.

Configure PostgreSQL. As user “postgres”, “createdb yawl”, we only need the empty database, YAWL will create the tables on start-up. Change the database user password to “yawl”, NOT the Linux one! This can be done using the “\password” command in psql.


Install Tomcat. The package “tomcat7” should be sufficient, however, you may also want to install “tomcat7-admin”, which provides admin access to the Tomcat applications/services.

Configure Tomcat. See the user manual for details. Note that the configuration files are in “/etc/tomcat7”.

Additional Packages

If you’ve opted for minimal base system, you will need to install two more packages, “unzip” will be needed to unpack the YAWL software, and “ttf-dejavu” for the fonts used by YAWL.


Install YAWL. The YAWL zip files should be unpacked in “/var/lib/tomcat7/webapps”. Once YAWL is unpacked in the webapps directory, restart Tomcat. It may take about a minute or so for the YAWL services to complete initialization. The log files are in “/var/log/tomcat7”, should there be a need for any troubleshooting.

If you encounter out of memory errors, follow the instructions in the manual, but note that the file “” should be put in “/usr/share/tomcat7/bin”.


The above steps should get you up and running with the minimum steps. For the rest you should be able to continue with the instructions in the user manual.

If you are happy to install/run YAWL on an existing server, then you should skip the OS install step, and only install the prerequisite package if not already installed.

For non-Debian systems, the steps should be very close to those above, although the paths may be different.