Devin AI b3a1e65119 Add platform-conditional HTTPS: Linux only
Revert to Flask app.run() and add platform detection to conditionally
enable HTTPS with certificates only on Linux systems. Non-Linux systems
(Windows/MSYS2) skip certificate generation and run HTTP instead to avoid
SSL socket blocking issues.

Changes:
- Use platform.system() to detect Linux vs non-Linux
- Linux: Generate OpenSSL certificates and run HTTPS (unchanged behavior)
- Non-Linux: Skip certificate generation and run HTTP on same port
- Reverted make_server() changes back to app.run()

This provides a pragmatic workaround for Windows/MSYS2 SSL socket
compatibility issues while maintaining full HTTPS functionality on Linux.

Co-Authored-By: Thiago Alves <thiagoralves@gmail.com>
2025-10-08 20:44:10 +00:00
2024-12-11 15:00:37 -05:00
2025-07-30 19:28:27 -04:00
2019-02-06 17:01:59 +00:00
2022-11-12 18:04:17 +02:00
2019-02-07 19:29:52 +01:00
2019-02-06 17:01:59 +00:00
2022-12-01 23:02:27 +02:00
2024-09-23 12:02:33 -04:00
2024-08-01 18:28:55 +02:00

OpenPLC Runtime version 3

Build Status Build status

OpenPLC is an open-source Programmable Logic Controller that is based on easy to use software. Our focus is to provide a low cost industrial solution for automation and research. OpenPLC has been used in many research papers as a framework for industrial cyber security research, given that it is the only controller to provide the entire source code. The OpenPLC Project consists of two sub-projects:

  1. Runtime
  2. Programming editor

Installation:

git clone https://github.com/thiagoralves/OpenPLC_v3.git
cd OpenPLC_v3
./install.sh [platform]

Where [platform] can be:

win - Install OpenPLC on Windows over Cygwin

linux - Install OpenPLC on a supported Linux distribution, currently Debian-based, Fedora-based, Opensuse and Alpine Linux is supported.

docker - Used by the Dockerfile (i.e. doesn't invoke sudo)

rpi - Install OpenPLC on a Raspberry Pi

custom - Skip all specific package installation and tries to install OpenPLC assuming your system already has all dependencies met. This option can be useful if you're trying to install OpenPLC on an unsuported Linux platform or had manually installed all the dependency packages before.

Building, Installing and Running inside Docker

When using Ubuntu: make sure docker for Ubuntu is installed

When using Linux Mint 21: make sure docker for Linux Mint 21 is installed

Build

# instead of running install.sh as stated above, run:
docker build -t openplc:v3 .

RUN

Devices can be passed to the docker daemon using the -v flag (e.g. -v /dev/ttyACM0:/dev/ttyACM0)

docker run -it --rm --privileged -p 8080:8080 openplc:v3

EtherCAT capability

To build with EtherCAT capability try ./install.sh linux ethercat for more information see utils/ethercat_src

Description
No description provided
Readme GPL-3.0 22 MiB
Languages
C++ 77.3%
C 5.8%
Shell 3.3%
JavaScript 3%
Java 2.4%
Other 8%