2025-04-20 23:50:48 +01:00
# Continuwuity for Docker
2020-08-12 21:17:53 +02:00
2026-03-28 06:11:40 +00:00
## Preparation
### Choose an image
2020-08-12 21:17:53 +02:00
2026-03-17 03:33:31 +00:00
The following OCI images are available for Continuwuity:
2023-06-28 18:51:44 +02:00
2026-03-29 09:48:10 +00:00
| Image | Notes |
| ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| [https://forgejo.ellis.link/continuwuation/continuwuity:**latest**][latest] | Latest tagged release. (recommended) |
| [https://forgejo.ellis.link/continuwuation/continuwuity:**main**][main] | Latest `main` branch commit. |
| [https://forgejo.ellis.link/continuwuation/continuwuity:**latest-maxperf**][latest-maxperf] | Latest tagged release, [performance optimised version](./generic.mdx#performance-optimised-builds). |
| [https://forgejo.ellis.link/continuwuation/continuwuity:**main-maxperf**][main-maxperf] | Latest `main` branch commit, [performance optimised version](./generic.mdx#performance-optimised-builds). |
2023-06-28 18:51:44 +02:00
2026-03-17 03:33:31 +00:00
[latest]: https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/latest
[main]: https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/main
[latest-maxperf]: https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/latest-maxperf
[main-maxperf]: https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/main-maxperf
2023-07-21 20:33:32 +02:00
2026-03-17 03:33:31 +00:00
If you want a specific version or commit hash, you can browse for them [here][oci-all-versions].
2024-12-15 22:46:56 -05:00
2026-03-17 03:33:31 +00:00
Images are also mirrored to these locations automatically, on a schedule:
2024-07-03 03:49:33 -04:00
2026-03-17 03:33:31 +00:00
- `ghcr.io/continuwuity/continuwuity` ([Github Registry][ghcr-io])
- `docker.io/jadedblueeyes/continuwuity` ([Docker Hub][docker-hub])
- `registry.gitlab.com/continuwuity/continuwuity` ([Gitlab Registry][gitlab-registry])
- `git.nexy7574.co.uk/mirrored/continuwuity` ([Nexy's forge][nexy-forge]. Releases only, no `main` tags)
2026-01-06 00:44:26 +00:00
2026-03-17 03:33:31 +00:00
[oci-all-versions]: https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/versions
[ghcr-io]: https://github.com/continuwuity/continuwuity/pkgs/container/continuwuity/versions?filters%5Bversion_type%5D=tagged
[docker-hub]: https://hub.docker.com/r/jadedblueeyes/continuwuity/
[gitlab-registry]: https://gitlab.com/continuwuity/continuwuity/container_registry/8871720
[nexy-forge]: https://git.nexy7574.co.uk/mirrored/-/packages/container/continuwuity/versions
2026-01-06 00:44:26 +00:00
2026-03-17 03:59:59 +00:00
### Prerequisites
2026-02-12 12:10:15 +00:00
Continuwuity requires HTTPS for Matrix federation. You'll need:
2026-03-28 06:11:40 +00:00
- A domain name pointing to your server's IP address - we will be using `example.com` in this guide.
- A reverse proxy with SSL/TLS certificates (Traefik, Caddy, nginx, etc.) - see [Docker Compose](#docker-compose) for complete examples.
2026-03-29 09:48:10 +00:00
- Port `:443` (for Client-Server traffic) and `:8448` (for federation traffic) opened on your server's firewall.
2026-03-28 06:11:40 +00:00
:::tip Alternative setups
2026-03-29 09:48:10 +00:00
For setups with `.well-known` delegation, different ports, and/or split-domain deployments, consult the [Delegation/Split-domain](../advanced/delegation) page.
2026-03-28 06:11:40 +00:00
:::
2026-03-30 08:41:41 +00:00
2026-03-28 06:11:40 +00:00
## Docker - Quick Run
2026-02-12 12:10:15 +00:00
2026-03-30 08:41:41 +00:00
:::note For testing only
The instructions below are only meant for a quick demo of Continuwuity.
For production deployment, we recommend using [Docker Compose](#docker-compose)
:::
2026-03-28 06:11:40 +00:00
Get a working Continuwuity server with an admin user in four steps:
2026-02-12 12:10:15 +00:00
2026-03-29 09:48:10 +00:00
1. Pull the image
2026-02-12 12:10:15 +00:00
2026-03-29 09:48:10 +00:00
```bash
docker pull forgejo.ellis.link/continuwuation/continuwuity:latest
```
2026-03-28 06:11:40 +00:00
2026-03-30 08:41:41 +00:00
2. Start the server for the first time. Replace `example.com` with your actual server name.
2020-08-12 21:17:53 +02:00
2026-03-29 09:48:10 +00:00
```bash
docker run -d \
2026-03-30 08:41:41 +00:00
-p 8008:8008 \
2026-03-29 09:48:10 +00:00
-v continuwuity_db:/var/lib/continuwuity \
2026-03-30 08:41:41 +00:00
-e CONTINUWUITY_SERVER_NAME="example.com" \
2026-03-29 09:48:10 +00:00
-e CONTINUWUITY_DATABASE_PATH="/var/lib/continuwuity" \
-e CONTINUWUITY_ADDRESS="0.0.0.0" \
-e CONTINUWUITY_ALLOW_REGISTRATION="false" \
--name continuwuity \
forgejo.ellis.link/continuwuation/continuwuity:latest \
2026-03-30 08:41:41 +00:00
/sbin/conduwuit
2026-03-29 09:48:10 +00:00
```
2020-08-04 22:06:13 +02:00
2026-03-30 08:41:41 +00:00
3. Fetch the one-time initial registration token
2026-02-12 12:10:15 +00:00
2026-03-29 09:48:10 +00:00
```bash
2026-03-30 08:41:41 +00:00
docker logs continuwuity 2>&1
2026-03-29 09:48:10 +00:00
```
2026-02-12 12:10:15 +00:00
2026-03-30 08:41:41 +00:00
You'll see output as below.
2026-02-12 12:10:15 +00:00
2026-03-29 09:48:10 +00:00
```
2026-03-30 08:41:41 +00:00
In order to use your new homeserver, you need to create its
first user account.
Open your Matrix client of choice and register an account
on example.com using registration token x5keUZ811RqvLsNa .
Pick your own username and password!
2026-03-29 09:48:10 +00:00
```
2026-02-12 12:10:15 +00:00
2026-03-30 08:41:41 +00:00
4. Configure your reverse proxy to forward HTTPS traffic to Continuwuity at port 8008. See [Docker Compose](#docker-compose) for examples.
2026-02-12 12:10:15 +00:00
2026-03-30 08:41:41 +00:00
Once configured, log in to your server with any Matrix client, and register for an account with the registration token from step 3. You'll automatically be invited to the admin room where you can [manage your server](../reference/admin).
2020-08-04 22:06:13 +02:00
2026-03-17 03:59:59 +00:00
## Docker Compose
2020-08-12 21:17:53 +02:00
2026-03-29 09:48:10 +00:00
Docker Compose is the recommended deployment method for Continuwuity containers. The following environment variables will be set:
- `CONTINUWUITY_SERVER_NAME` - Your Matrix server's domain name.
- `CONTINUWUITY_DATABASE_PATH` - Where to store your database. This must match the docker volume mount.
- `CONTINUWUITY_ADDRESS` - Bind address (use `0.0.0.0` to listen on all interfaces).
2022-02-19 17:06:06 +01:00
2026-03-29 09:48:10 +00:00
Alternatively, you can specify a path to mount the configuration file using the `CONTINUWUITY_CONFIG` environment variable.
See the [reference configuration](../reference/config) page for all config options, and the [Configuration page](../configuration#environment-variables) on how to convert them into Environment Variables.
2025-11-15 20:25:54 +00:00
2026-03-17 03:59:59 +00:00
### Choose Your Reverse Proxy
2025-11-15 20:25:54 +00:00
2026-03-29 09:48:10 +00:00
These examples include reverse proxy configurations for Matrix federation, which will route your Matrix domain (and optionally .well-known paths) to Continuwuity.
2025-11-15 20:25:54 +00:00
2026-03-30 09:14:08 +00:00
:::note Docker DNS Performance
2026-04-01 10:02:35 +00:00
Docker's default DNS resolver are [known to cause issues](../troubleshooting#dns-issues) for Matrix federation such as very slow federation or DNS timeouts. As a workaround, we will mount a custom `/etc/resolv.conf` config file into the Continuwuity service, in order to bypass Docker and use a more performant resolver.
2026-03-30 09:14:08 +00:00
```yaml title='docker-compose.yml'
services:
homeserver:
# ...
configs:
- source: continuwuity-resolv.conf
target: /etc/resolv.conf
configs:
continuwuity-resolv.conf:
content: |
nameserver 1.0.0.1
nameserver 1.1.1.1
2025-11-15 20:25:54 +00:00
```
2026-04-01 10:02:35 +00:00
It is strongly recommended to consult the [**DNS tuning guide**](../advanced/dns) for full solutions to this issue.
2026-02-12 12:10:15 +00:00
:::
2025-11-15 20:25:54 +00:00
2026-03-29 09:48:10 +00:00
#### Caddy (using Caddyfile)
2025-11-15 20:25:54 +00:00
<details>
2026-03-31 20:43:37 +00:00
<summary>docker-compose.with-caddy.yml ([view raw](/deploying/docker-compose.with-caddy.yml))</summary>
2025-11-15 20:25:54 +00:00
2026-03-29 09:48:10 +00:00
```yaml file="../public/deploying/docker-compose.with-caddy.yml"
2025-11-15 20:25:54 +00:00
```
</details>
2026-03-29 09:48:10 +00:00
#### Caddy (using labels)
2025-11-15 20:25:54 +00:00
<details>
2026-03-31 20:43:37 +00:00
<summary>docker-compose.with-caddy-labels.yml ([view raw](/deploying/docker-compose.with-caddy-labels.yml))</summary>
2025-11-15 20:25:54 +00:00
2026-03-29 09:48:10 +00:00
```yaml file="../public/deploying/docker-compose.with-caddy-labels.yml"
2025-11-15 20:25:54 +00:00
```
</details>
2022-02-19 17:06:06 +01:00
2026-03-29 09:48:10 +00:00
#### Traefik (for existing setup)
2022-02-19 17:06:06 +01:00
2026-02-12 12:10:15 +00:00
<details>
2026-03-31 20:43:37 +00:00
<summary>docker-compose.for-traefik.yml ([view raw](/deploying/docker-compose.for-traefik.yml))</summary>
2024-07-08 18:31:08 +02:00
2026-03-29 09:48:10 +00:00
```yaml file="../public/deploying/docker-compose.for-traefik.yml"
2024-07-08 18:31:08 +02:00
2026-02-12 12:10:15 +00:00
```
2020-08-04 22:06:13 +02:00
2026-03-28 17:26:01 +00:00
</details>
2026-03-29 09:48:10 +00:00
#### Traefik included
2026-03-28 17:26:01 +00:00
<details>
2026-03-31 20:43:37 +00:00
<summary>docker-compose.with-traefik.yml ([view raw](/deploying/docker-compose.with-traefik.yml))</summary>
2026-03-28 17:26:01 +00:00
2026-03-29 09:48:10 +00:00
```yaml file="../public/deploying/docker-compose.with-traefik.yml"
2020-08-12 21:17:53 +02:00
2026-02-12 12:10:15 +00:00
```
2025-04-21 00:19:08 +01:00
2026-02-12 12:10:15 +00:00
</details>
2025-04-21 00:19:08 +01:00
2026-03-29 09:48:10 +00:00
#### Traefik (as override file)
2025-11-15 20:25:54 +00:00
<details>
2026-03-31 20:43:37 +00:00
<summary>docker-compose.override.yml ([view raw](/deploying/docker-compose.override.yml))</summary>
2025-11-15 20:25:54 +00:00
2026-03-29 09:48:10 +00:00
```yaml file="../public/deploying/docker-compose.override.yml"
2025-11-15 20:25:54 +00:00
```
</details>
2025-04-21 00:19:08 +01:00
2026-03-29 09:48:10 +00:00
#### For other reverse proxies
2025-04-21 00:19:08 +01:00
2026-02-12 12:10:15 +00:00
<details>
2026-03-31 20:43:37 +00:00
<summary>docker-compose.yml ([view raw](/deploying/docker-compose.yml))</summary>
2025-04-21 00:19:08 +01:00
2026-03-29 09:48:10 +00:00
```yaml file="../public/deploying/docker-compose.yml"
2025-09-13 11:45:56 +01:00
2025-04-21 00:19:08 +01:00
```
2026-02-12 12:10:15 +00:00
</details>
2020-08-12 21:17:53 +02:00
2026-03-29 09:48:10 +00:00
You will then need to point your reverse proxy towards Continuwuity at `127.0.0.1:8008`
2026-03-17 03:59:59 +00:00
### Starting Your Server
2020-08-12 21:17:53 +02:00
2026-03-30 09:14:08 +00:00
1. Choose your compose file from the above, and rename it to `docker-compose.yml`. Edit values as you see fit.
2026-02-12 12:10:15 +00:00
2. If using the override file, rename it to `docker-compose.override.yml` and
2026-03-30 09:14:08 +00:00
edit your values.
2026-02-12 12:10:15 +00:00
3. Start the server:
2020-08-04 22:06:13 +02:00
2026-03-30 08:41:41 +00:00
```bash
docker compose up -d
```
4. Check your server logs for a registration token:
```bash
docker-compose logs continuwuity 2>&1
```
You'll see output as below.
```
In order to use your new homeserver, you need to create its
first user account.
Open your Matrix client of choice and register an account
on example.com using registration token x5keUZ811RqvLsNa .
Pick your own username and password!
```
5. Log in to your server with any Matrix client, and register for an account with the registration token from step 4. You'll automatically be invited to the admin room where you can [manage your server](../reference/admin).
2021-08-17 14:44:53 +02:00
2026-02-12 12:10:15 +00:00
See the [generic deployment guide](generic.mdx) for more deployment options.
2024-08-24 05:13:43 +02:00
2026-03-17 03:59:59 +00:00
## (Optional) Building Custom Images
2021-08-17 14:44:53 +02:00
2026-02-12 12:10:15 +00:00
For information on building your own Continuwuity Docker images, see the
[Building Docker Images](../development/index.mdx#building-docker-images)
section in the development documentation.
2025-07-14 20:24:29 +01:00
2026-03-17 03:59:59 +00:00
## Next steps
2023-07-04 18:41:05 +02:00
2026-04-01 10:02:35 +00:00
- For smooth federation, set up a caching resolver according to the [DNS tuning guide](../advanced/dns)
- To set up Audio/Video communication, see the [Calls](../calls.mdx) page.