App container 

A PLCnext App is stored in a SquashFS container (see Squash FS on Wikipedia). A SquashFS container stores a folder and file structure in a single compressed file. The SquashFS containers of all installed and started apps are mounted by the AppManager in the Linux file system at a defined location. App containers are mounted as "read-only", i.e. the contents of the container cannot be changed.


The file system within an app container must contain at least the app description file, in which all the necessary information about the app are conveyed to the runtime system. The app description file is a text file in JSONJSON(JavaScript Object Notation - see JSON on Wikipedia) format and the file name must be app_info.json


Location of the app description file in the container file system:

/  <- Root node


Structure of the app_info.json file:

  "plcnextapp": {
  "name": "<app name>",
  "identifier": "<App Identifier>",
  "version": "<version>",
  "target": "<target>",
  "minfirmware_version": "<min_firmware>",
  <optional plcnextapp meta data>
  <optional app parts: app dependent data>

In generally, there are two classes of app information:

  • PLCnext App Meta Data: stored in the JSON object "plcnextapp" (Metadata)

Optional information about app parts:

Note: System files such as the nginx.config file must not be modified by the app (parts). Otherwise, problems may occur in the system, especially after a firmware update.





•  Web browser recommendation: Chrome, Firefox 78 or newer, Edge 88 or newer, or Safari • 
• Published/reviewed: 2022-12-16 • Revision 11 •