# Custom domain

> The community at your brand's address, without losing the Memberfy one. Who sets it up, the DNS record, the steps until it's active, each error and what to do, changing without downtime and removing it.

Every community has two possible addresses, and with the custom domain active it opens **on both at the same time**:

| | Example | How it works |
|---|---|---|
| **Memberfy address** | `papodesysadmin.memberfy.net` | Always works, even with a custom domain. It's never removed or changed from this screen |
| **Custom domain** | `community.papodesysadmin.org` | When it becomes **Active**, it becomes the **Primary** address: links, emails and search engines start using it |

Neither one redirects to the other. Anyone who saved the Memberfy link, or was already signed in on it, keeps coming in through it. The custom domain is included in every plan, at no cost from Memberfy; the domain itself is bought from your provider.

## What it's for

- **The brand is yours**: people see your community's address, not another company's.
- **Links and emails with your address**: invitations, password recovery, notices and generated links start pointing to the custom domain.
- **No depending on anyone**: you add it, follow it and change it yourself, and the security certificate (the HTTPS padlock) is issued and renewed on its own.
- **A fallback route**: if your domain's DNS has a problem, the Memberfy address stays up.

## Who can

| Role | What they do |
|---|---|
| **Owner** and **admin** | Add, change, check and remove it, in **Settings › Address and domain**, in the **Custom domain** block |
| **Memberfy team** | Does the same for the community, when you ask |
| Moderator, finance and member | Don't see the block |

## Step by step: add the domain

*Role: owner or admin.*

1. Open **Settings › Address and domain** and go to the **Custom domain** block.
2. In **Your domain**, type the address, without `https://`: `community.papodesysadmin.org`. Use a **subdomain** of your site; the company website stays where it is.
3. Click **Add domain**. Right away, the screen shows **Create this record in your domain's DNS**, with **Type**, **Name** and **Target**, each with a **Copy** button.
4. In your DNS provider's panel (Cloudflare, GoDaddy, Registro.br…), create the record exactly as the screen shows:

   | Type | Name | Target |
   |---|---|---|
   | `CNAME` | `community` | the address shown in **Target**, which is unique to each domain |

5. **Turn off the DNS proxy** for that record (see the warning below).
6. Follow the steps on the screen itself. When it reaches **Active**, the community opens at the new address.

> [!WARNING]
> **Turn off the DNS proxy.** The screen shows this warning prominently when you add the domain and next to the record: *"The security certificate is only issued when the record points straight to Memberfy. If your DNS is on Cloudflare, leave the cloud gray ("DNS only") on the record. With other providers, turn off "proxy", "CDN" or "acceleration" for that record."*

### Root domain

A root domain (`papodesysadmin.org`, with nothing before it) **doesn't accept a CNAME**. In that case, the screen asks for an **ALIAS** or **ANAME** record on `@`, pointing to the same **Target**. If your DNS provider doesn't have that record type, use a subdomain, like `community.papodesysadmin.org`.

## The steps until it's active

| Step | What's happening |
|---|---|
| **Waiting for DNS** | The domain was registered; the name doesn't point to the **Target** yet |
| **Verifying** | The DNS is right; the certificate is being issued |
| **Certificate issued** | The certificate is out; the address still has to start answering |
| **Active** | The community opens on the custom domain, which becomes the **Primary** |

Each step shows when it happened (**Now**, **Next** or the date), and the screen **updates on its own**, without reloading. Once the DNS propagates, the certificate usually comes out within an hour.

- **Automatic checks**: every minute for the first 10 minutes, then every 5 minutes, until it's active.
- **Check now**: checks the DNS, the certificate and the address right away, without waiting for the next check. Use it after creating or fixing the record. With the DNS already right, it also asks for the certificate again (at most once every 10 minutes): *"Already created it with the proxy on? Turn it off and click Check now: Memberfy tries to issue the certificate again."*
- **A failed certificate**: within the 7 days, the failure isn't final. The automatic checks go on and, once the DNS is right, the certificate is requested again.
- **7 days to become active**: the screen shows the date (*"If the DNS isn't right by …, the request expires."*). After that, the request expires and the name is released.
- **Emails**: the owner gets an email when the domain becomes active, when the certificate fails and when the request expires.

While the domain isn't active, it doesn't open the community yet: members keep coming in through the Memberfy address.

## Errors and what to do

When a check finds a problem, the step shows **Stopped here** and the screen explains what to do, with your record's name and target.

| On screen | What it means | What to do |
|---|---|---|
| **Record not found** | The name doesn't exist in your DNS yet | Create the record with the **Type**, **Name** and **Target** from the screen. If you just created it, wait for propagation and use **Check now** |
| **The record points somewhere else** | The name exists but points to another destination | Change the record to the **Target** from the screen |
| **A record instead of CNAME** | The name is an `A` record (an IP) | Delete the `A` record and create the `CNAME` with the **Target** from the screen |
| **DNS proxy is on** | The DNS provider's proxy is on (for example, Cloudflare's orange cloud) | Turn the proxy off, leaving DNS only |
| **Root domain** | The address is a root domain, which doesn't accept a CNAME | Create an **ALIAS** or **ANAME** on `@` pointing to the **Target**, or use a subdomain (`community.…`) |
| **A CAA record blocks the certificate** | A CAA record on your domain doesn't authorize the certificate issuer | Add the record `CAA 0 issue "letsencrypt.org"` or remove the restriction |
| **Certificate limit** | The certificate issuing limit was reached for now | Nothing: Memberfy retries on its own |
| **The certificate wasn't issued** | The certificate couldn't be issued | Check that the record points to the **Target**, with no proxy, and use **Check now** |
| **Almost ready** | The certificate is out and the address starts answering in a few minutes | Nothing: wait a few minutes |
| **Check unavailable** | It couldn't be checked right now | Nothing: Memberfy retries on its own |
| **Request expired** | The DNS wasn't right within 7 days, and the name was released | Add the domain again once the record is ready |

