Install SmartServer Pi

SmartServer Pi is available with SmartServer 4.2 and higher.

This section describes how to set up your environment and install the SmartServer Pi software. You can also use the installation instructions (see Installing SmartServer Pi in this section) to update the software to another version. In the case of an update, you do not  need to recreate the /etc/smartserver directory or change the smartserver.ini file. 

This section consists of the following:

Preparing the Hardware and Operating System

SmartServer Pi release 4.20.016 was tested on Raspberry Pi OS Lite, 64-bit, kernel version 6.1, Debian version 12 (bookworm), release date October 11, 2023; other versions may work as well. SmartServer Pi requires 8GB of RAM for a production environment. 

Perform the following steps to prepare your hardware and operating system:

  1. Image your SD card using the instructions provided in the Installing the Raspberry Pi OS for SmartServer Pi section.

  2. Connect to your Raspberry Pi using SSH and login with the default apollo username and password that was set when you imaged your SD card. 

  3. Confirm that the Raspberry Pi has Internet access using the following command from the SSH console:

    $ ping google.com
  4. Use the following command to view the packages with available updates from the SSH console:

    $ sudo apt update
  5. Complete a full upgrade of your Linux installation using the following command:

    $ sudo apt dist-upgrade -y
  6. Clean up the installation files using the following command:

    $ sudo apt autoclean
  7. Reboot your Raspberry Pi for the change to take effect using the following command:

    $ sudo reboot

Continue with the next section, Installing the SmartServer Pi, to install the SmartServer Pi software.

Installing SmartServer Pi

