Live Helper Chat on Ubuntu 24.04 on Azure User Guide
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
:80at/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
- In the Azure portal, search the Marketplace for Live Helper Chat on Ubuntu 24.04 LTS by cloudimg and select Create.
- Choose your subscription, resource group and region.
- 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. - Under Administrator account, select SSH public key, set the username to
azureuser, and paste your public key. - Under Inbound port rules, allow SSH (22) and HTTP (80).
- 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'

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.

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 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.

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.

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.

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

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)')"

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
livehelperchatdatabase, for example withmysqldump, 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.