Welcome to the Mini SCADA System repository. This project is divided into two main components:
Please refer to the respective directories for detailed documentation on wiring.
- Install Docker Make sure Docker and Docker Compose are installed on your machine.
- Run Docker Compose
Open command prompt in the root of this project and run:
docker-compose up -d
- Access Node-RED Editor
Open your browser and navigate to
http://localhost:1880. - Access IoTDB
You can connect to IoTDB at
localhost:6667.
To stop the services, run:
docker-compose downSince this system is used for penetration testing, components may be compromised, misconfigured, or crashed. Use the following procedures to restore the central servers to a clean baseline.
- Maintenance: Monitor the Node-RED debug tab for unauthorized flow injections or HTTP endpoint abuse.
- Restore to Baseline:
- Open the Node-RED editor at
http://localhost:1880. - Select all existing nodes (Ctrl+A) and delete them.
- Click Menu > Import and select the clean
node-REDFlow.jsonfrom either thePLC SystemorRaspberry Systemdirectory, depending on the active test scenario. - Click Deploy to overwrite any compromised flows or rogue UI elements.
- Open the Node-RED editor at
- Maintenance: Use the IoTDB CLI to periodically monitor storage size and active sessions. Because it runs in Docker, use this command to access the CLI:
docker-compose exec iotdb /iotdb/sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root - Backup Data: Before a test, back up the database data by creating a copy of the Docker volume or mapping a local host directory to
/iotdb/datain yourdocker-compose.ymland backing up that folder. - Restore to Baseline:
- Run
docker-compose downto stop the database. - Delete the IoTDB data directory or Docker volume to completely wipe the manipulated database state.
- Run
docker-compose up -dto spin up a fresh, clean instance of IoTDB. - (Optional) If restoring from a specific backup, copy your backed-up data folder into the mapped directory before starting the container.
- Run
