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.
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
| Situation | Choice | Reason |
|---|---|---|
| Single field gateway with internet access | Quick 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 line | Production line (factory.sh) | Prompt-driven handling of EDGE_ID/hostname/credentials/labels/inventory |
| No internet, secure site, USB-only delivery | Offline / air-gapped network installation | Prepare the install bundle and container image tar.zst externally |
| VMware / Hyper-V / KVM / cloud VM | VM / cloud installation | Based on install.sh, adjusted only for VM network and resource differences |
| PLC network / WAN / VLAN design needed first | Network configuration guide | Sort out NIC roles, static IPs, routing, and firewall in advance |
| Handover criteria for the operations team after installation | Production readiness criteria | Go/No-Go decision covering health, backup, restart, security, and evidence files |
| Maintaining native boxes older than 2026.05 | (legacy) Full H/W installation | Preserves the native installation procedure based on the former tools/setup.sh |
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.
| Area | What is handled |
|---|---|
| OS preparation | Required packages, Docker, chrony, firewall, sysctl/limits |
| Network | Optional nmcli static IP configuration, WAN/PLC NIC env override |
| Security | Per-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 |
| systemd | plantpulse-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
| Item | Requirement |
|---|---|
| OS | Linux. RHEL/Fedora/Rocky/CentOS family recommended; VMs are also supported |
| Privileges | root or sudo -i |
| Network | product.kopens.io / product.kopens.io reachable |
| Disk | /opt/kopens 3GB+, /data1 100GB+ recommended for data |
| Memory | 8GB minimum, 16GB or more recommended |
| Operating mode | Container 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.serviceisactivecontainer_mode=trueof/api/v1/system/version/api/v1/system/healthreturns HTTP 200, with key componentsUP- 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
- Quick install (
install.sh) - Docker (container) installation details — image coordinates /
docker runbreakdown / OTA - Native installation (direct) — direct host installation without containers (dev/legacy)
- env configuration —
env.sh/PP_LANG/CERT_PASS/-Dpe.conf.dir - Production line (
factory.sh) - Offline / air-gapped network installation
- VM / cloud installation
- Network configuration guide
- Post-installation checklist
- Production readiness criteria
- Installation troubleshooting
- Container mode operations guide
- (legacy) Full H/W installation (
tools/setup.sh)