# Family Chat

Family Chat is a group chat that belongs to your family. It runs on its own private server, only people you invite can join, and your conversations are end-to-end encrypted, so the messages and photos in them can only be read on your family's own devices. Not by us, and not by anyone else.

It speaks [Matrix](<https://matrix.org>), an open chat standard, which means you are not tied to one company's app. Your family can use whichever free Matrix app suits them: FluffyChat on a phone, Element on a laptop, or Element in the browser on a school Chromebook.

Family Chat runs [tuwunel](<https://github.com/matrix-construct/tuwunel>), an open source Matrix server, unmodified. We are not affiliated with or endorsed by the Matrix.org Foundation or the tuwunel project.

**When does Family Chat make sense?**

- **Your kids are too young for Discord or WhatsApp**, but they want to chat with you, their grandparents and their cousins.
- **You want a family chat nobody else can read.** Every room is encrypted from the moment it is created.
- **Your family uses a mix of devices**: iPhones, Android phones, tablets and Chromebooks.
- **You don't want strangers.** There is no sign-up page. Nobody joins unless you give them a one-time invite code.

[Get a 7-day trial of Family Chat (runs Matrix)! 🪄](<https://store.elfhosted.com/product/matrix/>)

## How do I access Family Chat?

Family Chat is available:

- From your dashboard: [https://your-username.elfhosted.com](<https://your-username.elfhosted.com>)
- Directly: [https://your-username-matrix.elfhosted.com/setup/](<https://your-username-matrix.elfhosted.com/setup/>)

> [!NOTE]
>
> **Signed-in users see their own URLs**
>
> The addresses above show the general pattern. [Sign in](<https://docs-internal.elfhosted.com/app/matrix/>) and these become your personal, clickable links.

## How do I use it?

### Set up your own account first

Open **Family Chat** from your ElfHosted dashboard. It takes you to your family's setup page, which only you can see:

The first account created on your server becomes the family admin, so create yours before anyone else's:

1. Install a Matrix app. **FluffyChat** is the friendliest on phones and tablets. **Element** works everywhere, including in a browser at [app.element.io](<https://app.element.io>).
2. Choose **Create an account** (not Sign in), and enter your server address from the setup page.
3. Pick a username and password. The app then asks for a **registration token**: copy it from the setup page.

Keep that token to yourself. It is only for your own account.

> [!TIP]
>
> **Save your recovery key**
>
> Your app offers to set up a recovery key (Element calls it Secure Backup). Do it, and keep the key somewhere safe. Because your chats are end-to-end encrypted, the key is what lets you read old messages on a new phone. We can't recover it for you, which is the point.

### Invite your family

Once you're signed in, you'll find an admin room. For each family member, send this message there:

```
!admin token issue --max-uses 1 --max-age 7d
```

You get back a one-time code that works once and expires after 7 days. Give each person their own code along with your server address, and they create their account the same way you did.

### Resetting a password

Family Chat accounts have no email address attached, so there's no "forgot password" link. Instead, the family admin resets it. In the admin room, send:

```
!admin users reset-password mia
```

Use the person's username in place of `mia`. The reply contains a new password to pass on. To choose it yourself, add it at the end: `!admin users reset-password mia NewPasswordHere`.

A few things to know:

- Anyone still signed in stays signed in. Only the password for new sign-ins changes.
- A new password doesn't unlock old encrypted messages. On a new device, they still need their recovery key, or to verify the new sign-in from a device that's still signed in.
- If you know your password and just want to change it, do it yourself in your app's settings (Element and FluffyChat both have it under your account settings).

> [!TIP]
>
> **Make a second admin**
>
> If the family admin forgets their own password, nobody is left who can reset it. Avoid that by making a trusted adult a second admin. Send this in the admin room, using their username:
>
> ```
> !admin users make-user-admin dad
> ```
>
> Then either of you can reset the other's password. If you're already locked out with no second admin, ask us in [Discord](<https://discord.elfhosted.com>) and a human will help.

### Chromebooks

The easiest option is Element in the browser at [app.element.io](<https://app.element.io>). In Chrome, use **Install app** from the address bar and it opens in its own window with notifications, like any other app. If the Chromebook allows the Play Store, the FluffyChat or Element Android apps work too.

School-managed Chromebooks sometimes block websites: if Element won't load, the school needs to allow both `app.element.io` and your Family Chat server address.

### Your own domain

Family Chat can use a domain you own, so everyone's address looks like `@mia:chat.yourfamily.com` instead of the ElfHosted one. Add the [custom domain addon](<https://store.elfhosted.com/product/matrix-custom-domain-addon/>) and point a CNAME record at your ElfHosted Family Chat address.

> [!WARNING]
>
> **Choose your domain before your family creates accounts**
>
> A Matrix server's name is part of every account on it and can never change. Switching to a custom domain later starts a fresh, empty Family Chat on the new name. Your old one is kept, and switching back brings it back, but accounts and chats don't move between them.

### Chatting with other families (optional)

Family Chat is closed by default: it doesn't talk to any other Matrix server. If you'd like to chat with people on specific servers you trust, such as the grandparents' own Family Chat or a friend's family, list those servers and Family Chat will talk to them and nobody else.

Set the list with [ElfBot](<https://docs-internal.elfhosted.com/app/elfbot/>) (or ask Sam), and Family Chat restarts to use it:

Quick-paste into Matrix's environment variables using ElfBot

```
FAMILY_CHAT_ALLOWED_SERVERS=grandma-matrix.elfhosted.com,chat.cousins.net
```

Use plain server names, separated by commas, up to 20 of them. Anything else, such as wildcards, keeps Family Chat closed. Both sides need to allow each other, so the other family adds your server to their list too. Remove the setting and Family Chat goes back to being closed.

### What we can and can't see

Messages and files in encrypted rooms are stored only in encrypted form. We can't read them. Like any chat server, Family Chat still knows who is in which room and when messages were sent, because it has to deliver them.

## Family Chat also works with

- [x] [Immich](</app/immich/>)
- [x] [Vaultwarden](</app/vaultwarden/>)

## How do I get support for Family Chat?

1. For general use of Family Chat, refer to the [official site](<https://github.com/matrix-construct/tuwunel>) or to one of the links in the resources section below.
2. For specific support re your ElfHosted configuration / account, see the [ElfHosted support options](</get-help/>)!

## Family Chat resources

- [Family Chat (*official site*)](<https://github.com/matrix-construct/tuwunel>)
- [Family Chat Website](<https://tuwunel.chat>)
- [Family Chat Matrix](<https://matrix.org>)
