Self-host OpenPLC Runtime v4
v4.3.1Headless IEC 61131-3 PLC runtime controlled via REST API
- Stars
- 415
- CPU
- 1 GHz single-core
- RAM
- 512 MB
- Storage
- 500 MB free space
- Port
- 8443 (HTTPS REST API and WebSocket debug interface)
ghcr.io/autonomy-logic/openplc-runtimeWhat is OpenPLC Runtime v4?
This project provides a headless industrial PLC runtime that executes IEC 61131-3 programs on ordinary Linux hardware. It splits into a Python Flask REST API server and a C/C++ real-time engine that runs with SCHED_FIFO priority for deterministic scan cycles. The OpenPLC Editor desktop application compiles programs locally, uploads them via HTTPS, and controls execution through the API. A WebSocket interface enables live variable monitoring and forcing. The system supports a plugin architecture for hardware I/O drivers, with both Python and C/C++ plugins running in isolated virtual environments. Prebuilt container images target x86_64, ARM64, and ARM32. Installation options include Docker, Docker Compose, a one-line Linux installer that sets up Docker automatically, or a native source build. Minimum hardware is a 1 GHz CPU, 512 MB RAM, and 500 MB disk. The codebase is MIT-licensed and maintained by Autonomy Logic.
Should you self-host OpenPLC Runtime v4?
OpenPLC Runtime v4 scores 52/100 on selfhost.directory (how scoring works) and ranks #6 of 10 in IoT. It has 415 GitHub stars.
It shipped 10 stable releases in the past year. The latest, v4.3.1, came out on 13 October 2026. New versions land roughly every 2 weeks.
Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Python.
Its closest alternative on selfhost.directory is Mosquitto (76/100, 11 306 stars). It scores higher overall, so compare the two before you pick. See OpenPLC Runtime v4 vs Mosquitto side by side.
Features
- File Upload Security Validation
- Headless Service
- IEC 61131-3 Program Execution
- Plugin System for I/O Drivers
- Real-Time Deterministic Execution
- REST API for Editor Control
- TLS Encryption
- Unix Domain Socket IPC
- WebSocket Debug Interface
OpenPLC Runtime v4 README
More in IoT
OpenRemoteA self-hosted, open-source (AGPLv3) IoT platform for device management, rule-based automation, multi-protocol agents (MQTT, HTTP, KNX, Z-Wave), and real-time dashboards.
PiAwarePiAware is a self-hosted, open-source ADS-B client for Raspberry Pi that forwards aircraft transponder data to FlightAware with a local SkyAware web map.
pidoorsPiDoors is a self-hosted, open-source access control system for Raspberry Pi with Wiegand readers, React SPA dashboard, and offline caching.
PlatypushPlatypush is a self-hosted, open-source automation platform connecting hundreds of devices and services with event-driven routines, web UI, dashboards, and mobile access.
qt-openzwaveSelf-hosted Z-Wave controller daemon that bridges Z-Wave networks to MQTT and provides remote management via ozw-admin GUI, with direct Home Assistant integration.
RabbitMQOpen-source messaging and streaming broker for AMQP, MQTT, STOMP and streams, with a web UI and Prometheus metrics. Self-hosted via Docker or packages.
RaspAPOpen-source, self-hosted wireless router and access point web interface for Debian-based devices like the Raspberry Pi, adding VPN, ad blocking and DHCP control.
ring-mqttSelf-hosted open-source bridge connecting Ring devices to MQTT with RTSP video streaming for automation platforms.
Roborock Local ServerSelf-hosted, open-source HTTPS and MQTT stack that replaces the Roborock cloud, keeping robot vacuums on an isolated LAN with live maps and no rooting.
ros-mcp-serverSelf-hosted, open-source MCP server letting AI models control ROS/ROS2 robots via natural language through rosbridge — no robot code changes needed.
rpi-mqtt-monitorSelf-hosted system monitor for Raspberry Pi and Linux publishing metrics to Home Assistant via MQTT with zero-config auto-discovery.
shelly-managerLocal management for Shelly IoT devices without cloud connectivity.
0 comments