Sign inSign up

softproject/x4_server

By softproject

Updated 7 days ago

X4 BPMS - Docker image for X4 BPMS

Image
4

10K+

softproject/x4_server repository overview

X4 BPMS

X4 BPMS as a central digitization platform allows you to digitize your business processes on a business and technical level. Connect people, systems and devices and thus eliminate manual processes. Due to the low-code principle, users can use the X4 BPMS to independently digitize processes without deeper programming knowledge.

More information

X4 Server

X4 Server is the core element of the X4 BPMS. As central component of the X4 BPMS architecture, X4 Server is both the central storage for projects and business processes, and due to the integrated process engine (Virtual Execution System), the component responsible for the execution and control of all processes. An X4 Server license includes the subcomponents X4 ESB, X4 BPM, X4 WebApp and X4 Control Center.

Low Code

Modeling instead of Programming

Use the X4 Designer as central tool for modeling your processes intuitively and without programming:

  • Model business processes
  • Define business rules
  • Model integration flows
  • Configure adapters
  • Map data models
  • Create enterprise web apps without any programming knowledge

X4 Designer Download

Request Trial Version

Use the complete functionality of the X4 BPMS 30 days free of charge. Install the X4 BPMS and experience how easy process automation can be.

Request Trial Version

System Requirements

System Requirements

Contact us

You would like to learn more about our products and services?

Get in touch with us. We are happy to help you.

Downloads

Documentation

Quick start

Starting from version 7.x, the X4 Server is designed to work seamlessly with the Keycloak image to provide robust authentication mechanisms. To deploy both services together and ensure smooth integration, Docker Compose offers an effective solution:

---
 
services:
  keycloak:
    image: softproject/keycloak
    container_name: keycloak_container
    hostname: keycloak.localhost
    ports:
      - "8085:8085"
    networks:
      - internal
    environment:
      - KEYCLOAK_ADMIN=admin
      - KEYCLOAK_ADMIN_PASSWORD=demo
  x4:
    image: softproject/x4_server
    container_name: x4_container
    hostname: x4.localhost
    volumes:
      - "./x4.license:/opt/X4/x4.license" # X4 license binding, you should place a valid license.
      - "./configurations:/opt/X4/configurations" # Configuration binding for keycloak.
      - "./logs:/opt/X4/wildfly/standalone/log" # Logs binding.
     # - "./X4Config.xml:/opt/X4/X4config.xml" # X4config binding, you would need to place the file before starting.
      - "./deployments:/opt/X4/deployments" # Deployments binding, in case you want to add x4apps there.
      - "./X4DB/1:/opt/X4/X4DB/1" # Projects binding.
    ports:
      - "8080:8080"
    depends_on:
        - keycloak
    networks:
        - internal
networks:
    internal:

For more details on Docker Compose functionality and additional configurations, you can refer to the Docker Compose

Configuring Keycloak integration

To establish connectivity between the X4 Server Docker image and Keycloak, it's necessary to create a configuration file named keycloak_config.json under /opt/X4/configurations, as mounted in the Docker Compose setup. The contents of this file should resemble the following structure:

{
  "connection": {
    "realm": "X4Realm",
    "auth-server-url": "http://keycloak:8085/auth/",
    "resource": "X4",
    "credentials": {
      "secret": "60304a13-8fa6-4899-94a2-0c10562768ec"
    }
  }
}

Please note that from version 7.2 onwards, the section regarding "rest-api-credentials" is no longer needed.

Changing Keycloak Secrets

It's imperative to modify the default secret in Keycloak for enhanced security measures. To change the secret:

  1. Log in to the Keycloak admin console.
  2. Navigate to the "Realm Settings".
  3. Select the appropriate realm.
  4. Go to the "Credentials" tab.
  5. Click "RSA" or "ECDSA" to change the secret accordingly.
Environment variables

H2 is shipped by default as X4 DB but if you want to change it you can use the following variables:

  • DATABASE_MODE: Specifies the type of database being used. Supported modes include 'postgresql' and 'sqlserver'.
  • DATABASE_USER: Database username.
  • DATABASE_PASSWORD: Database password.
  • DATABASE_HOST: Hostname of the database server. Note: If using a local db instance, avoid using localhost as the container will not reach localhost of the host machine. Instead, use the IP address of the host machine accessible from the Docker container.
  • DATABASE_PORT: Database port number.

Please note that when using environment variables to configure a database different than H2, it's essential to ensure the database is migrated appropriately or an existing X4 database is used. The migration tool can be downloaded from Update Tool

Example Docker Compose setup:

---

services:
  x4:
    image: softproject/x4_server
    container_name: x4_container
    hostname: x4.localhost
    environment:
      - DATABASE_MODE=postgresql
      - DATABASE_USER=postgres
      - DATABASE_PASSWORD=postgres
      - DATABASE_HOST=postgres_db
      - DATABASE_PORT=5432
    ...
Additional examples

For those seeking to utilize Docker images for all components, including a database, consider the following example with PostgreSQL integration.

Please note it's essential to ensure the database is migrated appropriately or an existing X4 database is used. The migration tool can be downloaded from Update Tool

---

services:
  keycloak:
    image: softproject/keycloak
    container_name: keycloak_container
    hostname: keycloak.localhost
    ports:
      - "8085:8085"
    networks:
      - internal
    environment:
      - KEYCLOAK_ADMIN=admin
      - KEYCLOAK_ADMIN_PASSWORD=demo

  postgres_db:
    image: postgres:latest
    container_name: postgres_container
    hostname: postgres_db # We can define a hostname and as it is on the same network (internal) it can be accesible from X4
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=X4
    ports:
      - "5432:5432"
    networks:
      - internal
    volumes:
      - ./postgres_data:/var/lib/postgresql/data # If you need to place your old data or make them persistent.
  x4:
    image: softproject/x4_server
    container_name: x4_container
    hostname: x4.localhost
    environment:
      - DATABASE_MODE=postgresql
      - DATABASE_USER=postgres
      - DATABASE_PASSWORD=postgres
      - DATABASE_HOST=postgres_db
      - DATABASE_PORT=5432
    volumes:
      - "./x4.license:/opt/X4/x4.license" # X4 license binding, you should place a valid license.
      - "./configurations:/opt/X4/configurations" # Configuration binding for keycloak.
      - "./logs:/opt/X4/wildfly/standalone/log" # Logs binding.
      - "./X4Config.xml:/opt/X4/X4config.xml" # X4config binding, you would need to place the file before starting.
      - "./deployments:/opt/X4/deployments" # Deployments binding, in case you want to add x4apps there.
      - "./X4DB/1:/opt/X4/X4DB/1" # Projects binding.
    ports:
      - "8080:8080"
    depends_on:
        - keycloak
        - postgres_db
    networks:
        - internal
networks:
    internal:

Tag summary

Content type

Image

Digest

sha256:66faaaf5b

Size

762.4 MB

Last updated

about 1 month ago

docker pull softproject/x4_server