Skip to main content
Version: 3.0.0

How to configure and run Workflow Server

General information

Workflow Server is a ready-to-use Workflow Engine-based application that you can deploy into your infrastructure. It can be integrated with NodeJS, PHP, Ruby, .NET, or Java applications via an HTTP API. Workflow Server is a key component which manages the lifecycle of business objects within your enterprise.

Initially, download: workflowserver-version.zip from this page and extract it. Where version is the Workflow Server version number.

How to launch via docker

  1. Run the startcontainer script.

    • For Windows: run the file: startcontainer.bat

    • For Linux/MacOS:

      sudo chmod +x docker-files/wait-for-postgres.sh
      sudo chmod +x startcontainer.sh
      sudo ./startcontainer.sh

    This script build this workflowserver's solution and run it with Postgres database.

  2. Open http://localhost:8077 in a browser.

  3. Upload your license key via the Dashboard or save the licence key as 'license.key' into the folder or add to 'license' folder.

  4. Fill out the Callback API urls at http://localhost:8077/?apanel=callbackapi to perform integration.

If you would like to run Workflow Server on MSSQL or MongoDB. Must be used docker-compose files:

  • MS SQL Server: docker-files/docker-compose-mssql.yml
  • MongoDB: docker-files/docker-compose-mongo.yml

MongoDB script:

sudo chmod +x docker-files/wait-for-mongo.sh
sudo docker-compose -f docker-files/docker-compose-mongo.yml build
sudo docker-compose -f docker-files/docker-compose-mongo.yml run --rm start_db
sudo docker-compose -f docker-files/docker-compose-mongo.yml up

MSSQL script:

sudo chmod +x docker-files/wait-for-mssql.sh
sudo docker-compose -f docker-files/docker-compose-mssql.yml build
sudo docker-compose -f docker-files/docker-compose-mssql.yml run --rm start_db
sudo docker-compose -f docker-files/docker-compose-mssql.yml up

How to launch it with a custom database

  1. Run the following SQL-scripts on a Database (for MS SQL Server from SQL\MSSQL folder, for PostgreSQL from SQL\PostgreSQL, for Oracle from SQL\Oracle folder, for MySql from SQL\MySql folder):
    • CreatePersistenceObjects.sql
    • WorkflowServerScripts.sql
  2. Make the following changes to the config.json file:
    • Change the URL parameter to the IP and the port of the HTTP listener. Most likely you'll need to leave it as is.
    • Specify "mssql", "postgresql", "oracle", "mysql" or "mongodb" in the "provider" parameter depending on what database provider you are using.
    • Change the ConnectionString parameter to match your database provider connection settings.
  3. Install .NET 6.0.
  4. Run the Workflow Server.
    • Workflow Server supports console and service modes on Windows:
      • Run the start.bat file to run it in the Console mode.
      • Run the installservice.bat as administrator to run it in the Service mode.
    • For Linux/MacOS:
      • Open the terminal in the directory where was extracted the workflowserver-version.zip archive.
      • Run the following command: chmod +x start.sh
      • Run the following command: './start.sh'
  5. Open http://localhost:8077 in a browser.
  6. Upload your license key via the Dashboard or save the licence key as 'license.key' into the folder or add to 'license' folder.
  7. Fill out the Callback API urls at http://localhost:8077/?apanel=callbackapi to perform integration.

How to rebuild and run

  • For Windows:

    buildandstart.bat
  • For Linux/MacOS:

    sudo chmod +x buildandstart.sh
    sudo chmod +x start.sh
    sudo ./buildandstart.sh

How to run in Visual Studio

  1. Open WorkflowServer.sln in Visual Studio or JetBrains Rider.
  2. Check the connection string to the database in the config.json file, Provider and ConnectionString parameter.
  3. Run WorkflowServer project.

How to completely customize Workflow Server

  1. Open WorkflowServer.sln in Visual Studio or JetBrains Rider.
  2. The solution contains only one project, WorkflowServer; you can add references to your own projects and dlls to it.
  3. In the WorkflowServer project, find the Program.cs file; you can optionally configure WorkflowRuntime here.

Project

Program.cs contains the following code:

(bool success, IWebHost host) = initializer.BuildWebHost(workflowServer =>
{
//Register your own Action and Rule providers
//workflowServer.RegisterActionProvider(new ActionProvider());
//workflowServer.RegisterRuleProvider(new RuleProvider());

//Register your own CodeAutocompleter
//workflowServer.RegisterCodeAutocompleters(new CodeProvider());

//Register your own Identity Providers:
//workflowServer.RegisterOpenIdConnectProviders(authBuilder =>
//{
// authBuilder.AddOpenIdConnect("authenticationScheme", "display name", options =>
// {
// // ...
// //options.SignInScheme = IdentityServer4.IdentityServerConstants.ExternalCookieAuthenticationScheme;
// });
//});

//register additional assemblies
WorkflowRuntime.CodeActionsRegisterAssembly(typeof(System.Net.Http.HttpClient).Assembly);
});

The object workflowServer.WorkflowRuntime is available here; thus, you can add your own versions of:

Therefore, you get access for complete customization of Workflow Engine in Workflow Server.