Cybrotech SCGI server (Cybro Edge Toolkit) for CyBro-2 and CyBro-3 PLCs
100K+
Docker container for the CyBro SCGI server from the Cybro Edge Toolkit by Cybrotech Ltd.
The SCGI server is used for communicating with CyBro-2 and CyBro-3 PLCs from Cybrotech Ltd. The image also contains the data logger and MQTT client of the toolkit, which can be started as separate containers.
scgi_server v3.4.0, data_logger v3.2.4, mqtt_client v1.0.4), downloaded from cybrotech.com during the buildweb_scada from the toolkit is not included.
docker run -d --name cybroscgiserver -p 4000:4000/tcp -p 4080:80/tcp -p 8442:8442/udp killer007/cybroscgiserver:latest
All options (-p, -v, ...) must be placed before the image name; everything after the image name is passed to the container as a command.
Or with docker compose, see docker-compose.yml:
docker compose up -d
For detailed usage and valid system tags check the manual in the toolkit zip file: https://cybrotech.com/software/
| Port | Description |
|---|---|
| 80/tcp | HTTP via nginx, XML answer. Example: http://[ip]:4080/?sys.server_uptime |
| 4000/tcp | SCGI socket, XML answer. Example: http://[ip]:4000/?sys.server_uptime |
| 8442/udp | A-bus communication and push messages from the controllers |
Log messages are written to stdout, use docker logs cybroscgiserver to see them.
Autodetect of controllers uses UDP broadcasts, which do not leave the default docker bridge network. Either
--network host (port mappings are not needed then), orconfig.ini ([c20000] sections), or[docker host ip]:8442.The configuration file can be found under config/config.ini. Mount your own file to /usr/local/bin/scgi_server/config.ini:
-v "./config/config.ini:/usr/local/bin/scgi_server/config.ini"
Changes in config.ini are detected automatically and the server restarts itself.
The example differs from the toolkit default in two settings:
[ETH] port = 8442: a fixed port is needed so it can be published by docker[DEBUGLOG] enabled = true, log_to_file = false: errors are shown in docker logsThe old config file can still be used after adding two entries:
[SCGI]
server_address = localhost
[ALIAS]
The [CAN] and [DATALOGGER] sections are no longer used, the data logger is now a separate application (see below).
The same image runs the data logger or the MQTT client when the application name is passed as command:
docker run -d --network container:cybroscgiserver \
-v "./config/config.ini:/usr/local/bin/scgi_server/config.ini" \
-v "./config/data_logger.xml:/usr/local/bin/scgi_server/data_logger.xml" \
killer007/cybroscgiserver:latest data_logger
docker run -d --network container:cybroscgiserver \
-v "./config/config.ini:/usr/local/bin/scgi_server/config.ini" \
killer007/cybroscgiserver:latest mqtt_client
--network container:cybroscgiserver lets them reach the SCGI server on localhost ([SCGI] server_address).
[DBASE] of config.ini. The database tables are created with db_create.sql from the toolkit zip file.[MQTT], [PUBLISH] and [SUBSCRIBE] of config.iniWhen [SCGI] tls_enabled = true, the certificate from the toolkit in /usr/local/bin/scgi_server/tls/ is used. This key is publicly available, mount your own private.crt and private.key to that directory.
Content type
Image
Digest
sha256:5c80a11aa…
Size
29.2 MB
Last updated
about 20 hours ago
docker pull killer007/cybroscgiserver