Sy
Developer Tools Azure

Sylius on Ubuntu 24.04 on Azure User Guide

| Product: Sylius on Ubuntu 24.04 LTS on Azure

Overview

Sylius is a modern, open-source e-commerce platform built on the Symfony framework. It gives you a fully customisable, API-first storefront and a powerful administration panel for managing products, catalogues, orders, customers, promotions and shipping, all hosted on your own infrastructure. The cloudimg image installs Sylius 2.2.2 on a full LEMP stack from the Ubuntu 24.04 repositories (nginx, PHP 8.3-FPM and MySQL 8), runs the entire headless install at build time so there is no web wizard, stores the MySQL database and Sylius media uploads on a dedicated Azure data disk, and rotates the database password, the application secret and the administrator password on the first boot of every VM. Backed by 24/7 cloudimg support.

What is included:

  • Sylius 2.2.2 served on port 80 by nginx via the PHP 8.3-FPM FastCGI socket
  • MySQL 8 on loopback with its data directory on a dedicated Azure data disk
  • A dedicated Azure data disk at /var/lib/sylius for the MySQL database and Sylius media uploads
  • Per-VM database credentials, application secret and a unique administrator password generated on first boot
  • The storefront at / and the administration panel at /admin
  • nginx.service, php8.3-fpm.service and mysql.service as 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_B4ms (4 vCPU / 16 GiB RAM) is a good starting point for Sylius. NSG inbound: allow 22/tcp from your management network and 80/tcp for the Sylius 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 Sylius 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 from the Azure CLI

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

Step 3 - Connect to your VM

ssh azureuser@<vm-public-ip>

Step 4 - Confirm the LEMP stack is running

On first boot Sylius regenerates its database credentials and application secret, rotates a unique administrator password and starts the stack.

systemctl is-active nginx php8.3-fpm mysql

All three report active.

LEMP stack status for Sylius on Ubuntu 24.04

You can confirm the component versions and that the storefront answers:

php -v | head -1
mysql --version
curl -s -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1/health
curl -s -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1/

The health endpoint and the storefront home both return HTTP 200.

Step 5 - Retrieve the administrator password

The administrator password is unique to your VM and is generated on first boot. Read the credentials file as root:

sudo cat /root/sylius-credentials.txt

Per-VM Sylius credentials file

The file contains the storefront URL, the admin panel URL, the login (sylius), the email (admin@cloudimg.local) and a unique password. Change the email and password from the admin panel after your first sign-in.

Step 6 - Browse the storefront

Browse to http://<vm-public-ip>/ to view the Sylius storefront, pre-loaded with the default demo catalogue so you can see a working shop immediately.

Sylius storefront home

Step 7 - Sign in to the admin panel

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

Sylius admin login page

Step 8 - Explore the administration dashboard

The admin dashboard summarises your store - total sales, new orders, new customers and the latest order activity - with the full management menu down the left for catalogue, orders, customers, marketing and configuration.

Sylius admin dashboard and orders

Step 9 - Manage the product catalogue

Under Catalog -> Products you manage every product, its variants, pricing, taxons (categories), images and inventory. From here you can add new products, edit existing ones and organise your catalogue.

Sylius product catalogue

Data on the dedicated data disk

The MySQL data directory (/var/lib/sylius/mysql) and the Sylius media uploads (/var/lib/sylius/media) live on a dedicated Azure data disk mounted at /var/lib/sylius. This keeps all of your store data, orders and product images on a managed disk you can snapshot, resize and back up independently of the OS disk.

df -h /var/lib/sylius | tail -1

Sylius first-boot service and data disk

Enabling HTTPS

For production, put Sylius behind TLS. The simplest approach is a free Let's Encrypt certificate with Certbot once you have a DNS name pointing at the VM:

sudo snap install --classic certbot
sudo ln -sf /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d your-domain.example.com

Certbot edits the nginx site to serve HTTPS and sets up automatic renewal. After enabling TLS, add your HTTPS hostname to the TRUSTED_HOSTS regex in /var/www/sylius/.env.local and reload PHP-FPM and nginx with sudo systemctl reload php8.3-fpm nginx.

Maintenance

Sylius periodically ships new releases. To upgrade, follow the official Sylius upgrade guide (update the sylius/sylius constraint in /var/www/sylius/composer.json, run sudo composer update as appropriate, then sudo -u www-data php /var/www/sylius/bin/console doctrine:migrations:migrate --no-interaction and rebuild assets with yarn build). The OS continues to receive unattended security updates. The MySQL database and Sylius media persist on the data disk across reboots and upgrades.

Support

This image is maintained by cloudimg with 24/7 support. Sylius is open-source software licensed under the MIT License. "Sylius" is a trademark of Sylius sp. z o.o.; cloudimg is not affiliated with or endorsed by Sylius sp. z o.o. For help with this image, contact support@cloudimg.co.uk.