Skip to main content
Version: 0.5.4

Joomla on Aruba Cloud

Deploy Joomla 5 — a popular open-source CMS — on Aruba Cloud using Terraform and cloud-init. Joomla is installed via the official CLI installer with a managed MySQL 8.0 DBaaS backend.

Provider version: arubacloud/arubacloud ~> 0.5 | Terraform: ≥ 1.9


Introduction​

Joomla 5 is a feature-rich CMS suitable for websites, intranets, and web applications. This example provisions:

  • Apache2 + PHP 8.1 with all Joomla-required extensions
  • Joomla downloaded from the official GitHub release and installed via the built-in CLI installer in fully unattended mode
  • Managed MySQL 8.0 via ArubaCloud DBaaS
  • Ports 80 and 443 open to the internet
  • Optional HTTPS via Let's Encrypt when domain is set
  • Installation directory removed automatically after setup (Joomla security requirement)

Architecture Overview​


Infrastructure Created​

ResourceName patternDescription
arubacloud_projectjoomla-prodProject container
arubacloud_vpcjoomla-prod-vpcVirtual Private Cloud
arubacloud_subnetjoomla-prod-subnetBasic subnet
arubacloud_securitygroupjoomla-prod-vm-sgVM security group
arubacloud_securitygroupjoomla-prod-dbaas-sgDBaaS security group
arubacloud_securityrulejoomla-prod-vm-sshSSH ingress
arubacloud_securityrulejoomla-prod-vm-httpHTTP ingress TCP 80
arubacloud_securityrulejoomla-prod-vm-httpsHTTPS ingress TCP 443
arubacloud_securityrulejoomla-prod-db-mysqlMySQL ingress from VM IP only
arubacloud_elasticipjoomla-prod-vm-eipVM public IP
arubacloud_elasticipjoomla-prod-dbaas-eipDBaaS public IP
arubacloud_blockstoragejoomla-prod-boot30 GB boot disk (Performance)
arubacloud_keypairjoomla-prod-keypairSSH public key
arubacloud_dbaasjoomla-prod-dbaasManaged MySQL 8.0
arubacloud_databasejoomlaJoomla database
arubacloud_dbaasuserjoomlaJoomla DB user
arubacloud_cloudserverjoomla-prod-vmCloudServer VM

Estimated Monthly Cost​

ResourceSpecEst. cost/mo
CloudServer VMCSO2A4 — 2 vCPU / 4 GB~€18
Boot disk30 GB Performance~€5
Elastic IP (VM)—~€3
MySQL DBaaSDBO2A8 + 20 GB~€30
Elastic IP (DBaaS)—~€3
Total~€59/mo

Requirements​

  • Terraform ≥ 1.9
  • ArubaCloud Terraform Provider ~> 0.5
  • An ArubaCloud account with OAuth2 API credentials
  • An SSH key pair

Variables​

Required​

VariableDescription
arubacloud_client_idArubaCloud OAuth2 client ID
arubacloud_client_secretArubaCloud OAuth2 client secret
ssh_public_keySSH public key content
db_passwordJoomla MySQL user password (min 16 chars)
admin_emailJoomla admin email address
admin_passwordJoomla admin password (min 12 chars)

Optional​

VariableDefaultDescription
app_name"joomla"Short name used in all resource names
environment"prod"Environment label
location"ITBG-Bergamo"ArubaCloud region
zone"ITBG-1"Availability zone
billing_period"Hour""Hour" or "Month"
vm_flavor"CSO2A4"CloudServer flavor
vm_image"LU22-001"Boot disk image (Ubuntu 22.04 LTS)
vm_disk_size_gb30Boot disk size in GB
ssh_cidr"0.0.0.0/0"CIDR for SSH — restrict in production
dbaas_flavor"DBO2A8"DBaaS instance flavor
db_storage_gb20DBaaS initial storage size in GB
site_name"My Joomla Site"Site display name
admin_user"admin"Joomla admin username
admin_fullname"Site Administrator"Joomla admin full name
joomla_version"5.3.2"Joomla release version
domain""Domain for automatic Let's Encrypt HTTPS

Outputs​

OutputDescription
site_urlJoomla site URL
admin_urlJoomla administrator panel URL
vm_public_ipPublic IP address of the VM
ssh_commandSSH command to connect to the VM
db_hostMySQL DBaaS host address

Deployment Instructions​

1. Clone and navigate​

git clone https://github.com/arubacloud/terraform-arubacloud-examples.git
cd terraform-arubacloud-examples/joomla

2. Configure variables​

cp terraform.tfvars.example terraform.tfvars

3. Deploy​

terraform init
terraform plan
terraform apply

Bootstrap takes approximately 5–10 minutes.

4. Access Joomla​

terraform output site_url
terraform output admin_url

Log in to /administrator with admin_user and admin_password.


References​