Skip to content

Installing

Akram El Assas edited this page Sep 12, 2024 · 30 revisions

Wexflow is easy to install and needs zero configuration. It can be installed and configured in a few seconds.

This section shows how to install the .NET version on Windows, and how to install the .NET Core version on Windows, Linux or macOS.

Windows (.NET)

  1. Install .NET Framework 4.8
  2. Download the latest release of Wexflow
  3. Right click on the installer, click on properties, check Unblock then click OK.
  4. Launch the installer and follow the instructions

After Wexflow is installed a Windows Service named Wexflow is installed and starts automatically.

The following menus are added in the start menu:

  • The "Backend" menu opens the backend.
  • The "Configuration" menu opens the configuration folder of Wexflow.
  • The "Documentation" menu opens the documentation folder of Wexflow.
  • The "Logs" menu opens the log file of the day.
  • The "Manager" menu opens Wexflow Manager GUI.
  • The "Install SQLite samples" menu installs SQLite workflow samples.
  • The "Install MongoDB samples" menu installs MongoDB workflow samples.
  • The "Install SQL Server samples" menu installs SQL Server workflow samples.
  • The "Install PostgreSQL samples" menu installs PostgreSQL workflow samples.
  • The "Install MySQL samples" menu installs MySQL workflow samples.
  • The "Install LiteDB samples" menu installs LiteDB workflow samples.
  • The "Install Oracle samples" menu installs Oracle workflow samples.

Here are the credentials to sign in from the backend or Wexflow Manager:

  • Username: admin
  • Password: wexflow2018

Once logged in, you can change the password from the backend.

You can host the backend on a web server if you want to.

You can choose from 7 persistence providers:

  • SQLite (Default)
  • MongoDB
  • SQLServer
  • PostgreSQL
  • MySQL
  • LiteDB
  • Oracle

See configration page to see how to change the persistence provider.

To install the backend on a web server, simply copy the content of the folder C:\Program Files\Wexflow\Backend\ in the web server. If you want to install the backend on another machine, simply edit the configuration file js/settings.js:

window.Settings = (function () {
    const hostname = (window.location.hostname === "" ? "localhost" : window.location.hostname);
    const port = 8000;

    return {
        Hostname: hostname,
        Port: port,
        Uri: "http://" + hostname + ":" + port + "/api/v1/"
    };
})();

Instead of hostname, put the IP or the DNS of the machine where Wexflow server is installed. Check that the port 8000 is open in the firewall. You can also change the port if Wexflow is running on a port different from 8000.

Windows (.NET Core)

  1. Download and install ASP.NET Core 8.0 Runtime
  2. Download and extract Wexflow's .NET Core package
  3. Double-click on "install.bat" to install the configuration files of Wexflow

That's it. Double-click on "run.bat" to start Wexflow workflow server

To open the backend, go to "Backend" folder and double-click on the file "index.html".

The credentials are the same listed in Windows .NET section.

Linux (.NET Core)

  1. Download and install ASP.NET Core 8.0 Runtime
  2. Download and extract Wexflow's .NET Core package in /opt/
  3. Add permissions:
sudo chown -R $USER:$USER /opt/wexflow
sudo chmod +x /opt/wexflow/install.sh
  1. Install wexflow systemd service:
sudo /opt/wexflow/install.sh

That's it. Wexflow is installed. Swagger is accessible from: http://<hostname>:8000

Now, we will install the backend on NGINX.

First, install NGINX:

sudo apt update
sudo apt install nginx-full

Then, add the backend to NGINX:

sudo nano /etc/nginx/sites-enabled/default

Add the following configuration:

server {
    listen 8011;
    root /opt/wexflow/Backend;
    index index.html;

    access_log /var/log/nginx/wexflow.access.log;
    error_log /var/log/nginx/wexflow.error.log;

    location / {
        # First attempt to serve request as file, then as directory,
        # then as index.html, then fall back to displaying a 404.
        try_files $uri $uri/ /index.html =404;
    }
}

