Applications Azure

AureusERP on Ubuntu 24.04 on Azure User Guide

| Product: AureusERP on Ubuntu 24.04 LTS on Azure

Overview

AureusERP is a comprehensive, free and open source Enterprise Resource Planning platform for small and medium enterprises and larger organisations. Built on the Laravel framework and the FilamentPHP admin panel, it brings accounting, invoicing, inventory, purchases, sales, human resources, recruitment, CRM and project management together in one place, with a modular plugin system so you enable only the features your business needs. The cloudimg image delivers AureusERP fully installed and configured on Ubuntu 24.04 — a Laravel application on PHP 8.3 with OPcache, served by nginx over HTTPS with php-fpm, backed by MariaDB. Database migrations, the Filament Shield roles and permissions, the seeded reference data and the compiled front-end assets are already in place, so you land directly on the admin sign-in with no setup wizard to complete. Backed by 24/7 cloudimg support.

What is included:

  • AureusERP 1.4.0 (MIT licensed), a Laravel 13 + FilamentPHP 5 ERP, served from /var/www/aureuserp/public
  • nginx (TLS on :443, with :80 redirected to HTTPS) + PHP 8.3 (php8.3-fpm with OPcache) + MariaDB, all from Ubuntu 24.04 main/universe
  • A per-VM self-signed TLS certificate generated on first boot, so the admin panel loads over a secure context
  • The Filament admin panel at /admin, with roles and permissions generated and reference data (currencies, countries, unit of measure) seeded
  • Per-VM administrator email + password, MariaDB password and Laravel APP_KEY, all generated at first boot and written to a root-only file — the install-time default admin@example.com does not ship with a usable password
  • nginx.service, php8.3-fpm.service and mariadb.service as systemd units, enabled and active
  • 24/7 cloudimg support

AureusERP admin sign-in

Prerequisites

An active Azure subscription, an SSH key pair, and a VNet + subnet in the target region. Standard_B2ms (2 vCPU / 8 GiB RAM) is a good starting point; scale up for more concurrent users or heavier modules. NSG inbound: allow 22/tcp from your management network and 443/tcp (HTTPS) plus 80/tcp (which redirects to HTTPS) from your users.

Step 1 — Deploy from the Azure Marketplace

Find AureusERP on Ubuntu 24.04 LTS by cloudimg in the Azure Marketplace and choose Get It Now → Create. Pick your resource group, region, and VM size (Standard_B2ms or larger), provide your SSH public key, and allow inbound 443/tcp and 80/tcp in the networking step. Review and create.

Step 2 — Or deploy with the Azure CLI

az vm create \
  --resource-group <your-rg> \
  --name aureuserp \
  --image <marketplace-image-urn> \
  --size Standard_B2ms \
  --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 aureuserp --port 443 --priority 1010

Step 3 — Connect to your VM

ssh azureuser@<vm-public-ip>

Step 4 — Confirm the services are running

The three services that back AureusERP should all report active, the admin sign-in page answers HTTP 200 over HTTPS, and the plain HTTP port redirects to HTTPS:

systemctl is-active nginx php8.3-fpm mariadb
curl -ks -o /dev/null -w 'admin login  -> %{http_code}\n' https://127.0.0.1/admin/login
curl -s  -o /dev/null -w 'http redirect -> %{http_code}\n' http://127.0.0.1/

Expected: three lines of active, then admin login -> 200 and http redirect -> 301.

Service status, HTTPS admin panel and listening ports

Step 5 — Retrieve your administrator credentials

On the first boot of every VM, a one-shot service (aureuserp-firstboot.service) generates credentials that are unique to that VM: a fresh Laravel application key, a fresh MariaDB password, and a fresh administrator email and password. It also generates a per-VM self-signed TLS certificate and sets the VM's own address as the application URL. No shared or default credentials ship in the image — the install-time admin@example.com account has its password neutralised at build time and does not authenticate.

sudo cat /root/aureuserp-credentials.txt

The file (mode 0600, root only) contains the administrator email (aureuserp.admin.user), the administrator password (aureuserp.admin.pass), the admin URL, and the database credentials. AureusERP signs in by email at /admin/login.

Per-VM credentials and the rejected default login

You can prove the credential round-trip from the VM's own shell — this reads the per-VM administrator credentials and confirms the rotated password verifies against the stored bcrypt hash on the users row, which is exactly what Filament's authentication guard checks:

