Skip to content

Commit d0bcd90

Browse files
committed
Clarify validated Azure VM path after independent review
1 parent 4358bdb commit d0bcd90

2 files changed

Lines changed: 26 additions & 12 deletions

File tree

‎enterprise/quick-start.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Choose the guide for your infrastructure:
1515
Provision a Compute Engine VM and configure administrator-managed Vertex AI models.
1616
</Card>
1717
<Card title="Azure Quick Start" icon="microsoft" href="/enterprise/vm-install/azure">
18-
Provision an Azure VM, start with Anthropic and optionally configure administrator-managed Azure OpenAI models.
18+
Provision an Azure VM and install OpenHands Enterprise with Anthropic inference.
1919
</Card>
2020
<Card title="Generic VM Quick Start" icon="server" href="/enterprise/vm-install/generic-vm">
2121
Prepare a Linux VM on-premises or on another cloud provider, then install and configure OpenHands.

‎enterprise/vm-install/azure.mdx‎

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ VM installation.
2525
- An Anthropic API key and a GitHub account with permission to create/install a GitHub App.
2626

2727
Subscription `Contributor` normally covers the infrastructure in this guide.
28-
Azure RBAC assignments may require an authorized subscription administrator.
2928

3029
## Plan the Azure Resources
3130

@@ -49,6 +48,9 @@ and the [Sizing Guide](/enterprise/sizing-guide) for larger deployments.
4948
Use persistent managed storage for installation data. Azure temporary/resource
5049
disks can be lost during host maintenance or redeployment. This example keeps
5150
installation data on the managed OS disk rather than adding a temporary disk.
51+
This single-disk layout was used for the validation below. For a deployment that
52+
needs to grow, follow the [Sizing Guide](/enterprise/sizing-guide) recommendation
53+
to use a separate expandable data volume.
5254

5355
## Provision Infrastructure
5456

@@ -206,7 +208,12 @@ If you do not already have a certificate, install Certbot using its
206208
run a manual DNS-01 challenge on your administrator workstation:
207209

208210
```bash
209-
sudo certbot certonly --manual --preferred-challenges dns \
211+
umask 077
212+
mkdir -p "$HOME/letsencrypt"
213+
certbot certonly --manual --preferred-challenges dns \
214+
--config-dir "$HOME/letsencrypt" \
215+
--work-dir "$HOME/letsencrypt/work" \
216+
--logs-dir "$HOME/letsencrypt/logs" \
210217
--cert-name openhands-azure -d "*.${BASE_DOMAIN}"
211218
```
212219

@@ -222,7 +229,8 @@ dig +short TXT "_acme-challenge.${BASE_DOMAIN}"
222229
```
223230

224231
After issuance, Certbot saves the full chain and private key under
225-
`/etc/letsencrypt/live/openhands-azure/`. Transfer those files through your
232+
`$HOME/letsencrypt/live/openhands-azure/`, owned by the user who ran Certbot.
233+
Transfer those files through your
226234
approved private channel, or substitute existing certificate files below. See
227235
[Certbot's manual challenge guide](https://eff-certbot.readthedocs.io/en/stable/using.html#manual).
228236
Manual challenges need to be repeated for renewal unless you configure an
@@ -352,6 +360,7 @@ If any check fails, stop and resolve before continuing:
352360
| `traefik.github.io` | Embedded cluster ingress chart repository |
353361
| `ghcr.io`, `registry-1.docker.io` | Container image pulls for platform components |
354362
| `github.com` | GitHub App setup/auth/webhooks and downloading public agent skills |
363+
| `api.anthropic.com` | Anthropic inference for the initial model configuration |
355364

356365
## Run the Installer
357366

@@ -374,7 +383,10 @@ Select **"Outbound requests allowed"** for Network Availability, then click **Co
374383

375384
The install guide provides commands to run on your VM. SSH into your VM and execute them in order:
376385

377-
1. **Select a version** -- the latest version is pre-selected
386+
1. **Select a version** -- select `0.74.0` to reproduce the validated installation
387+
below. The dashboard pre-selects the latest release; later releases were not
388+
tested for this guide. If `0.74.0` is unavailable, ask OpenHands Support for a
389+
supported release and repeat the preflight and first-conversation checks.
378390
2. **Download the installation assets** -- copy and run the `curl` command shown
379391
3. **Extract the installation assets** -- run the `tar` command shown (this includes your license file)
380392
4. **Install** -- run the install command shown
@@ -449,7 +461,7 @@ You should now see the application configuration page.
449461
### Domain Configuration
450462

451463
- Keep the Hostname Configuration Mode set to **"Simple (default)"**
452-
- Enter your base domain (e.g., `openhands.example.com`)
464+
- Enter your base domain (e.g., `azure.openhands.example.com`)
453465

454466
### Certificate Configuration
455467

@@ -474,7 +486,7 @@ from that provider.
474486
![LLM Configuration provider dropdown](/enterprise/images/llm-configuration-provider-dropdown.png)
475487

476488
For the initial installation, select `Anthropic (Claude)` and enter your key in
477-
`Anthropic API Key`. If your release exposes `Anthropic Models`, enter model IDs
489+
`Anthropic API Key`. Keep or replace the default `Anthropic Models` entries with model IDs
478490
that your account can access, one per line. Confirm the model selected in
479491
OpenHands can complete a request before changing providers.
480492

@@ -560,8 +572,7 @@ Start a new conversation without a repository. Ask it to run `pwd`, write
560572
`OPENHANDS_INSTALL_PASS` to `/tmp/openhands-install-smoke.txt`, and read the file
561573
back with `cat`. Expand the terminal tool result and verify the actual workspace
562574
path and marker output, rather than relying only on the model's summary. The
563-
Agent Canvas server status should show **Running**; API clients should verify
564-
that the sandbox reaches `READY`. Then verify repository discovery and a
575+
Agent Canvas server status should show **Running**. Then verify repository discovery and a
565576
repository-backed conversation.
566577

567578
Deployment readiness alone does not prove that inference and sandbox startup work.
@@ -573,8 +584,10 @@ to collect evidence before adding optional integrations.
573584
<Note>
574585
Azure hosting and Azure model inference are separate. The Azure VM installation
575586
and Anthropic workflow in this guide were validated on Replicated `0.74.0`.
576-
Azure OpenAI gateway setup is deferred until a release contains the required
577-
provider fix and that released package has been validated.
587+
Keep **Anthropic (Claude)** selected for this installation. Do not select
588+
**Azure** in **LLM Configuration** for this validated path. Azure OpenAI gateway
589+
setup is deferred until a release contains the required provider fix and that
590+
released package has been validated.
578591
</Note>
579592

580593
## Operations and Cleanup
@@ -613,7 +626,8 @@ Preserve shared DNS zones and resources outside the dedicated installation group
613626
<Note>
614627
Validated with Replicated `0.74.0` on a dedicated Azure VM using
615628
`Standard_D16s_v3`, Ubuntu 24.04 LTS and a 1,024 GiB Premium SSD OS disk:
616-
host and application preflights without overrides, trusted HTTPS, GitHub login,
629+
host preflight passed on rerun without overrides, application preflights passed,
630+
trusted HTTPS, GitHub login,
617631
persistent PostgreSQL storage, an Anthropic-backed conversation and a manually
618632
dispatched automation, and a read-only repository conversation. The automation
619633
schedule was disabled after testing.

0 commit comments

Comments
 (0)