Install and Start-Up

NOTE
The start script is OS-specific. Use sudo ./ubuntu-start.sh on Ubuntu and ./rhel-start.sh on RHEL.
All other scripts live in the toolkit/ folder and have plain names. Run them with sudo on Ubuntu and without sudo on RHEL.
See Script Naming and Usage.

Obtaining Software and Keyfile

Follow the instructions from you NetAlly Order Fulfillment Acknowledgement to download the Link-Live Private Software and Keyfile.

Downloading Files

The Software Downloads page builds the correct installation bundle from a few questions about the target machine. Separate bundles are produced for each operating system, for each supported Ubuntu version, and for new installations as opposed to updates, so answer the questions before downloading.

  1. Go to the public Link-Live.com and create an account.

  2. In the left-side menu, navigate to Support > Software Downloads, and scroll down to Link-Live Private.

  3. Select Install / Update to open the Install Link-Live Private dialog.

  4. Under What are you doing?, select one:

    • New installation – First time installing Link-Live Private on this machine.

    • Update an existing installation – The machine is already running Link-Live Private.

  5. Under Which operating system is the target machine running?, select Ubuntu or Red Hat Enterprise Linux 9.7+.

  6. Identify the version of that operating system. This step appears only for a new installation, because a single update bundle covers every supported version:

    • Ubuntu – Select 20.04 (Focal), 22.04 (Jammy), or 24.04 (Noble). To confirm which version the target machine runs, run lsb_release -cs on that machine.

    • Red Hat Enterprise Linux – Select RHEL 9.7 or later.

  7. Review the panel that appears. It names the bundle your selections produce, along with the version it contains, and lists the commands to extract and run it. Select the copy icon to copy those commands.

    NOTE! If the panel reports that the bundle was not built for this release, change your selections or contact NetAlly Support.

  8. Enter your Serial Number. The Link-Live Private serial contains PVT.

  9. Review the licenses listed in the panel, then select I accept these license terms.

  10. Select Download.

Download the Keyfile separately, from the same Link-Live Private section of the page. Both the software bundle and the Keyfile are needed to install your private instance of Link-Live.

Available Bundles

Your selections in the dialog produce one of the following bundles:

Selections

Bundle

New installation, Ubuntu 20.04

Ubuntu 20.04 (Focal) installer

New installation, Ubuntu 22.04

Ubuntu 22.04 (Jammy) installer

New installation, Ubuntu 24.04

Ubuntu 24.04 (Noble) installer

New installation, RHEL

RHEL 9.7+ installer

Update an existing installation, Ubuntu

Ubuntu update bundle

Update an existing installation, RHEL

RHEL update bundle

NOTE! A single update bundle covers every supported Ubuntu version, while new installations use a bundle built for one specific version. Selecting Update an existing installation therefore skips the Ubuntu version question.

To install an update once it is downloaded, see Manage and Update.

Extracting Files

The name of the tar.gz file you receive includes the version and build number of your release, so it changes with every release. In the examples below, <version> stands in for that part of the name. To check the version you are running, see version.txt at the root of the installation directory.

On Ubuntu, the recommended location for the installation directory is /opt. Installing elsewhere works, but ubuntu-start.sh prints a warning naming /opt as the recommended location before continuing normally.

On RHEL, extract the bundle into a directory your regular user owns, such as your home directory. /opt is owned by root, and rhel-start.sh runs as your regular user, not root.

  1. In the terminal, extract the tar.gz file provided into /opt on Ubuntu or your home directory on RHEL. The bundle file name ends with the platform it was built for, so the Ubuntu name carries ubuntu-focal, ubuntu-jammy, or ubuntu-noble to match the release you selected:

    Ubuntu: sudo tar -xvzf link-live_<version>_ubuntu-jammy.tar.gz -C /opt

    RHEL: tar -xvzf link-live_<version>_rhel.tar.gz -C ~

    NOTE: Extracting an installer bundle adds _initial_install to the folder name, so the folder does not match the tar.gz file name exactly. Update bundles extract to a folder matching the file name.

    The extracted folder should contain the following:

    • nginx/ – NGINX configuration and the default self-signed certificates.

    • docker-images/ – Container images and the software installed by the start script.

    • db-migrations/ – Database migration scripts, applied automatically.

    • firmware/ – Tester firmware shipped with this release.

    • toolkit/ – backup.sh, restore.sh, cert-renew.sh, and export-logs.sh. On RHEL, this folder also contains register-service.sh.

    • docker-compose.yml – Container definitions. RHEL uses this same file, because podman-compose reads it directly.

    • version.txt – The Link-Live Private version contained in this bundle.

    • README.md

    • ubuntu-start.sh or rhel-start.sh – The start script, and the only script at the root of the folder.

    NOTE: Only the start script carries an operating system prefix. Every other script sits in toolkit/ under a plain name, because the bundle you received is already built for your platform. The docker-images directory is never prefixed; it has that name on both Ubuntu and RHEL.

  2. Move into the new installation directory. For example:

    Ubuntu: cd /opt/link-live_<version>_ubuntu-jammy_initial_install

    RHEL: cd ~/link-live_<version>_rhel_initial_install

  3. Run the start script for your operating system:

    Ubuntu: sudo ./ubuntu-start.sh

    RHEL: ./rhel-start.sh

    Your system will provide a series of prompts to complete installation.