ADMIN_USER=$(sudo grep '^aureuserp.admin.user=' /root/aureuserp-credentials.txt | cut -d= -f2-)
ADMIN_PASS=$(sudo grep '^aureuserp.admin.pass=' /root/aureuserp-credentials.txt | cut -d= -f2-)
HASH=$(sudo mariadb -N -B aureuserp -e "SELECT password FROM users WHERE email='$ADMIN_USER';")
HH="$HASH" PP="$ADMIN_PASS" php -r 'echo password_verify(getenv("PP"),getenv("HH")) ? "admin password verifies -> OK\n" : "verify failed\n";'

Step 6 — Sign in to the admin panel

Browse to https://<vm-public-ip>/admin and sign in with the administrator email and password from the credentials file. Because the image ships a per-VM self-signed certificate, your browser shows a one-time certificate warning on first visit — click through it, or install your own domain certificate into /etc/nginx/ssl/.

AureusERP admin sign-in

After signing in you land on the admin home, which presents AureusERP's modular Apps — Accounting, Contacts, Employees, Inventories, Invoices, Projects, Sales and more — that you can install and manage from the built-in Plugin manager.

AureusERP admin home and modular apps

Step 7 — Manage companies, users and reference data

From the Settings area you manage Companies, Teams, Users, Roles and Custom Fields. The image seeds a default company so you can start immediately: choose Companies to edit it or add your own, and Users and Roles to invite colleagues and control access with the Filament Shield role-based permissions.

Companies list in the admin panel

Reference data such as currencies and countries is seeded so the ERP is ready to transact — for example the Currencies list is populated with the world's currencies out of the box.

Seeded currencies reference data

Step 8 — Confirm the version and the stack

sudo -u www-data php /var/www/aureuserp/artisan --version
php -v | head -1
mariadb --version

Expected: Laravel Framework 13.8.0, PHP 8.3, and the MariaDB version. AureusERP runs as a Laravel 13 + FilamentPHP 5 application on PHP 8.3 with OPcache, served by nginx over HTTPS with php-fpm, backed by MariaDB. You can also confirm the seeded reference data:

sudo mariadb -N -B aureuserp -e "SELECT CONCAT('currencies=',(SELECT COUNT(*) FROM currencies),'  countries=',(SELECT COUNT(*) FROM countries),'  permissions=',(SELECT COUNT(*) FROM permissions));"

Expected: a line reporting the seeded currency, country and permission counts (for example currencies=169 countries=250 permissions=187).

Version and stack

First-boot service and security model

A one-shot aureuserp-firstboot.service runs After=mariadb.service and Before=nginx.service, so the per-VM credentials and TLS certificate are in place before the first page is ever served. It writes the credentials file at mode 0600 (root only) and drops a sentinel so it runs exactly once.

systemctl status aureuserp-firstboot.service --no-pager | head -6
sudo stat -c '%a %U:%G %n' /root/aureuserp-credentials.txt

First-boot service, systemd ordering and per-VM certificate

Administration from the CLI

Admin tasks use Laravel's artisan as the www-data user, for example to list the available commands:

sudo -u www-data php /var/www/aureuserp/artisan list | head -30

Common operations include php artisan cache:clear, php artisan optimize (cache config and routes for production), php artisan optimize:clear to clear those caches, and php artisan queue:work if you move email and background jobs to a queue.

Enabling HTTPS with your own domain

The image already serves HTTPS with a per-VM self-signed certificate. For production, point a real domain at the VM's public IP, open 443/tcp in the NSG, then replace the self-signed certificate with a trusted one using Let's Encrypt (replace the domain):

sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com

After the certificate is issued, set the new address as the application URL in /var/www/aureuserp/.env (APP_URL=https://your-domain.com), then sudo -u www-data php /var/www/aureuserp/artisan optimize:clear.

Backup and maintenance

The database lives at /var/lib/mysql and the application tree — code, docroot and uploaded media — at /var/www/aureuserp. Snapshot the OS disk in Azure for a point-in-time backup, or dump the database with (the database password is in the credentials file):

sudo mariadb-dump aureuserp > aureuserp-backup.sql

Keep the OS patched with sudo apt update && sudo apt upgrade (unattended security upgrades are enabled by default). The stack restarts cleanly with sudo systemctl restart nginx php8.3-fpm mariadb.

Support

This image is backed by 24/7 cloudimg support. Contact us by email and chat for help with AureusERP deployment, upgrades, plugin and module installation, roles and permissions, company and multi-company setup, accounting, inventory and CRM configuration, API integration, performance tuning and database administration.

All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.