---
name: adom-cloud
description: Provision and manage *.adom.cloud subdomains that proxy to Adom container URLs. Use when the user asks to "create a subdomain", "set up adom.cloud", "make a short URL for my app", "create a DNS entry", "list my subdomains", "delete a subdomain", or wants a clean public URL for any container service. Also trigger when the user mentions "adom.cloud" in the context of creating or managing URLs.
---

# adom.cloud — DNS Proxy Service

Provision short, memorable `*.adom.cloud` URLs that reverse-proxy to long Adom container URLs. Powered by Cloudflare Workers + KV on the edge.

**Example:** `https://dart-selfdriving-thruway.adom.cloud` → proxies to the user's container service, hiding the secret container hash.

## How It Works

```
Browser → myapp.adom.cloud → Cloudflare (proxied DNS) → CF Worker → KV lookup → Container URL
```

The Worker reads the subdomain from the Host header, looks up the target in KV, and reverse-proxies the request (HTTP + WebSocket). The secret container hash never appears in the user's browser.

## Provisioning a Subdomain

To create a new subdomain, you need to do TWO things via the Cloudflare API:

### 1. Create a proxied DNS A record

The IP `192.0.2.1` is a dummy (RFC 5737 documentation address). The Worker intercepts before it reaches origin. **Must be `proxied: true`** (orange cloud).

### 2. Write the KV mapping

The `target` must be a full URL with trailing slash.

### 3. Verify it works

Should return HTTP 200 (or whatever the target returns).

## Subdomain Validation Rules

- Lowercase alphanumeric + hyphens only
- 1–63 characters
- Cannot start or end with a hyphen
- Reserved names blocked

## Architecture Details

- **Domain:** adom.cloud (registered on Cloudflare)
- **Worker:** `adom-dns-proxy` — deployed to Cloudflare edge, routes `*.adom.cloud/*`
- **KV Namespace:** `DNS_MAP` — stores subdomain → target URL mappings
- **DNS records:** Proxied A records pointing to 192.0.2.1 (dummy IP, Worker intercepts)
- **Source code:** `gallia/dns/` (Worker in `worker/`, service in root)
