> For the complete documentation index, see [llms.txt](https://docs.hivel.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hivel.ai/self-managed-hivel-deployment/virtual-private-cloud/azure/dns-setup-azure/upgrading-from-option-b-to-option-a-and-managing-the-caddy-container.md).

# Upgrading from Option B to Option A and Managing the Caddy Container

DNS Setup (Azure)

### Upgrading from Option B to Option A

Once a domain is available, switch without rebuilding the container:

```
cat > ~/caddy/Caddyfile <<'EOF'
hivel.yourcompany.com {
    reverse_proxy localhost:3000
}
EOF
 
docker restart caddy
```

**Expected result:** Caddy detects the change and automatically requests a **Let's Encrypt certificate** on restart.

### Managing the Caddy Container

```
# View logs
docker logs -f caddy
 
# Restart (e.g. after editing the Caddyfile)
docker restart caddy
 
# Stop
docker stop caddy
 
# Remove entirely (application remains reachable on :3000 directly)
docker rm -f caddy

```

Certificates are stored in the caddy\_data Docker volume and persist across container restarts and upgrades, so renewals happen automatically without re-issuing from scratch.

**Next:** Troubleshooting.

{% columns %}
{% column %} <a href="/self-managed-hivel-deployment/virtual-private-cloud/azure/dns-setup-azure/setup-and-prerequisites/option-b-no-domain-yet-self-signed-temporary.md" class="button primary" data-icon="backward">Option B - Self-Signed</a>
{% endcolumn %}

{% column %}

{% endcolumn %}

{% column %} <a href="/self-managed-hivel-deployment/virtual-private-cloud/azure/dns-setup-azure/troubleshooting.md" class="button primary" data-icon="forward">Troubleshooting</a>
{% endcolumn %}
{% endcolumns %}
