Operating Modes: Standalone, Multiuser, and CLI
Standalone mode (desktop application)
The backend is started as a local process when the session starts and stopped when the session ends. It runs with the permissions of the operating system user who started it. There is no additional login in CODESYS 4. On Windows, the entry in the Start menu is used to open the user interface in a separate application window. Alternatively, on both Windows and Linux you could also use the c4-cli standalone-session command to start the session. For a description of the command, see the following: c4-cli standalone-session.
Requirements
Windows | Linux |
|---|---|
Windows x64 | Debian Linux (x64 and ARM64) Currently, only Debian is officially supported. |
| Debian Linux (x64): The Runtime system for Debian Linux (ARM64) – see Scripted Install |
| An active graphical interface for starting the interface in the browser |
For both operating systems: A CODESYS gateway and a CODESYS runtime system are not included in the setup or in the Debian package. They are installed separately from the CODESYS Store. The requirement is a runtime system CODESYS V3.5 SP16 or higher (no compact runtimes). The gateway and controller must be accessible from the workstation computer.
One user and one port per session. A workspace cannot be edited by multiple users simultaneously in the same session.
The standalone mode is restricted to access via
localhost.Only gateways which are reachable from the workstation computer can be used. The controller must also be accessible from the gateway.
Installation, extensions, library repositories, and device repositories are maintained separately on each workstation. In addition, there are remote repositories (by default for libraries) which are provided via the CODESYS Deployment Server.
On Linux, only Debian is officially supported. Running in emulators such as QEMU – also implicitly via Docker Multi-Platform – is currently not supported by .NET.
Multiuser mode (operation as a web server)
The backend runs as a persistent service on a Linux server which is operated via systemd or in a Docker image created by the user. Users use their browsers to gain access via the network and log in with their user accounts of the server. All users get their own sessions, isolated from the other users. Nothing is installed on the end device which makes it possible not only for Windows and Linux computers to be a workstation, but also macOS, for example. The projects are located centrally in the file system of the server, usually in the home directory of each user.
Server: Debian Linux (x64 and ARM64). Windows is not supported as a server operating system. The
aspnetcore-runtime-8.0package in the latest patch level and the CODESYS 4 Debian package are required. The service runs under a dedicated system user. For security reasons,c4-serverrefuses to start asroot.User accounts: Each user needs an account on the operating system of the server. The account can be authenticated via password and is a member of the
codesys-4group or a group which has been specified in the--login-groupsoption at startup. In the Docker container, the accounts must be provided within the container – for example via PAM – and the home directories must be mounted as persistent volumes. For more information, see the following: Preparation: Creating user accounts.Encryption: An upstream reverse proxy – for example, nginx – which handles TLS encryption and forwards WebSocket connections, and a valid TLS certificate or one that is trusted within your organization. For more information, see the following: Pre-positioning a TLS reverse proxy.
Controllers: A CODESYS gateway and a CODESYS runtime system from the CODESYS Store, with the following requirements: the gateway must be reachable from the server, and the runtime system must be reachable from the gateway. Alternatively, you could also deploy a local gateway directly on the server.
Knowledge: Administration of Linux systems, user management (PAM, LDAP, IPA, etc.), package management on Debian, management of TLS certificates, as well as Docker and nginx if needed.
CODESYS 4 itself does not implement TLS encryption yet. Without an upstream reverse proxy, the user interface will not work when accessing over the network, because it uses browser APIs which are available only in a secure context.
The login process relies on the user management of the server operating system. CODESYS 4 does not maintain its own user accounts, roles, or permissions. The version information of the instance can also be called via the
/version.jsonpath without logging in.CODESYS 4 is not currently distributed as a Docker image. To run the system in a container, you create a separate image. No support can be provided for the basic use of Docker. For a sample Dockerfile, see the following: Example of a Dockerfile. This is only a sample file which needs to be adapted to your specific requirements.
Only Debian is officially supported. Running in emulators such as QEMU – also implicitly via Docker Multi-Platform – is currently not supported by .NET.
Operating mode: c4-cli
This operating mode is available on all platforms, both locally via a terminal and remotely on the server (for example via SSH) or in scripts (for example in CI/CD environments, time-controlled jobs, etc.)