Skip to main content
Version: 1.0.0

Uptime Kuma on Aruba Cloud

Deploy Uptime Kuma — a self-hosted monitoring tool and status page — on a minimal Aruba Cloud VM.

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


Introduction​

Uptime Kuma monitors websites, APIs, TCP ports, DNS records, and more. It provides real-time notifications via Telegram, Slack, Discord, email, and many other channels. A public status page can be shared with your users.

Deploy it on Aruba Cloud to monitor all your other Aruba Cloud examples from the same region.


Architecture Overview​


Infrastructure Created​

ResourceDescription
arubacloud_projectkuma-prod
arubacloud_cloudserverkuma-prod-vm (CSO1A2)
arubacloud_blockstorage20 GB boot disk
arubacloud_elasticipPublic IP
arubacloud_securitygroupTCP 3001 + SSH 22 ingress

VM Sizing​

A CSO1A2 (1 vCPU / 2 GB) VM is sufficient for hundreds of monitors. Scale up only if you run many concurrent checks with sub-second intervals.


Estimated Monthly Cost​

ResourceEst. cost/mo
CSO1A2 VM~€10
20 GB disk~€3
Elastic IP~€5
Total~€18/mo

Variables​

Required​

arubacloud_client_id, arubacloud_client_secret, ssh_public_key

Optional​

VariableDefaultDescription
kuma_port3001Web UI port
admin_cidr"0.0.0.0/0"CIDR for web UI access — restrict to your IP
ssh_cidr"0.0.0.0/0"CIDR for SSH — restrict to your IP
vm_flavor"CSO1A2"Smallest available VM
vm_disk_size_gb20Disk in GB

Deployment​

cd terraform-arubacloud-examples/uptime-kuma
cp terraform.tfvars.example terraform.tfvars
terraform init && terraform apply

After ~5 minutes:

terraform output app_url
# http://203.0.113.10:3001

Open the URL and create your admin account on first visit.


Destroy​

terraform destroy

Security Recommendations​

  1. Restrict admin_cidr to your IP — the web UI has no rate limiting on login attempts.
  2. Add HTTPS — put Uptime Kuma behind the Traefik example for TLS termination, or use Caddy as a reverse proxy on the same VM.
  3. Enable 2FA in Uptime Kuma Settings → Two Factor Authentication.

Troubleshooting​

UI not loading​

ssh ubuntu@$(terraform output -raw public_ip)
sudo -u kuma pm2 status
sudo -u kuma pm2 logs uptime-kuma --lines 50

Service not starting after reboot​

sudo systemctl status pm2-kuma
sudo systemctl start pm2-kuma

References​