Skip to main content

Installation — From Selection to Verification

Installing PlantPulse Edge starts with choosing a deployment mode. For new installations from 2026.05 onward, the standard is a single Docker container + install.sh. The existing native installation documentation remains available, but it is no longer the default recommendation for new boxes.

Do not mix native and container modes

Container mode uses plantpulse-edge.service, while legacy native mode uses plantpulse.service. Running both services on one box at the same time causes conflicts on ports such as 80/443/1880/9042 and on data paths.


1. Choosing an installation method

SituationChoiceReason
Single field gateway with internet accessQuick install (install.sh)Handles OS packages, Docker, sysctl, firewall, chrony, SSL, systemd, and image pull in one pass
Repeated installation of 100+ units on a production lineProduction line (factory.sh)Prompt-driven handling of EDGE_ID/hostname/credentials/labels/inventory
No internet, secure site, USB-only deliveryOffline / air-gapped network installationPrepare the install bundle and container image tar.zst externally
VMware / Hyper-V / KVM / cloud VMVM / cloud installationBased on install.sh, adjusted only for VM network and resource differences
PLC network / WAN / VLAN design needed firstNetwork configuration guideSort out NIC roles, static IPs, routing, and firewall in advance
Handover criteria for the operations team after installationProduction readiness criteriaGo/No-Go decision covering health, backup, restart, security, and evidence files
Maintaining native boxes older than 2026.05(legacy) Full H/W installationPreserves the native installation procedure based on the former tools/setup.sh
Check quick install first, even on new hardware

The tools/setup.sh from the older documentation is a full installation tool from the native era. For new 2026.05+ boxes, boot Linux and then follow Quick install. If NIC static configuration is required, pass it to install.sh via the LAN1_* / LAN2_* env variables.


2. What the standard installation does

The install.sh in Quick install idempotently aligns the following items.

AreaWhat is handled
OS preparationRequired packages, Docker, chrony, firewall, sysctl/limits
NetworkOptional nmcli static IP configuration, WAN/PLC NIC env override
SecurityPer-box random admin/MQTT/OPC-UA/API key, CERT_PASS-based TLS material
Runtime/etc/kopens/app.properties, /data1/pp-data, container image pull/load
systemdplantpulse-edge.service, OTA path/service, host action path/service
Verification/api/v1/system/version, /api/v1/system/health, tool-based status check

Initial credentials are written once to /etc/kopens/credentials.txt after installation. Keep this file root-only and hand it over securely at shipment or handover.


3. Pre-installation checks

ItemRequirement
OSLinux. RHEL/Fedora/Rocky/CentOS family recommended; VMs are also supported
Privilegesroot or sudo -i
Networkproduct.kopens.io / product.kopens.io reachable
Disk/opt/kopens 3GB+, /data1 100GB+ recommended for data
Memory8GB minimum, 16GB or more recommended
Operating modeContainer mode for new deployments and production lines; legacy native only for maintaining existing boxes

On an air-gapped network, skip the internet check and instead prepare the bundle and image tar.zst as described in Offline / air-gapped network installation.


4. Standard installation summary

sudo -i
curl -fsSL https://product.kopens.io/plantpulse-edge/install.sh | bash

If you prefer a one-liner:

sudo -i
bash < <(curl -fsSL https://product.kopens.io/plantpulse-edge/install.sh)

See Quick install for detailed options, env overrides, and expected output.


5. Post-installation health criteria

# 한 줄 상태 점검
sudo bash /opt/kopens/install/bin/status.sh

# 버전 / 컨테이너 모드 확인
curl -ks https://127.0.0.1/api/v1/system/version | python3 -m json.tool

# 전체 컴포넌트 health
curl -ks https://127.0.0.1/api/v1/system/health | python3 -m json.tool

Health criteria:

  • plantpulse-edge.service is active
  • container_mode=true of /api/v1/system/version
  • /api/v1/system/health returns HTTP 200, with key components UP
  • All Go / No-Go items in Production readiness criteria pass
  • Web UI: https://<gateway-ip>/ui/main
  • Node-RED: https://<gateway-ip>/ui/flow/

If something is wrong, check Installation troubleshooting or Container mode operations guide first.


6. Next documents