Setting Up SCADA LTS
Deploy SCADA-LTS on ALPON X5 AI or ALPON X4 through ALPON Cloud: launch the HiveMQ and MySQL dependencies, build an ARM64 SCADA-LTS image from the official repository, push it to the Sixfab Container Registry, and open the dashboard on port 8080.
Deploy SCADA-LTS on ALPON
Run SCADA-LTS as a container on your ALPON X5 AI or
ALPON X4 for real-time monitoring and control of industrial devices over Modbus. This
guide deploys the HiveMQ and MySQL dependencies through
ALPON Cloud, builds an arm64 SCADA-LTS image, pushes it to the
Sixfab Container Registry, and opens the dashboard on port 8080.
Deploy the HiveMQ and MySQL containers from the
Applications → Deploy panel on ALPON Cloud, build an arm64
SCADA-LTS image from the official Scada-LTS repository with the Dockerfile and entrypoint
below, push it to your Sixfab Container Registry, then deploy it on your
ALPON X5 AI or ALPON X4 with CATALINA_OPTS set and
Host Network enabled. Open http://<DEVICE_IP>:8080 in a browser to reach
the SCADA-LTS dashboard.
Overview
SCADA-LTS is an open-source platform for industrial automation, enabling real-time monitoring and control of devices. Running it as a container on an ALPON X5 AI or ALPON X4 keeps supervision local: the device sits on the same network as your equipment, works without a cloud round-trip, and stays manageable through ALPON Cloud. By following this guide, you will learn how to configure Modbus (Ethernet/WiFi), build a Docker container, and deploy SCADA-LTS in ALPON Cloud.
SCADA-LTS depends on a MySQL database and, for MQTT data sources, on a HiveMQ broker, so this guide deploys those two containers first. The steps below are identical on ALPON X4 and ALPON X5 AI. For further configuration, see the official SCADA-LTS repository.
You need an ALPON X5 AI or ALPON X4 registered on ALPON Cloud, and Docker installed on your build machine to build and push the image. Git (optional, for cloning the repository) and a text editor such as Nano or Vim are also useful. Familiarity with Docker and with industrial automation concepts (Modbus, SCADA systems) is assumed. New to container deployment? Start with Containerize Apps for ALPON.
Before deploying, make sure ports 8080 and 3306 are not in use on your ALPON
device, as these ports are required for the SCADA-LTS and MySQL connections.
If you're using a remote MySQL server, don't forget to configure your authorization settings properly. After making all these changes, rebuild the container.
Additionally, for HiveMQ to be accessible, configure SCADA-LTS to use the LAN IP address for communication, ensuring that SCADA-LTS can reach HiveMQ as needed.
-
1
Deploy HiveMQ
Open your device in ALPON Cloud, go to the Applications section, and click + Deploy. In the Deploy Container window, use these settings:
Container NameA name for the broker container, e.g.hivemq.ImageCheck “I would like to use my own container path” and fill the Image name field withhivemq-container.PortsClick + Add More and add the two port mappings in the table below.From To 308818080318831883Click Deploy to launch HiveMQ on the device.
-
2
Deploy MySQL
SCADA-LTS needs the MySQL setting
log-bin-trust-function-creatorsenabled, which is supplied through a custommy.cnf. Create the file on the device first: in ALPON Cloud, click Open Remote Terminal and create/tmp/my.cnf:remote terminal · create my.cnfnano /tmp/my.cnf
Add the following content, then save and exit the editor:
/tmp/my.cnf ini[mysqld] log-bin-trust-function-creators=1
Back in the Applications section, click + Deploy again and use these settings in the Deploy Container window:
Container NameA name for the database container, e.g.mysql.ImageCheck “I would like to use my own container path” and fill the Image name field withmysql-container.EnvironmentClick + Add More and add the four variables in the first table below.VolumesClick + Add More and mount themy.cnffile you just created (second table below).Enable Host NetworkTurn this on.Key Value MYSQL_ROOT_PASSWORDrootMYSQL_DATABASEscadaltsMYSQL_USERrootMYSQL_PASSWORDrootRead/Write Local Path Target Path Read/Write /tmp/my.cnf/tmp/my.cnfClick Deploy to launch the MySQL server on the device.
-
3
Prepare the SCADA-LTS build
To build SCADA-LTS you need its source code and a Dockerfile. On your build machine, clone the repository:
bash · clone Scada-LTSgit clone https://github.com/SCADA-LTS/Scada-LTS.git
Download the Scada-LTS WAR file
Go to the Scada-LTS release page, find the latest stable version, and download the
Scada-LTS.warfile. Move it into theScada-LTSfolder you just cloned.Edit the Dockerfile
Below is a Dockerfile that installs SCADA-LTS, prepares a runtime environment, and provides Modbus communication. Replace the
Dockerfilein the cloned repository with the following:Dockerfile dockerfileFROM tomcat:9.0.86-jre11 COPY tomcat/lib/mysql-connector-java-5.1.49.jar /usr/local/tomcat/lib/mysql-connector-java-5.1.49.jar COPY tomcat/lib/activation.jar /usr/local/tomcat/lib/activation.jar COPY tomcat/lib/jaxb-api-2.4.0-b180830.0359.jar /usr/local/tomcat/lib/jaxb-api-2.4.0-b180830.0359.jar COPY tomcat/lib/jaxb-core-3.0.2.jar /usr/local/tomcat/lib/jaxb-core-3.0.2.jar COPY tomcat/lib/jaxb-runtime-2.4.0-b180830.0438.jar /usr/local/tomcat/lib/jaxb-runtime-2.4.0-b180830.0438.jar COPY Scada-LTS.war /usr/local/tomcat/webapps/ RUN apt update; RUN apt install -y unzip; RUN apt install -y wait-for-it; RUN apt clean; RUN rm -rf /var/lib/apt/lists/*; RUN ls -l; RUN cd /usr/local/tomcat/webapps/ && ls -l && mkdir Scada-LTS && unzip Scada-LTS.war -d Scada-LTS; COPY docker/config/context.xml /usr/local/tomcat/webapps/Scada-LTS/META-INF/context.xml COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] CMD ["/usr/bin/wait-for-it", "--host=database", "--port=3306", "--timeout=30", "--strict", "--", "/usr/local/tomcat/bin/catalina.sh", "run"]
Using a remote databaseIf you use a remote database, update only the IP address for
databasein theentrypoint.shscript below.Create the entrypoint.sh script
The following
entrypoint.shscript is necessary to ensure that the MySQL database hostname (database) is recognized by the container. If using a remote database, replace127.0.0.1with the IP address of your MySQL server. Save the script in the same directory as the Dockerfile:entrypoint.sh bash#!/bin/bash if ! grep -q "127.0.0.1 database" /etc/hosts; then echo "127.0.0.1 database" >> /etc/hosts fi exec "$@" -
4
Build, test, and push the SCADA-LTS image
Before deploying on ALPON Cloud, build and test the image on your personal computer:
bash · build and test locallydocker build -t scadalts-container . docker run --network host -it scadalts-container
With
--network hostthe container shares your machine’s network, so SCADA-LTS’s default port (8080) is reachable directly and you can test locally athttp://localhost:8080.After testing locally, rebuild the image for the
arm64architecture so it runs on the ALPON:bash · build for arm64docker buildx build --platform linux/arm64 -t scadalts-container .
Once the build completes, log in to Sixfab Registry, click + Add Container, and follow the prompts to push the image.
Pushing images to the Sixfab Container RegistryFor the full walkthrough of tagging and pushing an image, see Update Containers from the Sixfab Container Registry.
-
5
Deploy the container on ALPON
Open your device in ALPON Cloud, go to the Applications section, and click + Deploy. In the Deploy Container window, use these settings:
Container NameThe application name, e.g.scadalts-container.ImageThe Scada-LTS image and tag you pushed to the Sixfab Container Registry.EnvironmentClick + Add More and add the variable in the table below.Enable Host NetworkTurn this on.PrivilegedTurn this on only if you will transfer data via USB (see the note below).Key Value CATALINA_OPTS-Xmx2G -Xms2GUSB data transferIf you will use a data transfer via USB, do not forget to enable the Privileged option on the deployment screen for SCADA-LTS to work correctly.
Click + Deploy to launch SCADA-LTS on the device, then wait about 5 minutes for Scada-LTS to start.
-
6
Open the SCADA-LTS dashboard
After deployment, wait about 5 minutes, then find the device's local IP address under Asset Details → Network tab → Interface Monitoring → Details and open the dashboard in a browser:
browser · SCADA-LTS dashboardhttp://<DEVICE_IP>:8080When the SCADA-LTS dashboard loads, configure your Modbus and other connections from the Data Source tab. If it doesn't load, confirm that the
scadalts-container, MySQL, and HiveMQ containers are all running in the Applications section and that Host Network was enabled in step 5.
- The HiveMQ, MySQL, and
scadalts-containercontainers all show as running in the Applications section. - The dashboard loads at
http://<DEVICE_IP>:8080. - You can add a Modbus data source from the Data Source tab.
SCADA-LTS is now running on the ALPON. Add your Modbus and MQTT data sources and build your first graphical view.
Production image policy: Replace floating
:latestreferences with a reviewed immutable tag or digest, then record the selected version for rollback.
Updated 16 days ago
