Everyware Software Framework Developer's Hub

Everyware Software Framework (ESF) is an enterprise-ready IoT Edge Framework distributed and supported by Eurotech. Based on Eclipse Kura, the open source Java/OSGi middleware for IoT gateways, ESF adds provisioning, advanced security, remote access, diagnostics monitoring. It supports ready-to-use field protocols (including Modbus, OPC-UA, S7, FANUC, J1939, J1979, BACnet, IEC 60870-5-101, IEC 60870-5-104, DNP3, M-bus), MQTT connectivity, and a web-based visual data flow programming to acquire data from the field, process it at the edge, and publish it to IoT Cloud Platforms. ESF features full remote device management through its integration with Everyware Cloud, Eurotech’s IoT Integration Platform.

Get Started

Directory Layout

This section describes the default ESF directory layout that is created upon installation. The default installation directory is as follows:


ESF File Structure

The idea behind the ESF file and folder structure is to separate user and framework configuration files, that is files that can be modified by the user to customise ESF behavior and files that are used by ESF to persist configurations. Moreover, some files are generated at runtime by ESF (i.e. database) and they are kept in specific folders.

The user directory contains the files that can be modified by the user (i.e. the configuration for the logging or custom ESF properties), while the framework folder keeps the configuration files used by ESF and that shouldn't be modified by the user. The data directory is used to persist files that are generated by ESF. Finally, the plugins folder contains all the jar files needed by ESF.
All of the ESF files are located within /opt/eurotech/esf folder using the structure shown in the following table:




Scripts that start ESF. It contains also scripts to recover the factory configuration.


Data files generated by ESF at runtime.


Embedded Database files.


Deployment package files that are not part of the standard ESF framework, but are installed at a later time.


Configuration data for ESF framework. The user shouldn't directly modify these files.


Log file from the latest ESF installation.


All of the libraries and ESF specific jar files needed for the framework execution.


Configuration files generated by the user or by ESF at runtime. These files can be modified by the user to customise the ESF behavior.


XML snapshot files; up to 10 successive configurations including the original.


Files used by Kura to configure security.


Backup files needed to restore factory configuration

Log Files

ESF regularly updates two log files in the /var/log directory:

  • /var/log/kura-console.log - stores the standard console output of the application. This log file contains the eventual errors that are thrown upon ESF startup.

  • /var/log/kura.log - stores all of the logging information from ESF bundles. The logger levels are defined in the log4j.xml configuration file as shown below:


The default logger level in this file is set to INFO. This level may be modified for the whole application or for a specific package as shown in the following example:

    <Logger name="org.eclipse" level="info" additivity="false">
        <AppenderRef ref="RollingFile"/>

    <Logger name="org.eclipse.kura.net.admin" level="debug" additivity="false">
        <AppenderRef ref="RollingFile"/>

    <Root level="info">
        <AppenderRef ref="RollingFile"/>


Default logger configuration

Due to an issue, the default log appender has to be changed from RandomAccessFileAppender to FileAppender. The log4j.xml has to be modified as follows:

    <File name="FileAppender" fileName="${filename}.log">
            <Pattern>%d{ISO8601} [%t] %-5p %c{1.} - %m%n</Pattern>

Updated about a year ago

Directory Layout

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.