To install SmartServer Pi software, perform the following steps:

  1. Download the SmartServer Pi image archive file (i.e., SmartServer_SW.tar.gz) to the server. See Current Releases in the SmartServer Release Notes section for download links.

  2. Create a home directory on the Raspberry Pi (e.g., apollo) where the SmartServer Pi image archive will reside.

  3. Use an SCP client to move the SmartServer Pi image archive file to the Raspberry Pi home directory (e.g., apollo). 

  4. Unpack the SmartServer Pi package using the following command from an SSH console. The name of SmartServer Pi image archive will match the name of the file that was moved to the Raspberry Pi.

    $ tar -xzf SmartServer_SW.tar.gz

    This command will unpack the following files:

    smartserver.ini
    SmartServer_SW_VN.NN.NNN.deb, where N.NN.NNN is the version number

  5. Remove the SmartServer Pi image archive using the following command:

    $ rm SmartServer_SW.tar.gz
  6. For SmartServer 4.3 Update 1 and prior, edit the smartserver.ini file using the following command. For SmartServer 4.4 and higher, the default CMS username and password is apolloapollo

    $ nano smartserver.ini


    Configure the SMARTSERVER_PASSWORD=<your_password> parameter by setting <your_password> to the password you would like to use for the SmartServer Pi CMS apollo user. Use CTRL-O and CTRL-X to save and exit nano.   

    Unlike the SmartServer IoT, SmartServer Pi does not provide a mechanism through the Configuration page for synchronizing the Linux apollo user password with the CMS apollo user password. You can keep the passwords synchronized manually by setting <your password> to the same password that you used when you imaged the Raspberry Pi OS. Enhanced Security is enabled by default for SmartServer Pi; therefore, when you first log into the SmartServer Pi CMS, you will be prompted to set a strong password. You can disable Enhanced Security and then reset your SmartServer Pi CMS password.



  7. Create the /etc/smartserver directory on the host where the SmartServer will run using the following command and move the smartserver.ini  file to the /etc/smartserver directory:

    $ sudo mkdir /etc/smartserver
    $ sudo mv smartserver.ini /etc/smartserver
  8. Verify Internet connectivity for the Raspberry Pi by pinging google.com in the SSH console. Use CTRL-C to stop pinging. 

    If there is an issue with internet access, then correct the problem as needed.

    $ ping google.com
  9. Install SmartServer Pi using the following command, where N.NN.NNN specifies the release version and <directory> specifies the path where the .deb package resides:

    $ sudo apt install /<directory>/SmartServer_SW_VN.NN.NNN.deb

    Example

    $ sudo apt install /home/apollo/SmartServer_SW_V4.20.016.deb

    The apt command will prompt you to continue.


    Allow at least 17 minutes for the SmartServer Pi installation to complete.   You should scroll back in the console output from software install to find the Install code for this SmartServer Pi device.  After reboot, the raspberry Pi will have the host name of smartserver-[install code].local.

  10. If you are using SmartServer Pi 4.3 and higher, then the following message appears prompting you to reboot the server. Enter and press RETURN.

    Machine needs to be rebooted to finish the installation.
    [Y/n]:

    If you are using SmartServer Pi 4.2, then reboot the server using the following command:

    $ sudo reboot
  11. After the server restarts, enter the following command in the SSH console to check the status of running components:

    $ smartserverctl status
    smartserverctl status example results
    pi@smartserver-hsbcw69:~ $ smartserverctl status
    alarm                              active since Tue 2023-07-18 16:39:59 EDT; 31min ago
    bacnet                             inactive
    chirpstack-bridge                  inactive
    chirpstack-gateway                 inactive
    chirpstack-postgresql              inactive
    chirpstack-redis                   inactive
    cms                                active since Tue 2023-07-18 16:39:14 EDT; 31min ago
    core                               active since Tue 2023-07-18 16:39:54 EDT; 31min ago
    datapoint-connection-manager       active since Tue 2023-07-18 16:39:59 EDT; 31min ago
    datapoint-controller               active since Tue 2023-07-18 16:39:56 EDT; 31min ago
    datapoint-get                      active since Tue 2023-07-18 16:39:58 EDT; 31min ago
    enocean                            inactive
    formatter                          active since Tue 2023-07-18 16:39:57 EDT; 31min ago
    housekeeper                        active since Tue 2023-07-18 16:40:00 EDT; 31min ago
    iap-controller                     active since Tue 2023-07-18 16:39:58 EDT; 31min ago
    init                               active since Tue 2023-07-18 16:39:54 EDT; 31min ago
    lim                                active since Tue 2023-07-18 16:39:57 EDT; 31min ago
    loader                             active since Tue 2023-07-18 16:39:58 EDT; 31min ago
    logger                             active since Tue 2023-07-18 16:39:59 EDT; 31min ago
    lorawan                            inactive
    modbus                             inactive
    monitoring                         active since Tue 2023-07-18 16:39:58 EDT; 31min ago
    mosquitto                          active since Tue 2023-07-18 16:39:13 EDT; 31min ago
    nginx                              active since Tue 2023-07-18 16:39:59 EDT; 31min ago
    node-red                           active since Tue 2023-07-18 16:39:58 EDT; 31min ago
    opc-ua                             inactive
    postgresql                         active since Tue 2023-07-18 16:39:13 EDT; 31min ago
    query                              active since Tue 2023-07-18 16:39:59 EDT; 31min ago
    redis-server                       active since Tue 2023-07-18 16:39:13 EDT; 31min ago
    resource-publisher                 active since Tue 2023-07-18 16:39:57 EDT; 31min ago
    scheduler                          active since Tue 2023-07-18 16:39:58 EDT; 31min ago
    services                           active since Tue 2023-07-18 16:39:54 EDT; 31min ago
    smartserver                        active since Tue 2023-07-18 16:39:54 EDT; 31min ago
    storage-manager                    active since Tue 2023-07-18 16:39:15 EDT; 31min ago


    Your Raspberry Pi is now running the SmartServer Pi software.

    The hostname in the .local address it will advertise through mDNS includes is now smartserver-<SID>.local.  

  12. If the SmartServer Pi CMS does not display, then manually set UFW to allow port 8443 using the following commands:

    sudo ufw enable
    sudo ufw allow 8443/tcp