Skip to main content

Your domain on BYOS

Serve every deployment of a project under your own domain, with a single DNS record created once. Each branch gets a name one level under your domain: production as <project>.<domain>, staging branches as <project>-<branch>.<domain>, development builds as <db>.<domain>, and, on multi-database projects, each named database as <db>.<domain>. Certificates are issued on your server automatically.

The domain itself is never used: mycompany.com keeps serving your website, and Odoo lives next to it at shop.mycompany.com.

Until a domain is attached, deployments on your server receive a default skysize.io address. New default addresses are rate-limited per account, because each one is a separate certificate issued against the shared skysize.io name. Attaching your domain removes that limit entirely: certificates are then issued against your domain.

This feature is for projects deployed on your own server. On managed hosting, add domains to each branch from its Domains section instead.


Pick a zone

The zone is the domain, or the subdomain, that everything should sit under. You choose how deep:

ZoneProductionStaging branch previewDevelopment build
mycompany.comshop.mycompany.comshop-preview.mycompany.compreview-x7k2p9.mycompany.com
odoo.mycompany.comshop.odoo.mycompany.comshop-preview.odoo.mycompany.compreview-x7k2p9.odoo.mycompany.com

(shop is the project name.)

Two rules:

  • Production keeps a domain you already set. If the production branch already carries a domain inside the zone, such as www.mycompany.com or erp.mycompany.com, that domain stays and no name is generated for production. You can also change the production domain later from the branch's Domains section.
  • One zone per project. Two projects cannot share a zone, and a zone cannot sit inside another project's zone.

The registrable domain (mycompany.com) is the best choice when you use Cloudflare, see below.


Create the DNS record

At your DNS provider, create one wildcard record. The dashboard shows it filled in with your server's address under Settings → Your domain:

*.mycompany.com A 203.0.113.7

Every name under the zone then resolves to your server, so hostnames Skysize creates later work immediately. Records you already have for specific names (www, mail, and so on) keep working: a specific record always wins over the wildcard.


Attach and verify

  1. Open the project's Settings tab and find Your domain.
  2. Enter the zone.
  3. Save, then click Verify.

Verification checks that random names under the zone resolve, and that they all resolve to the same place. When it passes, every deployed branch of the project moves onto your domain at once and the skysize.io names are removed. Branches keep their skysize.io names until the zone verifies, and the dashboard re-checks the zone regularly so a broken record shows up on the project page.

The status line tells you what the record reaches: your server directly, a gateway of your own, or Cloudflare's network (orange cloud). Whether the record is proxied is detected from your DNS, there is nothing to declare.

If verification fails

MessageWhat to do
Names under the zone do not resolveCreate the wildcard record *.<zone>, wait for propagation, verify again.
Names under the zone resolve to different addressesKeep a single wildcard record pointing at one address.
Proxied zone below your registrable domainCloudflare's free certificate does not cover *.odoo.mycompany.com. Use mycompany.com as the zone, buy Advanced Certificate Manager, or grey-cloud the wildcard.

Cloudflare

With the record grey-clouded, nothing changes: your server issues the certificates and Cloudflare only serves DNS.

With the orange cloud, requests go through Cloudflare's network to your server. Certificate issuance still works because Cloudflare passes the validation path through; set the SSL mode to Full (strict) so the connection to your server, which has a real certificate, is verified. Free Cloudflare plans only cover wildcards directly under your registrable domain: *.mycompany.com works, a proxied *.odoo.mycompany.com needs Advanced Certificate Manager. This is why every name sits one level under the zone.

The detected state also decides how new branches are created: while the record goes through Cloudflare, new branches default to the Cloudflare proxy; once it is grey-clouded and the zone is verified again, no new branch defaults to proxied. Existing branches are not touched by a change.


Several servers

The record reaches one address. If your project can deploy to several of your servers, point it at your own gateway (a load balancer or reverse proxy you run) and route each hostname to the right server there. The dashboard shows the server and port of every branch on its page. Forward ports 80 and 443 unchanged: your servers issue their own certificates over HTTP validation and the health check expects a real certificate at the origin. A gateway that terminates TLS itself makes the origin check report a certificate problem on those branches.

In short: with one server, one record and you are done; with several, the gateway is yours to run. Skysize handles Odoo, you handle the infrastructure.


Extra names and removal

  • You can still add specific domains to a branch from its Domains section, including names under your zone such as crm.mycompany.com. They are checked like any custom domain.
  • Removing the zone from the settings returns the project to default skysize.io addresses at once. Names you added by hand are kept.
  • Names Skysize creates under your zone are managed: they appear on the branch page but cannot be edited or deleted by hand.