-
-
Notifications
You must be signed in to change notification settings - Fork 178
Installing
Wexflow is easy to install and requires zero configuration. It can be installed and configured in just a few minutes.
This section explains how to install Wexflow on Windows, Linux, and macOS.
- Windows (.NET 4.8 - Legacy)
- Windows (.NET 9.0+ - Stable)
- Linux (.NET 9.0+ - Stable)
- macOS (.NET 9.0+ - Stable)
- Installing the Admin Panel on a Web Server
You can install Wexflow as a Windows Service (targeting .NET Framework 4.8) using one of the following installers:
- wexflow-x.x-windows-x64.exe (64-bit)
- wexflow-x.x-windows-x86.exe (32-bit)
- Install .NET Framework 4.8
- Download the latest release of Wexflow
- Right click on the installer, click on properties, check Unblock then click OK.
- Launch the installer and follow the instructions
After installation, a Windows Service named Wexflow is installed and starts automatically.
The following menus are added in the start menu:
- The "Admin Panel" menu opens the Admin Panel.
- 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.
The admin panel is accessible at: http://localhost:8000/
You can sign in to the admin panel or Wexflow Manager using the following credentials:
- Username: admin
- Password: wexflow2018
Once logged in, you can change the password via the Admin Panel.
You can choose from 6 persistence providers:
- SQLite (Default)
- MongoDB
- SQLServer
- PostgreSQL
- MySQL
- LiteDB
See configuration page to see how to change the persistence provider.
Follow these steps to run Wexflow using the .NET 9.0+ version on Windows:
- Install ASP.NET 9.0 Runtime
- Download and extract the latest Wexflow's .NET 9.0+ package (wexflow-x.x-windows-netcore.zip)
- Double-click on
install.bat
to install the configuration files (the database will not be overwritten).
That's it! To start the Wexflow workflow server, simply double-click on run.bat
.
Once the server is running, the admin panel will be accessible at: http://localhost:8000/
You can sign in to the admin panel using the following credentials:
- Username: admin
- Password: wexflow2018
You can find detailed instructions about configuration here.
If you want to run Wexflow as a Windows Service (.NET 9.0+), it is recommended to use Servy or NSSM (Non-Sucking Service Manager). Both tools offer improved control over service startup behavior and working directories.
First, Download Wexflow .NET 9.0+ package (wexflow-x.x-windows-netcore.zip), extract it to C:\Program Files\Wexflow Server\
.
- Download and install Servy
- Open Servy
- In the Servy GUI:
- Service Name: WexflowServer
- Service Description: Wexflow Workflow Automation Engine
-
Process path:
C:\Program Files\dotnet\dotnet.exe
-
Startup Directory:
C:\Program Files\Wexflow Server\Wexflow.Server\
-
Process Parameters:
Wexflow.Server.dll
- Click Install
-
Download NSSM, extract it to
C:\Program Files\nssm
and addC:\Program Files\nssm\win64\
to yourPATH
environment variable - Open an elevated Command Prompt (Run as Administrator).
- Run the following command to install the service:
nssm install WexflowServer
-
In the NSSM GUI:
-
Application path:
C:\Program Files\dotnet\dotnet.exe
-
Arguments:
Wexflow.Server.dll
-
Startup directory:
C:\Program Files\Wexflow Server\Wexflow.Server\
-
Application path:
-
Click Install service.
-
Set the service description (optional but recommended):
sc description WexflowServer "Wexflow Workflow Automation Engine"
- Start the service:
nssm start WexflowServer
Once started, the Wexflow admin panel will be accessible at:
- URL: http://localhost:8000/
- Username: admin
- Password: wexflow2018
To remove the Wexflow Windows service installed with NSSM:
- Stop the service:
nssm stop WexflowServer
- Remove the service:
nssm remove WexflowServer confirm
Note: Installing systemd services, modifying permissions, and firewall rules on Linux require root or sudo privileges. Use sudo
as needed when running commands.
Follow these steps to run Wexflow using the .NET 9.0+ version on Linux:
- Download and install ASP.NET 9.0 Runtime
- Download and extract Wexflow's .NET 9.0+ package (wexflow-x.x-windows-linux.zip) in
/opt/
- Add permissions:
sudo chown -R $USER:$USER /opt/wexflow sudo chmod +x /opt/wexflow/install.sh
- Install wexflow systemd service:
sudo /opt/wexflow/install.sh
Wexflow is now installed and the admin panel will be accessible at: http://localhost:8000/
You can sign in to the admin panel using the following credentials:
- Username: admin
- Password: wexflow2018
The admin panel is self-hosted and directly accessible at http://localhost:8000/ when you install wexflow.
However, if you want to install it on NGINX, follow these steps:
First, install NGINX:
sudo apt update
sudo apt install nginx-full
Then, add the admin panel to NGINX:
sudo nano /etc/nginx/sites-enabled/default
Add the following configuration:
server {
listen 8011;
root /opt/wexflow/Admin;
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 successful restart NGINX:
sudo nginx -t
sudo systemctl restart nginx.service
That's it! the admin panel is installed and accessible from: http://<hostname>:8011
To install the admin panel on 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/Admin
<Directory "/opt/wexflow/Admin">
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 admin panel on a web server, you'll need to edit the configuration file js/settings.js
. Check out this section for full guideline.
To use MongoDB persistence provider, update /opt/wexflow/wexflow.service
file 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 or PostgreSQL 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:
- Backup
Wexflow
folder/opt/wexflow/Wexflow
- Remove /opt/wexflow
- Download and extract Wexflow's .NET package in /opt/
- Copy
Wexflow
folder that you have saved in /opt/wexflow - Add permissions:
sudo chown -R $USER:$USER /opt/wexflow
sudo chmod +x /opt/wexflow/install.sh
- Update and restart wexflow systemd service:
sudo /opt/wexflow/install.sh
That's it. Wexflow is updated.
For SQL Server, MySQL, or PostgreSQL adjust the Wants=
and After=
fields with the corresponding service names.
To update Wexflow to a newer version, follow these steps:
-
Back up the existing
Wexflow
folder:cp -r /opt/wexflow/Wexflow ~/Wexflow-backup
-
Remove the current Wexflow installation:
sudo rm -rf /opt/wexflow
-
Download and extract the latest Wexflow .NET Linux package into
/opt/
:cd /opt # download and extract wexflow-x.x-linux-netcore.zip
-
Restore the backed-up
Wexflow
folder:mv ~/Wexflow-backup /opt/wexflow/Wexflow
-
Set the correct permissions:
sudo chown -R $USER:$USER /opt/wexflow sudo chmod +x /opt/wexflow/install.sh
-
Reinstall and restart the systemd service:
sudo /opt/wexflow/install.sh
Wexflow is now updated and running.
Follow these steps to run Wexflow using the .NET 9.0+ version on macOS:
- Download and install ASP.NET 9.0 Runtime
- Download and extract Wexflow's .NET package (wexflow-x.x-macos-netcore.zip) in
/Applications/
That's it. You can run Wexflow as follows:
cd /Applications/wexflow/Wexflow.Server
dotnet Wexflow.Server.dll
You can open the admin panel at: http://localhost:8000/
You can sign in using the following credentials:
- Username: admin
- Password: wexflow2018
The admin panel is self-hosted and by default accessible at: http://localhost:8000/
You can also host it on any web server.
To install the admin panel on a web server:
- Copy the contents of the folder
C:\Program Files\Wexflow\Admin\
to your web server's root or desired directory. - If you're hosting the backend (Wexflow server) on a different machine, update the configuration file
js/settings.js
as follows:
window.Settings = (function () {
// Get the current hostname or fallback to 'localhost'
const hostname = window.location.hostname === "" ? "localhost" : window.location.hostname;
// Default Wexflow backend port
const port = 8000;
// Use current protocol (http or https)
const protocol = `${window.location.protocol}//`;
return {
Hostname: hostname,
Port: port,
Uri: `${protocol}${hostname}:${port}/api/v1/`,
/**
* To enable Server-Sent Events (SSE), set `SSE` to true
* and ensure `Version` is set to "netcore"
*/
SSE: false,
/**
* Version of the Wexflow server: "net48" for .NET Framework 4.8,
* or "netcore" for .NET Core / .NET 5+.
*/
Version: "net48",
/**
* Debounce delay in milliseconds for real-time updates.
*/
DebounceDelay: 300,
};
})();
- Replace
hostname
with the IP address or domain name of the machine where the Wexflow server is installed. - Ensure that port 8000 (or the port you're using) is open in the firewall and accessible from the client machine.
- If your Wexflow server uses a different port, update the
port
value accordingly. - If you're using HTTPS in Wexflow Server, be sure to use HTTPS on your web server as well.
To install the admin panel on a web server:
- Copy the contents of the folder
Admin
to your web server's root or desired directory:- Windows:
.\Admin\
- Linux:
/opt/wexflow/Admin/
- macOS:
/Applications/wexflow/Admin/
- Windows:
- If you're hosting the backend (Wexflow server) on a different machine, update the configuration file
js/settings.js
as follows:
window.Settings = (function () {
// Get the current hostname or fallback to 'localhost'
const hostname = window.location.hostname === "" ? "localhost" : window.location.hostname;
// Default Wexflow backend port
const port = 8000;
// Use current protocol (http or https)
const protocol = `${window.location.protocol}//`;
return {
Hostname: hostname,
Port: port,
Uri: `${protocol}${hostname}:${port}/api/v1/`,
/**
* To enable Server-Sent Events (SSE), set `SSE` to true
* and ensure `Version` is set to "netcore"
*/
SSE: true,
/**
* Version of the Wexflow server: "net48" for .NET Framework 4.8,
* or "netcore" for .NET Core / .NET 5+.
*/
Version: "netcore",
/**
* Debounce delay in milliseconds for real-time updates.
*/
DebounceDelay: 300,
};
})();
- Replace
hostname
with the IP address or domain name of the machine where the Wexflow server is installed. - Ensure that port 8000 (or the port you're using) is open in the firewall and accessible from the client machine.
- If your Wexflow server uses a different port, update the
port
value accordingly. - If you're using HTTPS in Wexflow Server, be sure to use HTTPS on your web server as well.
Copyright © Akram El Assas. All rights reserved.
- Install Guide
- HTTPS/SSL
- Screenshots
- Docker
- Configuration Guide
- Persistence Providers
- Getting Started
- Android App
- Local Variables
- Global Variables
- REST Variables
- Functions
- Cron Scheduling
- Command Line Interface (CLI)
- REST API Reference
- Samples
- Logging
- Custom Tasks
-
Built-in Tasks
- File system tasks
- Encryption tasks
- Compression tasks
- Iso tasks
- Speech tasks
- Hashing tasks
- Process tasks
- Network tasks
- XML tasks
- SQL tasks
- WMI tasks
- Image tasks
- Audio and video tasks
- Email tasks
- Workflow tasks
- Social media tasks
- Waitable tasks
- Reporting tasks
- Web tasks
- Script tasks
- JSON and YAML tasks
- Entities tasks
- Flowchart tasks
- Approval tasks
- Notification tasks
- SMS tasks
- Run from Source
- Fork, Customize, and Sync