VibeHost
Guides

Custom domains

Bring your own hostname. Cloudflare on-demand TLS handles cert provisioning.

Every app gets a free *.vibehost.space URL by default. Add a custom hostname when you want to ship it under your own brand.

Add a domain

vibehost domain add www.example.com --app my-site

Output:

{
  "ok": true,
  "data": {
    "hostname": "www.example.com",
    "verificationCnameTarget": "<app>.vibehost.space",
    "status": "pending_verification"
  }
}

Configure DNS

Add a CNAME record at your DNS provider:

CNAME  www  <app>.vibehost.space
  1. Open the zone for your domain.
  2. DNSAdd record.
  3. Type: CNAME. Name: www. Target: <app>.vibehost.space.
  4. Proxy status: DNS only (grey cloud) initially — let VibeHost provision the cert via Cloudflare-on-the-other-side. You can flip to proxied (orange cloud) later if you want Cloudflare in front of VibeHost.
  5. SSL/TLS encryption mode → Full or Full (strict). Avoid Flexible — it breaks HSTS.
  1. Open the hosted zone.
  2. Create record.
  3. Record type: CNAME. Record name: www. Value: <app>.vibehost.space. TTL: 300.

Most providers don't support CNAME at apex. Two options:

  1. ALIAS / ANAME / flattened CNAME — Cloudflare, Route 53, DNSimple all support a non-RFC ALIAS/ANAME record that behaves like CNAME at apex.
  2. A records — point to VibeHost's apex-routing IPs. Run vibehost domain add example.com --app my-site and the CLI prints the current IPs.

Verify and provision the cert

vibehost domain verify www.example.com --app my-site

The verifier checks DNS resolution, then asks Caddy (on-demand TLS) to provision a Let's Encrypt cert. Usually completes in under a minute. Status transitions:

pending_verification → dns_verified → cert_provisioning → active

If it stalls in dns_verified for >5 minutes, the cert issuer probably hit a rate limit. Run vibehost domain verify again in 10 minutes.

Manage

vibehost domain list --app my-site
vibehost domain remove www.example.com --app my-site

Removing a domain stops routing immediately but doesn't revoke the cert (Let's Encrypt revocation is rate-limited; we let certs expire).

Multiple domains per app

You can attach as many hostnames as you like:

vibehost domain add example.com --app my-site
vibehost domain add www.example.com --app my-site
vibehost domain add example.net --app my-site

All resolve to the same deployment. The primary URL in app.url stays as the alias *.vibehost.space — custom hostnames are additional, not replacing.

Redirects

vibehost redirects list --app my-site
vibehost redirects add /old-path /new-path --app my-site
vibehost redirects remove <ruleId> --app my-site

# Bulk: upload a JSON file of rules
vibehost redirects upload ./redirects.json --app my-site
vibehost redirects sync --app my-site                  # diff + apply

Limits

ConstraintDefault cap
Hostnames per app25
Hostnames per workspace250
Redirects per app500

Higher caps available on Enterprise plans.

On this page