···
- **Custom Domain Hosting**: Serve verified custom domains
- **Wisp.place Subdomains**: Serve registered `*.wisp.place` subdomains
- **DNS Hash Routing**: Support DNS verification via `hash.dns.wisp.place`
10
-
- **Direct File Serving**: Access sites via `/s/:identifier/:site/*` (no DB lookup)
10
+
- **Direct File Serving**: Access sites via `sites.wisp.place/:identifier/:site/*` (no DB lookup)
- **Firehose Worker**: Listens to AT Protocol firehose for new `place.wisp.fs` records
- **Automatic Caching**: Downloads and caches sites locally on first access or firehose event
- **SSRF Protection**: Hardened fetch with timeout, size limits, and private IP blocking
···
- DNS verification routing for custom domains
- DB lookup: `custom_domains` by hash
29
-
4. **Direct Serving** (`/s.wisp.place/:identifier/:site/*`)
29
+
4. **Direct Serving** (`/sites.wisp.place/:identifier/:site/*`)
- Direct access without DB lookup
- `:identifier` can be DID or handle
- Fetches from PDS if not cached
33
-
- **Automatic HTML path rewriting**: Absolute paths (`/style.css`) are rewritten to relative paths (`/s/:identifier/:site/style.css`)
33
+
- **Automatic HTML path rewriting**: Absolute paths (`/style.css`) are rewritten to relative paths (`sites.wisp.place/:identifier/:site/style.css`)
···
<img src="/images/logo.png">
<!-- Served at /s/did:plc:abc123/mysite/ becomes -->
110
-
<link rel="stylesheet" href="/s/did:plc:abc123/mysite/style.css">
111
-
<img src="/s/did:plc:abc123/mysite/images/logo.png">
110
+
<link rel="stylesheet" href="sites.wisp.place/did:plc:abc123/mysite/style.css">
111
+
<img src="sites.wisp.place/did:plc:abc123/mysite/images/logo.png">
This ensures sites work correctly when served from subdirectories without requiring manual path adjustments.