Check NGINX configuration and if it is successfull restart NGINX:

sudo nginx -t
sudo systemctl restart nginx.service

That's it! the backend is installed and accessible from: http://<hostname>:8011

The credentials are the same listed in Windows .NET section.

If you want to use Apache instead of NGINX, install apache2:

sudo apt update
sudo apt install apache2

Create a new site:

sudo nano /etc/apache2/sites-enabled/wexflow.conf

With the following content:

Listen 8011
<VirtualHost *:8011>
 # The ServerName directive sets the request scheme, hostname and port that
 # the server uses to identify itself. This is used when creating
 # redirection URLs. In the context of virtual hosts, the ServerName
 # specifies what hostname must appear in the request's Host: header to
 # match this virtual host. For the default virtual host (this file) this
 # value is not decisive as it is used as a last resort host regardless.
 # However, you must set it for any further virtual host explicitly.
 #ServerName www.example.com

 ServerAdmin webmaster@localhost
 DocumentRoot /opt/wexflow/Backend

 <Directory "/opt/wexflow/Backend">
   DirectoryIndex index.html
   AllowOverride All
   Require all granted
 </Directory>

 # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
 # error, crit, alert, emerg.
 # It is also possible to configure the loglevel for particular
 # modules, e.g.
 #LogLevel info ssl:warn

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

 # For most configuration files from conf-available/, which are
 # enabled or disabled at a global level, it is possible to
 # include a line for only one particular virtual host. For example the
 # following line enables the CGI configuration for this host only
 # after it has been globally disabled with "a2disconf".
 #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Enable the new site and reload apache2:

sudo a2ensite wexflow.conf
sudo systemctl reload apache2

If you want to install the backend on another machine, you’ll need to edit the configuration file js/settings.js:

window.Settings = (function () {
    const hostname = (window.location.hostname === "" ? "localhost" : window.location.hostname);
    const port = 8000;

    return {
        Hostname: hostname,
        Port: port,
        Uri: "http://" + hostname + ":" + port + "/api/v1/"
    };
})();

Instead of hostname, put the IP or the DNS of the machine where Wexflow server is installed. Check that the port 8000 is open in the firewall. You can also change the port if Wexflow is running on a port different from 8000.

If you want to use MongoDB persistence provider, you must update /opt/wexflow/wexflow.service as follows:

[Unit]
Description=wexflow
Wants=mongod.service
After=mongod.service

[Service]
ExecStart=/usr/bin/dotnet Wexflow.Server.dll
WorkingDirectory=/opt/wexflow/Wexflow.Server

[Install]
WantedBy=multi-user.target

Then, run install.sh again:

sudo /opt/wexflow/install.sh

If you want to use SQLServer, MySQL, PostgreSQL or Oracle persistence provider, make sure to update Wants= and After= options with the matching services.

If you want to update wexflow to a newer version, proceed as follows:

  1. Backup Wexflow folder /opt/wexflow/Wexflow
  2. Remove /opt/wexflow
  3. Download and extract Wexflow's .NET Core package in /opt/
  4. Copy Wexflow folder that you have saved in /opt/wexflow
  5. Add permissions:
sudo chown -R $USER:$USER /opt/wexflow
sudo chmod +x /opt/wexflow/install.sh
  1. Update and restart wexflow systemd service:
sudo /opt/wexflow/install.sh

That's it. Wexflow is updated.

macOS (.NET Core)

  1. Download and install ASP.NET Core 8.0 Runtime
  2. Download and extract Wexflow's .NET Core package in /Applications/

That's it. You can run Wexflow as follows:

cd /Applications/wexflow/Wexflow.Server
dotnet Wexflow.Server.dll

You can open the backend by opening /Applications/wexflow/Backend/index.html on a browser.

The credentials are the same listed in Windows .NET section.

Clone this wiki locally