Gateways

Adding and Configuring a Custom Domain

Learn how to add a custom domain to your Outpost service, verify it, and correctly set the DNS.

Custom domains can be added to a Outpost service and environment.

1
Navigate to the Settings tab of your desired service
2
Click + Custom Domain in the Public Networking section of Settings
3
Type in the custom domain (wildcard domains are supported, see below for more details)
4

In your DNS provider (Cloudflare, DNSimple, Namecheap, etc), update your domain's DNS settings by adding the appropriate DNS record(s) and associating it with the domain provided by Outpost, e.g., abc123.onoutpost.com

  • For subdomains, including "www", add a CNAME record
  • For root or apex domains, the record type will vary, see below for more details
5

Wait for Outpost to verify your record. When verified, you will see a greencheck mark next to the domain(s) -

Screenshot of Custom Domain

Note that changes to DNS settings may take up to 72 hours to propagate worldwide.

Important Considerations

Freenom domains are not allowed and not supported. The Trial Plan is limited to 1 custom domain. It is therefore not possible to use both yourdomain.com and www.yourdomain.com as these are considered two distinct custom domains. The Hobby Plan is limited to 2 custom domains per service. The Pro Plan is limited to 10 domains per service by default. This limit can be increased for Pro users on request, simply reach out to us via a private thread. Wildcard Domains Wildcard domains allow for flexible subdomain management. There are a few important things to know when using them:

Ensure that the CNAME record for authorize.Outpostdns.net is not proxied by your provider (eg: Cloudflare). This is required for the verification process to work. Wildcards can be used for any subdomain level (e.g., *.yourdomain.com or *.subdomain.yourdomain.com). Wildcards cannot be nested (e.g., ..yourdomain.com). When you add a wildcard domain, you will be provided with two domains for which you should add two CNAME records -

Screenshot of Wildcard Domain One record is for the wildcard domain, and one for the _acme-challenge. The _acme-challenge CNAME is required for Outpost to issue the SSL Certificate for your domain.

Wildcard Domains on Cloudflare If you have a wildcard domain on Cloudflare, you must:

Turn off Cloudflare proxying is on the _acme-challenge record (disable the orange cloud)

Disable Cloudflare's Universal SSL

Screenshot of Disabling Cloudflare Universal SSL Redirecting a Root Domain When adding a root or apex domain to your Outpost service, you must ensure that you add the appropriate DNS record to the domain within your DNS provider. At this time, Outpost supports CNAME Flattening and ALIAS records.

Additional context

Generally, direct CNAME records at the root or apex level are incompatible with DNS standards (which assert that you should use an "A" or "AAAA" record). However, given the dynamic nature of the modern web and PaaS providers like Outpost, some DNS providers have incorporated workarounds enabling CNAME-like records to be associated with root domains. Check out RFC 1912 if you're interested in digging into this topic.

Choosing the correct record type

The type of record to create is entirely dependent on your DNS provider. Here are some examples -

Cloudflare CNAME - Simply set up a CNAME record for your root domain in Cloudflare, and they take care of the rest under the hood. Refer to this guide for more detailed instructions. DNSimple ALIAS - Set up an ALIAS in DNSimple for your root domain. Namecheap CNAME - Set up an CNAME in Namecheap for your root domain. Workaround - Changing your Domain's Nameservers

If your DNS provider doesn't support CNAME Flattening or dynamic ALIAS records, you can also change your domain's nameservers to point to Cloudflare's nameservers. This will allow you to use a CNAME record for the root domain. Follow the instructions listed on Cloudflare's documentation to change your nameservers.

TCP Proxying You can proxy TCP traffic to your service by creating a TCP proxy in the service settings. Enter the port that you want traffic proxied to, Outpost will generate a domain and port for you to use. All traffic sent to domain:port will be proxied to your service. This is useful for services that don't support HTTP, such as databases.

Screenshot of TCP proxy configuration Currently we use a random load balancing strategy for TCP traffic.

Using HTTP and TCP together At the moment, Outpost does not support exposing both HTTP and TCP over public networking, in a single service. Therefore, if you have a domain assigned, you will not see the option to enable TCP Proxy, and vice-versa. Meaning, you will need to remove one before you can enable the other.

If you have a usecase that requires exposing both HTTP and TCP over public networking, in one service, let us know!

Let's Encrypt SSL Certificates Once a custom domain has been correctly configured, Outpost will automatically generate and apply a Let's Encrypt certificate. This means that any custom domain on Outpost will automatically be accessible via https://.

External SSL Certificates We currently do not support external SSL certificates since we provision one for you.

Provider Specific Instructions If you have proxying enabled on Cloudflare (the orange cloud), you MUST set your SSL/TLS settings to full or above.

Screenshot of Custom Domain If proxying is not enabled, Cloudflare will not associate the domain with your Outpost project. In this case, you will encounter the following error message:

ERR_TOO_MANY_REDIRECTS Also note that if proxying is enabled, you can NOT use a domain deeper than a first level subdomain without Cloudflare's Advanced Certificate Manager. For example, anything falling under *.yourdomain.com can be proxied through Cloudflare without issue, however if you have a custom domain under *.subdomain.yourdomain.com, you MUST disable Cloudflare Proxying and set the CNAME record to DNS Only (the grey cloud), unless you have Cloudflare's Advanced Certificate Manager.

Support Looking for the technical specs like timeouts, TLS information, rate limits etc? Check out the Public Networking reference page.

Having trouble connecting to your app from the internet? Check out the Fixing Common Errors guide or reach out on our Discord.