Deployment guide

Sylius

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.

This SecureAnyCloud 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. The headless install runs at build time, so there is no web wizard. On the first boot of every VM, the image rotates the database password, the application secret and the administrator password.

What you get:

  • Sylius 2.2.2 served on port 80 by nginx through 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 enabled, active systemd units
  • 24/7 SecureAnyCloud support

Prerequisites

You need an active Azure subscription, an SSH key pair, and a VNet with a subnet in the target region.

Standard_B4ms (4 vCPU / 16 GiB RAM) is a good starting size for Sylius.

Configure the network security group (NSG) to allow inbound 22/tcp from your management network and 80/tcp for the Sylius web interface. For public exposure, put TLS in front of it (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 SecureAnyCloud, and select Create.

On the Basics tab, 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 select Review + create and Create.

Step 2 - Deploy from the Azure CLI

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

Connect over SSH as azureuser:

ssh azureuser@<vm-public-ip>

Step 4 - Confirm the LEMP stack is running

On first boot, Sylius regenerates its database credentials and application secret, sets a unique administrator password and starts the stack. Check that all three services are active:

systemctl is-active nginx php8.3-fpm mysql

All three report active.

Next, 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

Your VM generates a unique administrator password on first boot. Read the credentials file as root:

sudo cat /root/sylius-credentials.txt

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

Step 6 - Browse the storefront

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

Step 7 - Sign in to the admin panel

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

Step 8 - Explore the administration dashboard

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

Step 9 - Manage the product catalogue

Open Catalog -> Products to 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.

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. Your store data, orders and product images therefore sit on a managed disk that you can snapshot, resize and back up independently of the OS disk. Confirm the mount:

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

Enabling HTTPS

For production, put Sylius behind TLS. The simplest approach is a free Let's Encrypt certificate from Certbot, once a DNS name points 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 you enable TLS, add your HTTPS hostname to the TRUSTED_HOSTS regex in /var/www/sylius/.env.local. Then reload PHP-FPM and nginx with sudo systemctl reload php8.3-fpm nginx.

Maintenance

Sylius ships new releases periodically. 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.
  • Run sudo -u www-data php /var/www/sylius/bin/console doctrine:migrations:migrate --no-interaction.
  • Rebuild assets with yarn build.

The OS keeps receiving unattended security updates. The MySQL database and Sylius media persist on the data disk across reboots and upgrades.

Support

SecureAnyCloud maintains this image and provides 24/7 support. Sylius is open-source software licensed under the MIT License. "Sylius" is a trademark of Sylius sp. z o.o., and SecureAnyCloud is not affiliated with or endorsed by Sylius sp. z o.o. For help with this image, contact sales@secureanycloud.com.

Deploy on Azure

Launch Sylius 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