Lh
Applications Azure

Live Helper Chat on Ubuntu 24.04 on Azure User Guide

| Product: Live Helper Chat on Ubuntu 24.04 LTS on Azure

Overview

Live Helper Chat is a mature, open source live chat and helpdesk platform. It adds a real time chat widget to your website and gives your team a full operator console to answer it: visitors start a conversation from an embeddable widget, and operators handle chats from a browser based agent panel with canned responses, departments and transfers, chat history, visitor details, file sharing, and offline messages. A REST API, webhooks and a chat bot layer let you plug in your own automation or a third party assistant, and everything is stored in a database on the instance itself, so your customer conversations stay under your control.

The cloudimg image ships Live Helper Chat 4.87v served by nginx and PHP 8.3 FPM on a hardened, fully patched Ubuntu 24.04 LTS base, together with a bundled local MariaDB server so the appliance is complete and useful on its own. Live Helper Chat runs behind an nginx reverse proxy on port 80. The bundled MariaDB listens only on the loopback interface (127.0.0.1:3306). A unique operator password is generated on the first boot of every VM, and the platform detects the request host automatically, so the operator panel and the visitor widget work at whatever public IP or domain you point at the VM. Backed by 24/7 cloudimg support.

What is included:

  • Live Helper Chat 4.87v served by nginx and PHP 8.3 FPM, managed by systemd
  • A bundled MariaDB server holding the Live Helper Chat database, already installed with the full, up to date schema
  • The operator panel served on :80 at /index.php/site_admin, and an embeddable visitor chat widget
  • A per minute systemd timer running Live Helper Chat's own cron for offline message mail, online status timeouts and bot scheduling
  • A per VM operator password generated on first boot and recorded in a root only file
  • No shipped default login: the operator is created with a unique per VM secret, and no known or blank credential authenticates
  • A hardened, fully patched Ubuntu 24.04 LTS base with unattended security upgrades enabled

Before you begin

You will need an Azure subscription, permission to create a virtual machine, and an SSH key pair so you can retrieve the generated operator password. Open inbound port 22 (SSH) and port 80 (HTTP) on the VM's network security group. For production, also open port 443 and put a TLS certificate in front of the platform (see Production hardening below).

Deploy from the Azure Marketplace

  1. In the Azure portal, search the Marketplace for Live Helper Chat on Ubuntu 24.04 LTS by cloudimg and select Create.
  2. Choose your subscription, resource group and region.
  3. Pick a VM size. Standard_B2s (2 vCPU, 4 GiB) is a comfortable starting point for a small team; scale up for higher chat volumes.
  4. Under Administrator account, select SSH public key, set the username to azureuser, and paste your public key.
  5. Under Inbound port rules, allow SSH (22) and HTTP (80).
  6. Review and create. When deployment finishes, note the VM's public IP address.

Deploy from the Azure CLI

Alternatively, create the VM from the command line. Replace the image URN, resource group and SSH key path to match your environment:

az vm create \
  --resource-group my-resource-group \
  --name live-helper-chat \
  --image cloudimg:live-helper-chat-ubuntu-24-04:live-helper-chat-ubuntu-24-04:latest \
  --size Standard_B2s \
  --admin-username azureuser \
  --ssh-key-values ~/.ssh/id_rsa.pub \
  --public-ip-sku Standard

az vm open-port --resource-group my-resource-group --name live-helper-chat --port 80 --priority 900

Retrieve your operator password

Live Helper Chat ships no default login. On the first boot of every VM, a one shot service generates a unique operator password and writes it to a root only file. SSH in as azureuser and read it:

ssh azureuser@<vm-public-ip>

Confirm the platform services are running. nginx serves the platform on port 80, PHP 8.3 FPM runs the application, and MariaDB holds the data:

systemctl is-active nginx php8.3-fpm mariadb live-helper-chat-firstboot

The bundled MariaDB is bound to the loopback interface only, so it is never reachable from the network. Only nginx on port 80 is public:

ss -tlnp | grep -E ':80 |:3306 ' | sed 's/  */ /g'

The nginx, php8.3-fpm, mariadb and live-helper-chat-firstboot services reported active, with nginx listening on port 80 and MariaDB bound to loopback 127.0.0.1:3306

Now read the generated credentials. The file records the operator username, the per VM password and the URLs:

sudo cat /root/live-helper-chat-credentials.txt

The password is unique to this VM. Keep it somewhere safe.