A request that stopped on an error starts over with **Check now**, with another 7 days.

### When adding

The domain is refused right away, with the message on the field, when:

| Message | Why |
|---|---|
| *Enter a valid domain, like community.yourdomain.com (up to 64 characters).* | The format isn't a domain's |
| *Use a public domain: IP addresses, localhost and local network names do not work.* | An IP address, `localhost` or a local network name |
| *That address belongs to Memberfy. Use a domain of your own.* | A `memberfy.net` address or another platform domain |
| *That domain is already used (or requested) by another community.* | Another Memberfy community has or requested that domain |
| *That domain is already in use on another service. Remove it there or use another name.* | The domain is set up on another hosting service |
| *That domain was used by another community before. To bring it here, contact support.* | Another community used that domain before. Only the Memberfy team can move it to yours |
| *The community's plan does not include a custom domain.* | The plan doesn't include the feature |

## Change domains without downtime

1. With an **Active** domain, click **Change domain** and type the new one in **New domain**.
2. Click **Change domain**. The screen shows **Changing to**, with the record to create and the same steps.
3. Create the new domain's record in your DNS.

The old domain **stays active** until the new one becomes active; only then is it removed on its own. To give up halfway, **Cancel change**: the old one stays active, with no change. After the old one is removed, delete its record from your DNS.

## Remove

- **Remove** (with an active domain): confirm with **Remove domain**. The domain leaves the hosting and the community stays at the Memberfy address, which right away goes back to being the address for links and emails. Members, content and sessions aren't affected. If a change is under way, it's canceled too.
- **Cancel request** (with a domain still being set up): the request is undone and the name is released. You can add it again whenever you want.

A pending request **holds the name for up to 7 days**: no other community can request the same domain in that time.

## What changes for members

| | |
|---|---|
| **The address** | Both addresses open the community; no old link breaks |
| **Sign-in** | Same email and password. Each address keeps its own session: anyone entering the custom domain for the first time signs in once |
| **Emails** | With the domain active, the links in new emails point to it. The sender stays Memberfy's |
| **Password recovery** | Leads to the primary address |
| **Search engines** | Pages point to the custom domain as the official address, so they don't count as duplicate content |
| **The AI assistant** | Authorization opens at the primary address; a connector already set up keeps working |

## Examples

**Papo de Sysadmin.** The community is at `papodesysadmin.memberfy.net`. The owner adds `community.papodesysadmin.org`, creates the `CNAME community` with the screen's target in Registro.br and, an hour later, gets the email *"Your domain community.papodesysadmin.org is live"*. The next invitations already go out with the new address; anyone with the old link keeps coming in through it.

**Rebranding.** The community moves from `community.papodesysadmin.org` to `members.papodesysadmin.org`. The admin clicks **Change domain**, creates the new record and, while the certificate is issued, members stay on the old address. When the new one becomes **Active**, the old one goes away on its own.

## Frequently asked questions

**Do I lose the Memberfy address?**
No. It always works, and it's the fallback route if your domain's DNS fails.

**Do I need to buy a certificate?**
No. It's issued and renewed on its own.

**How long does it take?**
The time your DNS provider takes to propagate the record and then, usually, up to an hour for the certificate.

**I use Cloudflare. Do I need anything special?**
Create the record with the proxy off (gray cloud, "DNS only"). With the orange cloud, the certificate isn't issued and the screen warns you. If you already created it with the orange cloud, switch to gray and click **Check now**: Memberfy tries to issue the certificate again.

**Do emails start coming from my domain?**
No. The links point to your domain; the sender stays Memberfy's.

**Can I have more than one custom domain?**
One active at a time. During a change, the old and the new one coexist until the new one becomes active.

**I added a domain that isn't mine. Now what?**
Without the DNS pointed, it never becomes active: the request expires in 7 days and the name is released. To release it sooner, **Cancel request**.

**The domain used to belong to another Memberfy community. Can I use it?**
Yes, by asking Memberfy support, who checks and moves the domain to your community.

## Through the AI assistant

The assistant sees the address, adds or changes the domain, checks now and removes it, with the same roles. Only removing asks for confirmation. See [Tools › Custom domain](/mcp/ferramentas-comunidade#custom-domain).

## In the API

`GET`, `PUT` and `DELETE /api/communities/custom-domain` and `POST /api/communities/custom-domain/check`, for the owner and the admin of the `X-CommunityId` community. See [Creation order › Custom domain](/api/ordem-de-criacao#custom-domain).

## Related

- [General settings](/configuracoes/configuracoes-gerais)
- [Images and SEO](/configuracoes/imagens-e-seo)
- [How to get your community](/primeiros-passos/como-ter-sua-comunidade)
