OpenSTAManager on Ubuntu 24.04 on Azure User Guide
Overview
OpenSTAManager is an open-source, web-based management suite for small and medium businesses that run technical assistance or field service: customer and supplier registries, service interventions, quotes, sales and purchase documents, electronic invoicing, warehouse stock and the accounting that ties it together. The cloudimg image installs OpenSTAManager 2.10.4 on a full LAMP stack from the Ubuntu 24.04 repositories (nginx, PHP 8.3-FPM and MariaDB), builds the database schema and initialises the appliance at build time so there is no web setup wizard for you to complete, seeds a small demo customer registry so a fresh VM shows a populated interface immediately, stores the database and uploaded documents on a dedicated Azure data disk, and rotates the database password, the administrator account and the application key on the first boot of every VM. Backed by 24/7 cloudimg support.
What is included:
- OpenSTAManager 2.10.4 served on port 80 by nginx via the PHP 8.3-FPM FastCGI socket
- The full database schema built with OpenSTAManager's own installer, plus a demo customer registry
- MariaDB on loopback with its data directory on a dedicated Azure data disk
- A dedicated Azure data disk at
/var/lib/openstamanagerfor the database and uploaded documents - A per-VM database password, administrator account and Laravel application key generated on first boot
nginx.service,php8.3-fpm.serviceandmariadb.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 a good starting point. NSG inbound: allow 22/tcp from your management network and 80/tcp for the OpenSTAManager 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 OpenSTAManager 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). Review the dedicated data disk on the Disks tab, then Review + create -> Create.
Step 2 - Deploy with the Azure CLI
az vm create \
--resource-group <your-rg> --name openstamanager \
--image <cloudimg-openstamanager-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 openstamanager --port 80 --priority 1010
Step 3 - Connect to your VM
ssh azureuser@<vm-public-ip>
Step 4 - Confirm the stack is running
On first boot OpenSTAManager rotates its database password, resets the administrator account to a fresh per-VM password, regenerates the Laravel application key, and starts the stack.
systemctl is-active mariadb php8.3-fpm nginx
All three report active. You can confirm the component versions and that the app answers on port 80, and that MariaDB is bound to loopback only:
php -v | head -1
mariadb --version
curl -s -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1/
The sign-in page returns HTTP 200.

Step 5 - Retrieve the administrator password
The administrator account is unique to your VM and is generated on first boot. Read it as root:
sudo cat /root/openstamanager-credentials.txt
The file is 0600 root:root and names the login (admin), a unique administrator password, and the database name, user and password. The values are unique to your VM; change the password from the interface after your first sign-in.

Step 6 - Sign in
Browse to http://<vm-public-ip>/ and sign in with admin and the password from the credentials file.

After signing in you land on the dashboard - the control centre for customers, interventions, quotes, invoices, warehouse and accounting.

The interface ships primarily in Italian (OpenSTAManager is an Italian-origin suite with built-in support for the Italian electronic-invoicing standard). You can review the available interface languages from Strumenti after signing in.
Step 7 - Manage the customer and supplier registry
Open Anagrafiche to see the registry of customers, suppliers, technicians and carriers. The image ships with a small demo customer registry so the module is populated on first boot; you can add, edit and filter records from here.

Step 8 - Quotes, interventions and invoicing
Under Vendite you manage quotes (Preventivi), contracts and sales invoices (Fatture di vendita), including Italian electronic invoicing (the FE plugins). Service interventions are managed under Attività , and purchases under Acquisti.

Step 9 - Security: configuration and internals are not web-served
The database credential (config.inc.php) and the Laravel application key (.env) are stored outside the web-served path and are denied over HTTP, and application internals (the Composer vendor/ tree, the SQL schema under update/) are not reachable from a browser. MariaDB listens on loopback only.
for p in /config.inc.php /.env /vendor/autoload.php /update/2_0.sql; do
printf '%-24s HTTP %s\n' "$p" "$(curl -s -o /dev/null -w '%{http_code}' -m 10 http://127.0.0.1$p)"
done
Each returns 403 (denied), while / returns 200.

Step 10 - The dedicated data disk
The MariaDB database and OpenSTAManager's uploaded documents live on a dedicated Azure data disk mounted at /var/lib/openstamanager, separate from the OS disk. This keeps your business data independent of the OS image and lets you resize the disk as your data grows.
df -h /var/lib/openstamanager
findmnt /var/lib/openstamanager
mysql -N -B -e "SELECT @@datadir" 2>/dev/null || sudo mysql -N -B -e "SELECT @@datadir"

Step 11 - Enabling HTTPS
For any public deployment, front OpenSTAManager with TLS. Point a DNS A record at your VM's public IP, then install a certificate with Certbot and the nginx plugin. Run the following as prose-driven steps on your VM (replace the placeholders with your real values; do not paste them verbatim):
- Install Certbot:
sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx - Obtain and install a certificate for your domain, supplying your contact email when prompted, by running certbot with the nginx plugin for
your-domain.example.com. - OpenSTAManager derives its base URL from the request, so it automatically answers on
https://once TLS is terminated in front of it. No configuration change is required.
Certbot installs a renewal timer automatically; certificates renew without further action.
Step 12 - Maintenance
- Updates: the OS continues to receive unattended security updates. OpenSTAManager itself can be updated by replacing the application files with a newer release; its built-in updater then applies any database migrations on the next visit.
- Backups: back up the MariaDB
openstamanagerdatabase (for example withmysqldump) and the/var/lib/openstamanager/filesdirectory, which together hold your business data and uploaded documents. - Logs: web server logs are under
/var/log/nginx/; PHP-FPM logs are under/var/log/php8.3-fpm.log.
Support
This image is maintained by cloudimg and backed by 24/7 support. If you need help deploying or operating OpenSTAManager on Azure, contact the cloudimg team through the cloudimg website.