The per VM Live Helper Chat credentials file, showing the operator login user, the generated password and the panel URL, with guidance on signing in and fronting the platform with your own domain

Sign in to the operator panel

Open the operator panel in your browser at http://<vm-public-ip>/index.php/site_admin. Sign in with the username admin and the password from the credentials file.

The Live Helper Chat operator sign in page, showing the Username and Password fields, the Remember me option and the Login button

The operator dashboard

After signing in you land on the operator dashboard: the live console your team works from. It shows online operators, online visitors browsing your site in real time, department statistics, and panels for pending, active, group and bot chats. Incoming chats appear here for an operator to accept.

The Live Helper Chat operator dashboard, showing online operators, department statistics, online visitors and the pending, active, group and bot chat panels

Managing chats

The Chats area lists your chat history and lets you search by chat ID, visitor nickname, e mail, phone, department, operator or user group. From here you review past conversations, reopen a chat, download transcripts and manage what your team has handled.

The Live Helper Chat chats list, showing the search form for filtering chats by ID, nickname, e mail, phone, department and operator, with the results area

Embed the visitor chat widget on your site

To put the chat widget on your own website, open Settings then System configuration then Embed code in the operator panel, choose your options, and copy the generated JavaScript snippet into your site's pages. Because Live Helper Chat detects the request host automatically, the widget talks back to whichever public IP or domain you use to reach the VM, so no base URL configuration is required to get started.

Configuration and administration

The System configuration area is where you administer the platform: time zone and mail settings, e mail templates, languages, GEO detection, synchronization and sound, operators and groups, roles and permissions, password requirements, audit logs, and the embed code and live help configuration for the visitor widget.

The Live Helper Chat system configuration page, with the System, Embed code, Live help configuration, Speech and Mail conversation tabs and the full list of administration settings

Verify the deployment

nginx serves an unauthenticated health endpoint on port 80 for load balancer probes:

curl -sI http://127.0.0.1/healthz | head -1

The operator panel responds on port 80 and redirects an unauthenticated request to the sign in page:

curl -s -o /dev/null -w 'operator panel /index.php/site_admin -> HTTP %{http_code}\n' http://127.0.0.1/index.php/site_admin

The image ships a security round trip check that proves the per VM operator password authenticates while a blank password and common weak guesses are rejected, and that the account is enabled:

sudo bash /usr/local/sbin/live-helper-chat-cred-roundtrip.sh

The operator account present and enabled in the users table, and the round trip check confirming the per VM operator password verifies while a blank password and weak guesses are rejected and the operator panel responds

A quick platform summary confirms the schema is complete and the platform is serving:

curl -s -o /dev/null -w 'healthz -> HTTP %{http_code}\n' http://127.0.0.1/healthz
mariadb --protocol=socket -uroot -N -e "SELECT CONCAT((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='livehelperchat'),' tables, ',(SELECT COUNT(*) FROM livehelperchat.lh_users),' operator(s), ',(SELECT COUNT(*) FROM livehelperchat.lh_departament),' department(s)')"

The healthz endpoint returning HTTP 200 and the Live Helper Chat schema summary showing the table, operator and department counts

Where your data lives

Live Helper Chat's application code lives under /var/www/livehelperchat/lhc_web, with the platform configuration in settings/settings.ini.php (protected from the web and holding the loopback database password). All of your chats, operators, departments, configuration and uploaded files are stored in the bundled MariaDB database livehelperchat and under lhc_web/var, both on the VM's OS disk and captured into the image. The database engine is bound to 127.0.0.1 only. For on box database maintenance, sudo mariadb connects as the local root user over a Unix socket with no password.

Production hardening

  • Use your own domain and TLS. Point a DNS record at the VM's public IP, then front Live Helper Chat with HTTPS (for example an Azure Application Gateway, a load balancer, or a TLS terminating reverse proxy). Open port 443 on the network security group.
  • Restrict access. Keep SSH (22) limited to trusted IP ranges in the network security group.
  • Back up the database. Schedule regular dumps of the livehelperchat database, for example with mysqldump, and copy them off the VM.
  • Scale for volume. Increase the VM size and, for very high chat volumes, review Live Helper Chat's optional Node.js realtime server in the project documentation.
  • Keep it patched. The base ships with unattended security upgrades enabled; keep them on.

Support

This image is built and maintained by cloudimg with 24/7 support. If you need help deploying or operating Live Helper Chat on Azure, contact cloudimg support through www.cloudimg.co.uk.