Deployment guide

Frappe Helpdesk

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 SecureAnyCloud image installs Helpdesk v1.27.0 on Frappe framework version-15 as a full production deployment. It runs the entire headless install at build time, so there is no command-line bootstrap on first use. On the first boot of every VM, it rotates the Frappe Administrator password, the site database password and the Frappe encryption key.

The production stack consists of 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.

What you get:

  • 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 telephony app, installed alongside Helpdesk.
  • MariaDB on loopback (Barracuda / utf8mb4 / large packets per Frappe), tuned for a small VM.
  • Redis for cache, queue and socketio, and 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.service and redis-server.service as systemd units, enabled and active.
  • 24/7 SecureAnyCloud support.

Prerequisites

  • An active Azure subscription, an SSH key pair, and a VNet plus subnet in the target region.
  • A VM size of Standard_B2s (2 vCPU / 4 GiB RAM), which 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 rules that allow 22/tcp from your management network and 80/tcp for the Helpdesk web interface. Front the site 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 SecureAnyCloud, 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 choose Review + create and Create.

Step 2 - Deploy from the Azure CLI

Accept the Marketplace terms once per subscription, then create the VM and open port 80:

# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:frappe-helpdesk-ubuntu-24-04:default:latest
az vm create \
  --resource-group <your-rg> \
  --name frappe-helpdesk \
  --image sac1647283583153:frappe-helpdesk-ubuntu-24-04:default:latest \
  --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

Connect over SSH as azureuser:

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. It also points the site at this VM's public IP and starts the production stack. Confirm that 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 that the Frappe web tier answers its health endpoint:

curl -s http://127.0.0.1/api/method/ping

Frappe returns {"message":"pong"}. Then confirm that the Helpdesk UI responds. The Helpdesk agent portal is served at /helpdesk:

curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1/helpdesk

List 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

First boot generates the per-VM Administrator password and writes it to a root-only credentials file, along with the site URL and login name:

sudo cat /root/frappe-helpdesk-credentials.txt

Because first boot generates these secrets, 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 you sign 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 the list by ID, subject or customer, and use the Create button to raise a new ticket.

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

Step 8 - Build your knowledge base

The Knowledge Base section lets you write help articles grouped into categories and publish them. Published articles appear in the customer portal, so customers can find answers before they raise a ticket.

From the Helpdesk settings you can also configure SLA policies, teams and agents, canned responses and the customer portal.

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 these commands 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. You can update Frappe Helpdesk and the framework 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 you apply a major version upgrade, and take a snapshot of the OS disk before any upgrade.

Support

SecureAnyCloud publishes and supports this image. For assistance, contact SecureAnyCloud support.

Frappe and Helpdesk are trademarks of their respective owners. SecureAnyCloud is not affiliated with or endorsed by the Frappe project.

Deploy on Azure

Launch Frappe Helpdesk on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.

View this image

Need Help?

Our support team is available 24/7.

sales@secureanycloud.com

Deploy on Azure