osw-studio / docs /SELF_HOSTED_DOMAINS.md
otst's picture
deployment subdomains with auto-generated slugs, static proxy mode, Caddy config regeneration, Svelte/Vue compilation fix, preview init fix, deployment quota fix, tool call argument sanitization
5a715f2
|
Raw
History Blame Contribute Delete
1.47 kB

Self-Hosted Domain Routing

Guide for OSW Studio operators running their own instances.

Deployment Serving

Published deployments are served by Node.js route handlers by default. For better performance, set STATIC_PROXY=true in .env and use a reverse proxy (e.g., Caddy) to serve deployment files directly. With this setup, deployment requests bypass Node.js entirely.

When STATIC_PROXY=true, publishing or deleting a deployment with a custom domain automatically regenerates the proxy config and reloads it.

Custom Domains

Users can set a custom domain in Deployment Settings and publish. The instance exposes a domain resolution API for proxy integration:

GET /api/resolve-domain?host=sweetcandies.com     → { deploymentId, path }
GET /api/resolve-domain?domain=sweetcandies.com   → 200 or 404 (for on-demand TLS verification)
GET /api/resolve-domain?list=true                  → { domains: [...] } (all registered domains)

User Setup

  1. Enter their domain in Deployment Settings
  2. Publish the deployment
  3. Add a DNS A record pointing to your server's IP
  4. Wait for DNS propagation and SSL provisioning

Notes

  • Deployments published with a custom domain use root-relative asset paths. The direct URL at /deployments/{id}/ will have broken assets — access via the custom domain instead.
  • The domain is registered in the routing table on publish. If a domain is removed and republished, the routing entry is cleared.