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
:::
## Docker - Quick Run
2026-02-12 12:10:15 +00:00
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-29 09:48:10 +00:00
2. Start the server with initial admin user
2020-08-12 21:17:53 +02:00
2026-03-29 09:48:10 +00:00
```bash
docker run -d \
-p 6167:6167 \
-v continuwuity_db:/var/lib/continuwuity \
-e CONTINUWUITY_SERVER_NAME="matrix.example.com" \
-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 \
/sbin/conduwuit --execute "users create-user admin"
```
2020-08-04 22:06:13 +02:00
2026-03-29 09:48:10 +00:00
Replace `matrix.example.com` with your actual server name and `admin` with your preferred username.
2026-02-12 12:10:15 +00:00
2026-03-29 09:48:10 +00:00
3. Get your admin password
2026-02-12 12:10:15 +00:00
2026-03-29 09:48:10 +00:00
```bash
docker logs continuwuity 2>&1 | grep "Created user"
```
2026-02-12 12:10:15 +00:00
2026-03-29 09:48:10 +00:00
You'll see output like:
2026-02-12 12:10:15 +00:00
2026-03-29 09:48:10 +00:00
```
Created user with user_id: @admin:matrix.example.com and password: `[auto-generated-password]`
```
2026-02-12 12:10:15 +00:00
2026-03-29 09:48:10 +00:00
4. Configure your reverse proxy to forward HTTPS traffic to Continuwuity. See [Docker Compose](#docker-compose) for examples.
2026-02-12 12:10:15 +00:00
Once configured, log in with any Matrix client using `@admin:matrix.example.com`
and the generated password. You'll automatically be invited to the admin room
where you can manage your server.
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
### Creating Your First Admin User
2025-11-15 20:25:54 +00:00
2026-02-12 12:10:15 +00:00
Add the `--execute` command to create an admin user on first startup. In your
compose file, add under the `continuwuity` service:
2025-11-15 20:25:54 +00:00
2026-02-12 12:10:15 +00:00
```yaml
services:
continuwuity:
image: forgejo.ellis.link/continuwuation/continuwuity:latest
2026-03-11 14:59:58 +01:00
command: /sbin/conduwuit --execute "users create-user admin"
2026-02-12 12:10:15 +00:00
# ... rest of configuration
2025-11-15 20:25:54 +00:00
```
2026-02-12 12:10:15 +00:00
Then retrieve the auto-generated password:
2025-11-15 20:25:54 +00:00
2026-02-12 12:10:15 +00:00
```bash
docker compose logs continuwuity | grep "Created user"
```
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-02-12 12:10:15 +00:00
:::note DNS Performance
Docker's default DNS resolver can cause performance issues with Matrix
federation. If you experience slow federation or DNS timeouts, you may need to
use your host's DNS resolver instead. Add this volume mount to the
`continuwuity` service:
2025-11-15 20:25:54 +00:00
2026-02-12 12:10:15 +00:00
```yaml
volumes:
- /etc/resolv.conf:/etc/resolv.conf:ro
2025-11-15 20:25:54 +00:00
```
2026-02-12 12:10:15 +00:00
See [Troubleshooting - DNS Issues](../troubleshooting.mdx#potential-dns-issues-when-using-docker)
for more details and alternative solutions.
:::
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-29 09:48:10 +00:00
<summary>docker-compose.with-caddy.yml ([view raw](./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-29 09:48:10 +00:00
<summary>docker-compose.with-caddy-labels.yml ([view raw](./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-29 09:48:10 +00:00
<summary>docker-compose.for-traefik.yml ([view raw](./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-29 09:48:10 +00:00
<summary>docker-compose.with-traefik.yml ([view raw](./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-29 09:48:10 +00:00
<summary>docker-compose.override.yml ([view raw](./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-29 09:48:10 +00:00
<summary>docker-compose.yml ([view raw](./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-02-12 12:10:15 +00:00
1. Choose your compose file and rename it to `docker-compose.yml`
2. If using the override file, rename it to `docker-compose.override.yml` and
edit your values
3. Start the server:
2020-08-04 22:06:13 +02:00
2021-11-21 17:34:08 +00:00
```bash
2024-04-25 20:21:48 -04:00
docker compose up -d
2020-08-04 22:06:13 +02:00
```
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-03-17 03:59:59 +00:00
- To set up Audio/Video communication, see the [Calls](../calls.mdx) page.