Azure VM
@egeuysall · Jun 21, 2026
@egeuysall · Jun 21, 2026
This Terraform stack provisions a small Azure VM, assigns a static public IP
with an Azure-managed DNS hostname, installs Docker, clones the repo, and
starts the existing production terminal stack from
terminal/docker-compose.prod.yml.
.env, and systemdThe current public terminal endpoint uses terminal.egeuysal.com, which is
serving an invalid certificate chain to browsers. This stack uses an
Azure-managed hostname like:
https://cyberminds-terminal-20260621-ncus.northcentralus.cloudapp.azure.com
That hostname terminates through the repo's Caddy config and should obtain a valid certificate automatically once the VM is up and ports 80/443 are open.
az login already completedterraform installedaz group create --name cyberminds-terminal-ncus-rg --location northcentraluscd terminal/infra/azure-vm
cp terraform.tfvars.example terraform.tfvarsEdit terraform.tfvars and set:
subscription_idadmin_ssh_public_keydomain_name_label if the default is already takenssh_allowed_source_addresses if you want public SSH accessThen run:
terraform init
terraform applyAfter apply:
terraform output public_fqdn
terraform output terminal_health_urlVerify health:
curl -I "$(terraform output -raw terminal_health_url)"SSH access:
terraform output -raw ssh_commandPublic SSH is disabled unless you set ssh_allowed_source_addresses.
terminal.egeuysal.com.public_fqdn
output if the DNS label changes.