Deployment guide

WBCE CMS

Overview

WBCE CMS (WebsiteBaker Community Edition) is a lightweight open-source content management system for building and running websites. It offers a tree of pages built from content sections, an admin console, and a droplets and module system, all on the classic LAMP stack.

The SecureAnyCloud image installs WBCE CMS 1.6.8 on a full LAMP stack from the Ubuntu 24.04 repositories (nginx, PHP 8.3-FPM and MariaDB). The entire installation runs at build time, so there is no web setup wizard for you to complete.

What you get:

  • WBCE CMS 1.6.8 served on port 80 by nginx through the PHP 8.3-FPM FastCGI socket.
  • A seeded default home page, so a fresh VM serves a rendered site immediately.
  • The web installer removed after setup, so no visitor can re-run it.
  • MariaDB on loopback, with its data directory on a dedicated Azure data disk.
  • A dedicated Azure data disk at /var/lib/wbce for the MariaDB database and uploaded media.
  • A per-VM database password and a unique administrator account, both generated on first boot.
  • nginx.service, php8.3-fpm.service and mariadb.service as systemd units, enabled and active.
  • 24/7 SecureAnyCloud support.

Prerequisites

Before you deploy this image, make sure you have:

  • An active Azure subscription.
  • An SSH key pair.
  • A VNet and subnet in the target region.
  • A VM size of Standard_B2s (2 vCPU / 4 GiB RAM) or larger. Standard_B2s is a good starting point.
  • NSG inbound rules that allow 22/tcp from your management network and 80/tcp for the WBCE CMS web interface. Front the site with TLS for public exposure, as described under Enabling HTTPS.

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal and choose Create a resource. Search the Marketplace for WBCE CMS 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 choose Review + create, followed by Create.

Step 2 - Deploy with the Azure CLI

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

Step 3 - Connect to your VM

ssh azureuser@<vm-public-ip>

Step 4 - Confirm the LAMP stack is running

On first boot, WBCE CMS rotates its database password and resets the administrator account to a fresh per-VM password. It then clears the cache and starts the stack. Check that the three services are running:

systemctl is-active nginx php8.3-fpm mariadb

All three report active.

Next, confirm the component versions and that the site answers on port 80:

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

The site home returns HTTP 200. The bundled MariaDB listens only on the loopback interface (127.0.0.1:3306). Only the web server is exposed on the network.

Step 5 - Retrieve the administrator password

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

sudo cat /root/wbce-credentials.txt

The file contains the login (admin), the admin console URL and a unique password, plus the database name, user and password. It is 0600 and owned by root.

The web installer has been removed, so there is no default login and no way for a visitor to re-run setup. After your first sign-in, change the email and password from the admin console.

Step 6 - Browse to your site

Browse to http://<vm-public-ip>/. The image ships with a seeded default home page, so you see a complete, rendered site immediately. You can start editing rather than facing a blank "under construction" page.

Step 7 - Sign in to the admin console

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

After you sign in, you land on the admin dashboard. It is the control centre for your site, with Pages, Media, Add-ons, Preferences, Settings and Access.

Step 8 - Manage pages, sections and content

Open Pages to see your page tree. From here you can add, move and delete pages, set each page's visibility, and edit page content in the built-in WYSIWYG editor.

Each page is built from one or more sections. The Add Page form lets you choose the page type (WYSIWYG by default), the parent and the visibility.

Manage files under Media. Install additional functionality (modules, templates and languages) under Add-ons.

Step 9 - The dedicated data disk and per-VM security

The MariaDB database and the uploaded media of WBCE CMS live on a dedicated Azure data disk mounted at /var/lib/wbce, separate from the OS disk. This keeps your content independent of the OS image and lets you resize the disk as your site grows.

The first-boot service that rotates the per-VM secrets runs once, on the first boot of every VM. Confirm the data disk is mounted:

df -h /var/lib/wbce findmnt /var/lib/wbce

Step 10 - Installer removed and framework files not web-served

The web installer is deleted after the image is built. The database credential file and the PHP framework files are never served over HTTP. These commands confirm that the installer is gone while the site and admin still serve normally:

curl -s -o /dev/null -w '/install/ -> HTTP %{http_code}\n' http://127.0.0.1/install/index.php
curl -s -o /dev/null -w '/config.php -> HTTP %{http_code}\n' http://127.0.0.1/config.php
curl -s -o /dev/null -w '/ -> HTTP %{http_code}\n' http://127.0.0.1/

/install/ returns HTTP 404, /config.php returns HTTP 403, and the site home returns HTTP 200.

Step 11 - Enabling HTTPS

For any public deployment, front WBCE CMS with TLS. Point a DNS A record at your VM's public IP, then install a certificate with Certbot and the nginx plugin. Complete these steps on your VM, using your own domain and contact email:

  • Install Certbot: sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
  • Obtain and install a certificate for your domain by running Certbot with the nginx plugin for your-domain.example.com. Supply your contact email when prompted.
  • WBCE CMS derives its base URL from the request. It switches generated links to https:// automatically once TLS is terminated in front of it, so no configuration change is required.

Certbot installs a renewal timer automatically, so certificates renew without further action.

Step 12 - Maintenance

  • Updates: the OS continues to receive unattended security updates. Update WBCE CMS itself from the admin console under Add-ons, or with the upstream upgrade script.
  • Backups: back up the MariaDB wbce database, for example with mysqldump, and the /var/lib/wbce/media directory. Together they hold your content and uploaded media.
  • Logs: web server logs are under /var/log/nginx/. PHP-FPM logs are in /var/log/php8.3-fpm.log.

Support

This image is maintained by SecureAnyCloud and backed by 24/7 support. If you need help deploying or operating WBCE CMS on Azure, contact the SecureAnyCloud team through the SecureAnyCloud website, or email sales@secureanycloud.com.

Deploy on Azure

Launch WBCE CMS 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