Setting Up your Environment

The start script prompts you for each setting it needs, including the host address that users and tester units will connect to.

CAUTION! At the host prompt, do not enter 127.0.0.1 or localhost.

Enter the server's real IP address or DNS hostname, the same address you will configure on your tester units. This one value is used by three different things, and a loopback address only works for one of them:

Used by

Requires

Your web browser

An address reachable from your computer.

Link-Live Private internal services

An address reachable from inside the application.

Tester units

An address routable on your network.

If you enter 127.0.0.1, the web interface still appears to work when you browse to it from the server itself, but uploaded files (including AirMapper surveys) remain stuck on Processing indefinitely, and tester units cannot upload at all. See Troubleshoot.

  • An environment file is created as part of setup. Rerunning the start script loads the corresponding environment configuration automatically. The file is saved at /etc/link-live/ll.env on Ubuntu and ~/.config/link-live/ll.env on RHEL.

  • Run the script with the same user and permissions each time to avoid access issues.

Auto-Start on Boot (RHEL)

On RHEL, rhel-start.sh configures Link-Live Private to start on boot and to keep running after you log out. It does this at the end of every install and every update, so no additional steps are required.

Two things are set up for you:

  • Session lingering – Keeps your containers running after you log out of SSH.

  • A systemd user service – Named linklive.service, this starts the containers when the server boots.

To confirm either one, run these commands as your normal user. Never use sudo.

systemctl --user status linklive.service

loginctl show-user $USER --property=Linger

Other useful commands:

systemctl --user restart linklive.service # Restart the containers.

systemctl --user disable linklive.service # Turn off start-on-boot.

journalctl --user -u linklive.service # View service logs.

Superuser Account Creation

The user and password variables are used on container startup to create a superuser account, which is necessary for the application to function correctly.

  • Use your superuser account to upload a new keyfile, create OTA unit updates, and for uploading Android applications.

  • Do not change the password on this account through the Link-Live UI, use it to claim units, or for other routine Link-Live functionality. You should instead create a new account via the "Create account" link on the login screen, or, if that button is disabled, by inviting users to an organization.

  • If you need to change the password on the super account, run sudo ./ubuntu-start.sh auth on Ubuntu or ./rhel-start.sh auth on RHEL.

Server Information and SSL/TLS Certificates

When Link-Live Private is started without any NGINX template configuration, it serves on port 443, with the NGINX container managing certificates. Note that the NGINX container binds that port to the host machine automatically.

  • Link-Live Private serves on port 443 with NGINX handling SSL certificates. Port 80 is not used, and there is no redirect from HTTP, so browse to https:// explicitly.

  • Either supply the path to your certificate and key while the start script runs, or replace default certificates in nginx/certs with your own trusted SSL certificate.

    NOTE: Failing to replace these will result in port 443 using invalid, self-signed certificates.

  • Obtain an official SSL certificate by registering a domain (e.g., mycompany.com) with a certificate provider.

    NOTE: Ensure you do not have www. in your host name. For example, Link-Live-Private.mycompany.com.

  • To update certificates without restarting, run the cert-renew.sh script in the toolkit folder:

    Ubuntu: sudo ./toolkit/cert-renew.sh

    RHEL: ./toolkit/cert-renew.sh

    This script, like the start script, optionally prompts you to supply paths to certificate files. If you have replaced the files manually, skip that prompt. It will then restart the NGINX container for you, with the new instance utilizing the new certificate files.

  • If desired, see the NGINX configuration template at nginx/templates/default.conf.template to implement your own certificate management strategy.

NOTE: NetAlly does not provide support for custom NGINX configurations.