Frappe Helpdesk on Ubuntu 24.04 on Azure User Guide
Overview
Frappe Helpdesk is an open-source customer-support and ticketing application built on the Frappe framework. It gives support teams multi-channel ticket capture, agent assignment and teams, SLA policies, a knowledge base, canned responses, and a self-service customer portal, all from one web interface. The cloudimg image installs Helpdesk v1.27.0 on Frappe framework version-15 as a full production deployment - MariaDB, Redis, a Python gunicorn web tier plus a node realtime process, background workers and a scheduler managed by supervisor, and nginx on port 80 - runs the entire headless install at build time so there is no command-line bootstrap on first use, and rotates the Frappe Administrator password, the site database password and the Frappe encryption key on the first boot of every VM. Backed by 24/7 cloudimg support.
What is included:
- Frappe Helpdesk v1.27.0 on Frappe framework version-15, served on port 80 by nginx in front of a gunicorn web worker
- The required
telephonyapp installed alongside Helpdesk - MariaDB on loopback (Barracuda / utf8mb4 / large packets per Frappe), tuned for a small VM
- Redis for cache, queue and socketio; supervisor managing the Frappe web, worker, schedule and socketio processes
- A unique Administrator password, site database password and Frappe encryption key generated on first boot, with no default login
nginx.service,supervisor.service,mariadb.serviceandredis-server.serviceas systemd units, enabled and active- 24/7 cloudimg support
Prerequisites
An active Azure subscription, an SSH key pair, and a VNet plus subnet in the target region. Standard_B2s (2 vCPU / 4 GiB RAM) is the supported minimum; choose a larger size such as Standard_B2ms or Standard_D2s_v3 for teams with more agents or higher ticket volume. NSG inbound: allow 22/tcp from your management network and 80/tcp for the Helpdesk web interface (front with TLS for public exposure - see Enabling HTTPS).
Step 1 - Deploy from the Azure Marketplace
Sign in to the Azure Portal, choose Create a resource, search the Marketplace for Frappe Helpdesk by cloudimg, and select Create. On Basics pick your subscription, resource group, region and size; under Administrator account choose SSH public key and paste your key; under Inbound port rules allow SSH (22) and HTTP (80). Then Review + create -> Create.
Step 2 - Deploy from the Azure CLI
az vm create \
--resource-group <your-rg> \
--name frappe-helpdesk \
--image <marketplace-image-urn> \
--size Standard_B2s \
--admin-username azureuser \
--ssh-key-values ~/.ssh/id_ed25519.pub \
--vnet-name <your-vnet> --subnet <your-subnet> \
--public-ip-sku Standard
az vm open-port --resource-group <your-rg> --name frappe-helpdesk --port 80 --priority 1010
Step 3 - Connect to your VM
ssh azureuser@<vm-public-ip>
Step 4 - Confirm the Helpdesk stack is running
On first boot the image rotates the Frappe encryption key, the site database password and the Administrator password, points the site at this VM's public IP, and starts the production stack. Confirm all four systemd services are active:
systemctl is-active mariadb redis-server supervisor nginx
All four services report active, and supervisor runs the Frappe web, socketio, worker and schedule processes.

Confirm the Frappe web tier answers its health endpoint and the Helpdesk UI responds:
curl -s http://127.0.0.1/api/method/ping
Frappe returns {"message":"pong"}. The Helpdesk agent portal is served at /helpdesk:
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1/helpdesk
You can see the exact installed apps and versions - Frappe framework version-15, telephony, and Helpdesk v1.27.0:
sudo -u frappe -H bash -lc 'cd /opt/frappe/frappe-bench && bench --site helpdesk.localhost list-apps'

Step 5 - Retrieve the Administrator password
The per-VM Administrator password is generated on first boot and written to a root-only credentials file, along with the site URL and login name:
sudo cat /root/frappe-helpdesk-credentials.txt

Because these secrets are generated on first boot, no two deployments share the same password, and the vendor default login is rejected:

Step 6 - Sign in to Frappe Helpdesk
Browse to http://<vm-public-ip>/helpdesk and sign in as Administrator with the password from Step 5.

Step 7 - Work with tickets
After signing in you land on the agent tickets list. Each ticket shows its ID, subject, customer and status; use the filters at the top to narrow by ID, subject or customer, and the Create button to raise a new ticket.

Open a ticket to see the full conversation. The header shows the SLA timers - first response and resolution due times - and the status; the activity thread holds the customer message and every reply, and you can Reply, add a private Comment, assign the ticket to an agent, and set priority and status.

Step 8 - Build your knowledge base
The Knowledge Base section lets you write help articles grouped into categories, publish them, and surface them in the customer portal so customers can self-serve before raising a ticket.

From here you can also configure SLA policies, teams and agents, canned responses, and the customer portal from the Helpdesk settings.
Enabling HTTPS
For public exposure, front Helpdesk with TLS. Point a DNS A record at the VM's public IP, then issue a certificate with Certbot and the nginx plugin (run interactively):
sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.example.com
Certbot edits the Frappe nginx site in place and sets up automatic renewal. Allow 443/tcp in your NSG.
Maintenance
The OS keeps receiving security updates through unattended-upgrades. Frappe Helpdesk and the framework can be updated with bench as the frappe user (sudo -u frappe -H bash -lc 'cd /opt/frappe/frappe-bench && bench update'); review the Helpdesk release notes before applying a major version upgrade. Take a snapshot of the OS disk before any upgrade.
Support
This image is published and supported by cloudimg. Frappe and Helpdesk are trademarks of their respective owners; cloudimg is not affiliated with or endorsed by the Frappe project. For assistance, contact cloudimg support.