EMX Local 4.0 Installation Guide - Ubuntu 24.04
Requirements
Energy monitoring systems produce a high volume of data. It is important that the server EMX will be deployed on is sized correctly for this type of workload. In particular, the application's performance is heavily dependent on access to sufficient memory and the use of high-speed disk.
General Guidelines
| Monitoring Units | Gateways | Processor Cores | Memory (GB) | Disk Space (GB) | 
|---|---|---|---|---|
| < 100 | 1 - 2 | 2 | 4 to 8 | 250 | 
| 100 to 500 | 2 - 5 | 4 | 8 to 16 | 500 | 
| 500 to 5,000 | 5 - 50 | 8 | 16 to 64 | 1000+ | 
For deployments over 5,000 monitoring units, please contact Packet Power support for sizing assistance.
Disk drives
The storage subsystem should:
- be implemented in RAID 10 across multiple disks 
- consist of high throughput (10,000 RPM or solid state) drives, with solid state being HEAVILY recommended. 
Server platform
- Supported environments - Bare metal 
- Commercial-grade virtualization platforms such as: - HyperV 
- KVM 
- OpenStack 
- VMWare ESX 
- VMWare vSphere 
- Xen 
 
- Unsupported virtualization platforms: - VirtualBox 
- Virtual PC 
- VMWare Player 
- VMWare Fusion 
- Open VZ 
- Parallels 
 
 
- Server OS - Ubuntu Linux 22.04 
- Ubuntu Linux 24.04 
- Red Hat Enterprise Linux (RHEL) 9 
- CentOS 9 
- Oracle Linux 9 
 
- Browsers - N-2 for Chrome, Firefox and MSFT (Edge and IE) 
 
Network connectivity
- Between servers: 100Mbit - 1Gbit 
- Gateways/HUBs to server: 10 Mbit - 1Gbit 
Installation
Note: All listed commands should be run by the root user unless otherwise specified.
System Configuration
Start by setting the system timezone to UTC.
| 
        CODE
      | 
Third-Party Software Repositories
Node.js
| 
        CODE
      | 
Third-Party Software Installation
Node.js + Erlang + LAMP
Package Installation
The Ubuntu 24.04 repositories contain PHP 8.3, but 8.1 will need to be installed. All PHP packages in the installation command should be prefixed with php8.1-.
| 
        CODE
      | 
Mosquitto
sudo apt update
sudo apt install -y mosquittoThird-Party Software Configuration
PHP
Configure PHP timezone
| 
        CODE
      | 
Install IonCube Loader
| 
        CODE
      | 
Enable PHP extensions
| 
        CODE
      | 
MySQL
Install MySQL
| 
        CODE
      | 
Configure User Access
| 
        CODE
      | 
Apache
Configure Apache sites
| 
        CODE
      | 
Restart Apache
| 
        CODE
      | 
PM2
| 
        CODE
      | 
Packet Power Software Installation
EMX/OPX3
Install OPX3 Package
| 
        CODE
      | 
Install EMX Package
| 
        CODE
      | 
Start OPX processes
| 
        CODE
      | 
(Optional) Update Support Files
Note: the support files directory is hard-coded to /public/support_files, though it should be possible to symlink it to another location if necessary.  It contains node firmware files that can be sent remotely to gateways in order to broadcast updates over the mesh network.
| 
        CODE
      | 
EMX Web Installer
Finally, complete the setup by navigating a browser to the IP address of the EMX server. You will be greeted with a setup screen, which will prompt you for the following information:
- MySQL credentials 
- Mosquitto configuration (used by OPX3) - The following is the default mosquitto configuration: - Hostname: 127.0.0.1 (or the IPv4 address of the appropriate server) 
- Username: blank 
- Password: blank 
- Port: 1883 
 
 
- (Optional) The SMTP server credentials to be used for alerting capabilities