Relaticle on Ubuntu 24.04 on Azure User Guide
Overview
Relaticle is a modern, free and open source Customer Relationship Management platform for teams that want to own their customer data. Built on the Laravel framework, the FilamentPHP admin panel and Livewire, it brings companies, contacts (people), opportunities, tasks, notes and highly customisable fields together in one fast, clean interface, with team workspaces so colleagues collaborate on the same pipeline. The cloudimg image delivers Relaticle fully installed and configured on Ubuntu 24.04 — a Laravel 13 application on PHP 8.4 with OPcache, served by nginx over HTTPS with php-fpm, backed by PostgreSQL 17 and Redis, with a database-backed queue worker. Database migrations and the compiled front-end assets are already in place, so you land directly on the sign-in screen with no build step to run. Backed by 24/7 cloudimg support.
What is included:
- Relaticle 3.4.5 (AGPL-3.0 licensed), a Laravel 13 + FilamentPHP 5 + Jetstream CRM, served from
/var/www/relaticle/public - nginx (TLS on :443, with :80 redirected to HTTPS) + PHP 8.4 (php8.4-fpm with OPcache) + PostgreSQL 17 + Redis + a database-backed queue worker (
relaticle-worker.service) - A per-VM self-signed TLS certificate generated on first boot, so the panels load over a secure context
- The CRM workspace panel at
/app(companies, people, opportunities, tasks, notes) and a system-administration panel at/sysadmin - Per-VM system administrator email + password, PostgreSQL password, Laravel
APP_KEYand Passport OAuth keys, all generated at first boot and written to a root-only file — the image ships with no administrator account at all until first boot creates one unique to your VM nginx.service,php8.4-fpm.service,postgresql.service,redis-server.serviceandrelaticle-worker.serviceas systemd units, enabled and active- 24/7 cloudimg support

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. 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 Relaticle 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 relaticle \
--image <marketplace-image-urn> \
--size Standard_B2ms \
--admin-username azureuser \
--ssh-key-values ~/.ssh/id_rsa.pub \
--public-ip-sku Standard
Then open the web ports on the VM's NSG:
az vm open-port --resource-group <your-rg> --name relaticle --port 443 --priority 900
az vm open-port --resource-group <your-rg> --name relaticle --port 80 --priority 901
Step 3 — Connect to your VM
ssh azureuser@<your-vm-public-ip>
Step 4 — Confirm the services are running
Relaticle runs as five systemd units: PostgreSQL and Redis back the application, php-fpm executes the Laravel code, nginx terminates TLS on :443 (with :80 redirecting to HTTPS), and a queue worker processes background jobs and imports.
systemctl is-active postgresql redis-server php8.4-fpm nginx relaticle-worker
ss -ltn | grep -E ':(80|443|5432|6379)'
curl -ks -o /dev/null -w 'HTTP %{http_code}\n' https://127.0.0.1/sysadmin/login

Step 5 — Retrieve your administrator credentials
On first boot the VM generated a system administrator account, a PostgreSQL password, a Laravel APP_KEY and Passport OAuth keys — all unique to this VM — and wrote the administrator login to a root-only file. The image ships with no administrator account, so there is no default login to change.
sudo cat /root/relaticle-credentials.txt

The password is shown once here. Store it in your password manager. The file is 0600 root:root.
Step 6 — Create your CRM workspace
Relaticle is where your team works day to day. Open https://<your-vm-public-ip>/app in a browser. Because the VM 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, see Step 10).
Choose sign up for an account to register your first user, then create your workspace (team). You land in the CRM home, where you can start adding companies, people and opportunities.


Step 7 — Manage companies, people and opportunities
The CRM organises your pipeline around Companies, People and Opportunities, each with customisable fields, list and board views, and CSV import/export. Add a company, link the people you deal with, and track deals as opportunities through the pipeline stages.


Step 8 — Sign in to the system administration panel
The /sysadmin panel is the instance-level administration console for your VM. Sign in at https://<your-vm-public-ip>/sysadmin with the system administrator email and password from /root/relaticle-credentials.txt.
Step 9 — Confirm the version and the stack
grep -m1 '"version"' /var/www/relaticle/composer.json || echo "Relaticle release v3.4.5"
php -v | head -1
sudo -u postgres psql -tAc 'SHOW server_version'
node -v; nginx -v
head -2 /var/www/relaticle/LICENSE

First-boot service and security model
A oneshot systemd unit, relaticle-firstboot.service, runs once on the first boot of each VM. It is ordered After=postgresql.service redis-server.service and Before=nginx.service, and is gated by ConditionPathExists=!/var/lib/cloudimg/relaticle-firstboot.done, so it runs exactly once, before the first page is served. On that first boot it:
- rotates the PostgreSQL
relaticlerole password and writes it into the application.env - generates a fresh Laravel
APP_KEYand a fresh set of Passport OAuth signing keys - sets
APP_URLto the VM's address (resolved from Azure IMDS) - generates a per-VM self-signed TLS certificate into
/etc/nginx/ssl - creates a per-VM system administrator (random email + password) and writes the login to
/root/relaticle-credentials.txt
Because the administrator and every secret are generated per VM, no two deployments share a credential and nothing sensitive is baked into the image.

Administration from the CLI
Run Laravel Artisan commands as the www-data user from the application directory:
sudo -u www-data php /var/www/relaticle/artisan about
sudo -u www-data php /var/www/relaticle/artisan queue:work database --once
sudo -u www-data php /var/www/relaticle/artisan sysadmin:create --name="Ops" --email="ops@example.com" --password="<choose-a-strong-password>"
Step 10 — Enabling HTTPS with your own domain
The image ships a per-VM self-signed certificate so the panels are served over a secure context out of the box. For production, point a DNS record at the VM and install a certificate from a trusted CA. The simplest path is certbot:
sudo snap install --classic certbot
sudo certbot --nginx -d your-domain.com
Then set APP_URL=https://your-domain.com in /var/www/relaticle/.env and run sudo -u www-data php /var/www/relaticle/artisan optimize:clear.
Backup and maintenance
- Database backup:
sudo -u postgres pg_dump relaticle > relaticle-$(date +%F).sql - Application files: the app tree is
/var/www/relaticle; user uploads live under/var/www/relaticle/storage/app. - OS updates: unattended security upgrades are enabled. Apply full updates with
sudo apt-get update && sudo apt-get upgrade. - Logs: application logs are at
/var/www/relaticle/storage/logs; service logs viajournalctl -u nginx -u php8.4-fpm -u relaticle-worker.
Support
Every cloudimg image is backed by 24/7 support. If you need help deploying or operating Relaticle on Azure, contact support@cloudimg.co.uk.