Fix up the docs, replace a lot of conduwuit references

This commit is contained in:
nexy7574 2025-04-20 23:50:48 +01:00
parent 22e7617362
commit ff93cfdc64
No known key found for this signature in database
GPG key ID: 0FA334385D0B689F
18 changed files with 133 additions and 194 deletions

View file

@ -3,8 +3,8 @@
## Getting help ## Getting help
If you run into any problems while setting up an Appservice: ask us in If you run into any problems while setting up an Appservice: ask us in
[#conduwuit:puppygock.gay](https://matrix.to/#/#conduwuit:puppygock.gay) or [#continuwuity:continuwuity.org](https://matrix.to/#/#continuwuity:continuwuity.org) or
[open an issue on GitHub](https://github.com/girlbossceo/conduwuit/issues/new). [open an issue on Forgejo](https://forgejo.ellis.link/continuwuation/continuwuity/issues/new).
## Set up the appservice - general instructions ## Set up the appservice - general instructions
@ -14,7 +14,7 @@ later starting it.
At some point the appservice guide should ask you to add a registration yaml At some point the appservice guide should ask you to add a registration yaml
file to the homeserver. In Synapse you would do this by adding the path to the file to the homeserver. In Synapse you would do this by adding the path to the
homeserver.yaml, but in conduwuit you can do this from within Matrix: homeserver.yaml, but in Continuwuity you can do this from within Matrix:
First, go into the `#admins` room of your homeserver. The first person that First, go into the `#admins` room of your homeserver. The first person that
registered on the homeserver automatically joins it. Then send a message into registered on the homeserver automatically joins it. Then send a message into
@ -37,9 +37,9 @@ You can confirm it worked by sending a message like this:
The server bot should answer with `Appservices (1): your-bridge` The server bot should answer with `Appservices (1): your-bridge`
Then you are done. conduwuit will send messages to the appservices and the Then you are done. Continuwuity will send messages to the appservices and the
appservice can send requests to the homeserver. You don't need to restart appservice can send requests to the homeserver. You don't need to restart
conduwuit, but if it doesn't work, restarting while the appservice is running Continuwuity, but if it doesn't work, restarting while the appservice is running
could help. could help.
## Appservice-specific instructions ## Appservice-specific instructions

View file

@ -1,17 +1,17 @@
# conduwuit Community Code of Conduct # Continuwuity Community Code of Conduct
Welcome to the conduwuit community! Were excited to have you here. conduwuit is Welcome to the Continuwuity community! Were excited to have you here. Continuwuity is
a hard-fork of the Conduit homeserver, aimed at making Matrix more accessible a hard-fork of the Conduit homeserver, aimed at making Matrix more accessible
and inclusive for everyone. and inclusive for everyone.
This space is dedicated to fostering a positive, supportive, and inclusive This space is dedicated to fostering a positive, supportive, and inclusive
environment for everyone. This Code of Conduct applies to all conduwuit spaces, environment for everyone. This Code of Conduct applies to all Continuwuity spaces,
including any further community rooms that reference this CoC. Here are our including any further community rooms that reference this CoC. Here are our
guidelines to help maintain the welcoming atmosphere that sets conduwuit apart. guidelines to help maintain the welcoming atmosphere that sets Continuwuity apart.
For the general foundational rules, please refer to the [Contributor's For the general foundational rules, please refer to the [Contributor's
Covenant](https://github.com/girlbossceo/conduwuit/blob/main/CODE_OF_CONDUCT.md). Covenant](https://forgejo.ellis.link/continuwuation/continuwuity/src/branch/main/CODE_OF_CONDUCT.md).
Below are additional guidelines specific to the conduwuit community. Below are additional guidelines specific to the Continuwuity community.
## Our Values and Guidelines ## Our Values and Guidelines
@ -48,25 +48,25 @@ members.
## Matrix Community ## Matrix Community
This Code of Conduct applies to the entire [conduwuit Matrix This Code of Conduct applies to the entire [Continuwuity Matrix
Space](https://matrix.to/#/#conduwuit-space:puppygock.gay) and its rooms, Space](https://matrix.to/#/#space:continuwuity.org) and its rooms,
including: including:
### [#conduwuit:puppygock.gay](https://matrix.to/#/#conduwuit:puppygock.gay) ### [#continuwuity:continuwuity.org](https://matrix.to/#/#continuwuity:continuwuity.org)
This room is for support and discussions about conduwuit. Ask questions, share This room is for support and discussions about Continuwuity. Ask questions, share
insights, and help each other out. insights, and help each other out.
### [#conduwuit-offtopic:girlboss.ceo](https://matrix.to/#/#conduwuit-offtopic:girlboss.ceo) ### [#continuwuity-offtopic:continuwuity.org](https://matrix.to/#/#continuwuity-offtopic:continuwuity.org)
For off-topic community conversations about any subject. While this room allows For off-topic community conversations about any subject. While this room allows
for a wide range of topics, the same CoC applies. Keep discussions respectful for a wide range of topics, the same CoC applies. Keep discussions respectful
and inclusive, and avoid divisive subjects like country/world politics. General and inclusive, and avoid divisive subjects like country/world politics. General
topics, such as world events, are welcome as long as they follow the CoC. topics, such as world events, are welcome as long as they follow the CoC.
### [#conduwuit-dev:puppygock.gay](https://matrix.to/#/#conduwuit-dev:puppygock.gay) ### [#dev:continuwuity.org](https://matrix.to/#/#dev:continuwuity.org)
This room is dedicated to discussing active development of conduwuit. Posting This room is dedicated to discussing active development of Continuwuity. Posting
requires an elevated power level, which can be requested in one of the other requires an elevated power level, which can be requested in one of the other
rooms. Use this space to collaborate and innovate. rooms. Use this space to collaborate and innovate.
@ -90,4 +90,4 @@ comfortable doing that, then please send a DM to one of the moderators directly.
Together, lets build a community where everyone feels valued and respected. Together, lets build a community where everyone feels valued and respected.
— The conduwuit Moderation Team — The Continuwuity Moderation Team

View file

@ -1,10 +1,10 @@
# Configuration # Configuration
This chapter describes various ways to configure conduwuit. This chapter describes various ways to configure Continuwuity.
## Basics ## Basics
conduwuit uses a config file for the majority of the settings, but also supports Continuwuity uses a config file for the majority of the settings, but also supports
setting individual config options via commandline. setting individual config options via commandline.
Please refer to the [example config Please refer to the [example config
@ -12,13 +12,13 @@ file](./configuration/examples.md#example-configuration) for all of those
settings. settings.
The config file to use can be specified on the commandline when running The config file to use can be specified on the commandline when running
conduwuit by specifying the `-c`, `--config` flag. Alternatively, you can use Continuwuity by specifying the `-c`, `--config` flag. Alternatively, you can use
the environment variable `CONDUWUIT_CONFIG` to specify the config file to used. the environment variable `CONDUWUIT_CONFIG` to specify the config file to used.
Conduit's environment variables are supported for backwards compatibility. Conduit's environment variables are supported for backwards compatibility.
## Option commandline flag ## Option commandline flag
conduwuit supports setting individual config options in TOML format from the Continuwuity supports setting individual config options in TOML format from the
`-O` / `--option` flag. For example, you can set your server name via `-O `-O` / `--option` flag. For example, you can set your server name via `-O
server_name=\"example.com\"`. server_name=\"example.com\"`.
@ -33,7 +33,7 @@ string. This does not apply to options that take booleans or numbers:
## Execute commandline flag ## Execute commandline flag
conduwuit supports running admin commands on startup using the commandline Continuwuity supports running admin commands on startup using the commandline
argument `--execute`. The most notable use for this is to create an admin user argument `--execute`. The most notable use for this is to create an admin user
on first startup. on first startup.

View file

@ -1,3 +1,3 @@
# Deploying # Deploying
This chapter describes various ways to deploy conduwuit. This chapter describes various ways to deploy Continuwuity.

View file

@ -1,15 +1,3 @@
# conduwuit for Arch Linux # Continuwuity for Arch Linux
Currently conduwuit is only on the Arch User Repository (AUR). Continuwuity does not have any Arch Linux packages at this time.
The conduwuit AUR packages are community maintained and are not maintained by
conduwuit development team, but the AUR package maintainers are in the Matrix
room. Please attempt to verify your AUR package's PKGBUILD file looks fine
before asking for support.
- [conduwuit](https://aur.archlinux.org/packages/conduwuit) - latest tagged
conduwuit
- [conduwuit-git](https://aur.archlinux.org/packages/conduwuit-git) - latest git
conduwuit from `main` branch
- [conduwuit-bin](https://aur.archlinux.org/packages/conduwuit-bin) - latest
tagged conduwuit static binary

View file

@ -4,7 +4,7 @@ services:
homeserver: homeserver:
### If you already built the conduduwit image with 'docker build' or want to use the Docker Hub image, ### If you already built the conduduwit image with 'docker build' or want to use the Docker Hub image,
### then you are ready to go. ### then you are ready to go.
image: girlbossceo/conduwuit:latest image: forgejo.ellis.link/continuwuation/continuwuity:latest
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- db:/var/lib/conduwuit - db:/var/lib/conduwuit

View file

@ -22,7 +22,7 @@ services:
homeserver: homeserver:
### If you already built the conduwuit image with 'docker build' or want to use a registry image, ### If you already built the conduwuit image with 'docker build' or want to use a registry image,
### then you are ready to go. ### then you are ready to go.
image: girlbossceo/conduwuit:latest image: forgejo.ellis.link/continuwuation/continuwuity:latest
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- db:/var/lib/conduwuit - db:/var/lib/conduwuit

View file

@ -4,7 +4,7 @@ services:
homeserver: homeserver:
### If you already built the conduwuit image with 'docker build' or want to use the Docker Hub image, ### If you already built the conduwuit image with 'docker build' or want to use the Docker Hub image,
### then you are ready to go. ### then you are ready to go.
image: girlbossceo/conduwuit:latest image: forgejo.ellis.link/continuwuation/continuwuity:latest
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- db:/var/lib/conduwuit - db:/var/lib/conduwuit

View file

@ -4,7 +4,7 @@ services:
homeserver: homeserver:
### If you already built the conduwuit image with 'docker build' or want to use a registry image, ### If you already built the conduwuit image with 'docker build' or want to use a registry image,
### then you are ready to go. ### then you are ready to go.
image: girlbossceo/conduwuit:latest image: forgejo.ellis.link/continuwuation/continuwuity:latest
restart: unless-stopped restart: unless-stopped
ports: ports:
- 8448:6167 - 8448:6167

View file

@ -1,31 +1,20 @@
# conduwuit for Docker # Continuwuity for Docker
## Docker ## Docker
To run conduwuit with Docker you can either build the image yourself or pull it To run Continuwuity with Docker you can either build the image yourself or pull it
from a registry. from a registry.
### Use a registry ### Use a registry
OCI images for conduwuit are available in the registries listed below. OCI images for Continuwuity are available in the registries listed below.
| Registry | Image | Size | Notes | | Registry | Image | Notes |
| --------------- | --------------------------------------------------------------- | ----------------------------- | ---------------------- | | --------------- | --------------------------------------------------------------- | -----------------------|
| GitHub Registry | [ghcr.io/girlbossceo/conduwuit:latest][gh] | ![Image Size][shield-latest] | Stable latest tagged image. | | Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:latest][fj] | Latest tagged image. |
| GitLab Registry | [registry.gitlab.com/conduwuit/conduwuit:latest][gl] | ![Image Size][shield-latest] | Stable latest tagged image. | | Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:main][fj] | Main branch image. |
| Docker Hub | [docker.io/girlbossceo/conduwuit:latest][dh] | ![Image Size][shield-latest] | Stable latest tagged image. |
| GitHub Registry | [ghcr.io/girlbossceo/conduwuit:main][gh] | ![Image Size][shield-main] | Stable main branch. |
| GitLab Registry | [registry.gitlab.com/conduwuit/conduwuit:main][gl] | ![Image Size][shield-main] | Stable main branch. |
| Docker Hub | [docker.io/girlbossceo/conduwuit:main][dh] | ![Image Size][shield-main] | Stable main branch. |
[dh]: https://hub.docker.com/r/girlbossceo/conduwuit [fj]: https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity
[gh]: https://github.com/girlbossceo/conduwuit/pkgs/container/conduwuit
[gl]: https://gitlab.com/conduwuit/conduwuit/container_registry/6369729
[shield-latest]: https://img.shields.io/docker/image-size/girlbossceo/conduwuit/latest
[shield-main]: https://img.shields.io/docker/image-size/girlbossceo/conduwuit/main
OCI image `.tar.gz` files are also hosted directly at when uploaded by CI with a
commit hash/revision or a tagged release: <https://pup.systems/~strawberry/conduwuit/>
Use Use
@ -52,11 +41,11 @@ or you can use [docker compose](#docker-compose).
The `-d` flag lets the container run in detached mode. You may supply an The `-d` flag lets the container run in detached mode. You may supply an
optional `conduwuit.toml` config file, the example config can be found optional `conduwuit.toml` config file, the example config can be found
[here](../configuration/examples.md). You can pass in different env vars to [here](../configuration/examples.md). You can pass in different env vars to
change config values on the fly. You can even configure conduwuit completely by change config values on the fly. You can even configure Continuwuity completely by
using env vars. For an overview of possible values, please take a look at the using env vars. For an overview of possible values, please take a look at the
[`docker-compose.yml`](docker-compose.yml) file. [`docker-compose.yml`](docker-compose.yml) file.
If you just want to test conduwuit for a short time, you can use the `--rm` If you just want to test Continuwuity for a short time, you can use the `--rm`
flag, which will clean up everything related to your container after you stop flag, which will clean up everything related to your container after you stop
it. it.
@ -91,11 +80,11 @@ docker network create caddy
After that, you can rename it so it matches `docker-compose.yml` and spin up the After that, you can rename it so it matches `docker-compose.yml` and spin up the
containers! containers!
Additional info about deploying conduwuit can be found [here](generic.md). Additional info about deploying Continuwuity can be found [here](generic.md).
### Build ### Build
Official conduwuit images are built using Nix's Official Continuwuity images are built using Nix's
[`buildLayeredImage`][nix-buildlayeredimage]. This ensures all OCI images are [`buildLayeredImage`][nix-buildlayeredimage]. This ensures all OCI images are
repeatable and reproducible by anyone, keeps the images lightweight, and can be repeatable and reproducible by anyone, keeps the images lightweight, and can be
built offline. built offline.
@ -104,13 +93,11 @@ This also ensures portability of our images because `buildLayeredImage` builds
OCI images, not Docker images, and works with other container software. OCI images, not Docker images, and works with other container software.
The OCI images are OS-less with only a very minimal environment of the `tini` The OCI images are OS-less with only a very minimal environment of the `tini`
init system, CA certificates, and the conduwuit binary. This does mean there is init system, CA certificates, and the Continuwuity binary. This does mean there is
not a shell, but in theory you can get a shell by adding the necessary layers not a shell, but in theory you can get a shell by adding the necessary layers
to the layered image. However it's very unlikely you will need a shell for any to the layered image. However it's very unlikely you will need a shell for any
real troubleshooting. real troubleshooting.
The flake file for the OCI image definition is at [`nix/pkgs/oci-image/default.nix`][oci-image-def].
To build an OCI image using Nix, the following outputs can be built: To build an OCI image using Nix, the following outputs can be built:
- `nix build -L .#oci-image` (default features, x86_64 glibc) - `nix build -L .#oci-image` (default features, x86_64 glibc)
- `nix build -L .#oci-image-x86_64-linux-musl` (default features, x86_64 musl) - `nix build -L .#oci-image-x86_64-linux-musl` (default features, x86_64 musl)
@ -138,10 +125,10 @@ web. With the two provided files,
[`docker-compose.for-traefik.yml`](docker-compose.for-traefik.yml) (or [`docker-compose.for-traefik.yml`](docker-compose.for-traefik.yml) (or
[`docker-compose.with-traefik.yml`](docker-compose.with-traefik.yml)) and [`docker-compose.with-traefik.yml`](docker-compose.with-traefik.yml)) and
[`docker-compose.override.yml`](docker-compose.override.yml), it is equally easy [`docker-compose.override.yml`](docker-compose.override.yml), it is equally easy
to deploy and use conduwuit, with a little caveat. If you already took a look at to deploy and use Continuwuity, with a little caveat. If you already took a look at
the files, then you should have seen the `well-known` service, and that is the the files, then you should have seen the `well-known` service, and that is the
little caveat. Traefik is simply a proxy and loadbalancer and is not able to little caveat. Traefik is simply a proxy and loadbalancer and is not able to
serve any kind of content, but for conduwuit to federate, we need to either serve any kind of content, but for Continuwuity to federate, we need to either
expose ports `443` and `8448` or serve two endpoints `.well-known/matrix/client` expose ports `443` and `8448` or serve two endpoints `.well-known/matrix/client`
and `.well-known/matrix/server`. and `.well-known/matrix/server`.
@ -153,4 +140,3 @@ those two files.
See the [TURN](../turn.md) page. See the [TURN](../turn.md) page.
[nix-buildlayeredimage]: https://ryantm.github.io/nixpkgs/builders/images/dockertools/#ssec-pkgs-dockerTools-buildLayeredImage [nix-buildlayeredimage]: https://ryantm.github.io/nixpkgs/builders/images/dockertools/#ssec-pkgs-dockerTools-buildLayeredImage
[oci-image-def]: https://github.com/girlbossceo/conduwuit/blob/main/nix/pkgs/oci-image/default.nix

View file

@ -1,5 +1,5 @@
# conduwuit for FreeBSD # Continuwuity for FreeBSD
conduwuit at the moment does not provide FreeBSD builds or have FreeBSD packaging, however conduwuit does build and work on FreeBSD using the system-provided RocksDB. Continuwuity at the moment does not provide FreeBSD builds or have FreeBSD packaging, however Continuwuity does build and work on FreeBSD using the system-provided RocksDB.
Contributions for getting conduwuit packaged are welcome. Contributions for getting Continuwuity packaged are welcome.

View file

@ -2,11 +2,11 @@
> ### Getting help > ### Getting help
> >
> If you run into any problems while setting up conduwuit, ask us in > If you run into any problems while setting up Continuwuity, ask us in
> `#conduwuit:puppygock.gay` or [open an issue on > `#continuwuity:continuwuity.org` or [open an issue on
> GitHub](https://github.com/girlbossceo/conduwuit/issues/new). > Forgejo](https://forgejo.ellis.link/continuwuation/continuwuity/issues/new).
## Installing conduwuit ## Installing Continuwuity
### Static prebuilt binary ### Static prebuilt binary
@ -14,12 +14,10 @@ You may simply download the binary that fits your machine architecture (x86_64
or aarch64). Run `uname -m` to see what you need. or aarch64). Run `uname -m` to see what you need.
Prebuilt fully static musl binaries can be downloaded from the latest tagged Prebuilt fully static musl binaries can be downloaded from the latest tagged
release [here](https://github.com/girlbossceo/conduwuit/releases/latest) or release [here](https://forgejo.ellis.link/continuwuation/continuwuity/releases/latest) or
`main` CI branch workflow artifact output. These also include Debian/Ubuntu `main` CI branch workflow artifact output. These also include Debian/Ubuntu
packages. packages.
Binaries are also available on my website directly at: <https://pup.systems/~strawberry/conduwuit/>
These can be curl'd directly from. `ci-bins` are CI workflow binaries by commit These can be curl'd directly from. `ci-bins` are CI workflow binaries by commit
hash/revision, and `releases` are tagged releases. Sort by descending last hash/revision, and `releases` are tagged releases. Sort by descending last
modified for the latest. modified for the latest.
@ -37,7 +35,7 @@ for performance.
### Compiling ### Compiling
Alternatively, you may compile the binary yourself. We recommend using Alternatively, you may compile the binary yourself. We recommend using
Nix (or [Lix](https://lix.systems)) to build conduwuit as this has the most Nix (or [Lix](https://lix.systems)) to build Continuwuity as this has the most
guaranteed reproducibiltiy and easiest to get a build environment and output guaranteed reproducibiltiy and easiest to get a build environment and output
going. This also allows easy cross-compilation. going. This also allows easy cross-compilation.
@ -51,35 +49,35 @@ If wanting to build using standard Rust toolchains, make sure you install:
- `liburing-dev` on the compiling machine, and `liburing` on the target host - `liburing-dev` on the compiling machine, and `liburing` on the target host
- LLVM and libclang for RocksDB - LLVM and libclang for RocksDB
You can build conduwuit using `cargo build --release --all-features` You can build Continuwuity using `cargo build --release --all-features`
## Adding a conduwuit user ## Adding a Continuwuity user
While conduwuit can run as any user it is better to use dedicated users for While Continuwuity can run as any user it is better to use dedicated users for
different services. This also allows you to make sure that the file permissions different services. This also allows you to make sure that the file permissions
are correctly set up. are correctly set up.
In Debian, you can use this command to create a conduwuit user: In Debian, you can use this command to create a Continuwuity user:
```bash ```bash
sudo adduser --system conduwuit --group --disabled-login --no-create-home sudo adduser --system continuwuity --group --disabled-login --no-create-home
``` ```
For distros without `adduser` (or where it's a symlink to `useradd`): For distros without `adduser` (or where it's a symlink to `useradd`):
```bash ```bash
sudo useradd -r --shell /usr/bin/nologin --no-create-home conduwuit sudo useradd -r --shell /usr/bin/nologin --no-create-home continuwuity
``` ```
## Forwarding ports in the firewall or the router ## Forwarding ports in the firewall or the router
Matrix's default federation port is port 8448, and clients must be using port 443. Matrix's default federation port is port 8448, and clients must be using port 443.
If you would like to use only port 443, or a different port, you will need to setup If you would like to use only port 443, or a different port, you will need to setup
delegation. conduwuit has config options for doing delegation, or you can configure delegation. Continuwuity has config options for doing delegation, or you can configure
your reverse proxy to manually serve the necessary JSON files to do delegation your reverse proxy to manually serve the necessary JSON files to do delegation
(see the `[global.well_known]` config section). (see the `[global.well_known]` config section).
If conduwuit runs behind a router or in a container and has a different public If Continuwuity runs behind a router or in a container and has a different public
IP address than the host system these public ports need to be forwarded directly IP address than the host system these public ports need to be forwarded directly
or indirectly to the port mentioned in the config. or indirectly to the port mentioned in the config.
@ -94,9 +92,9 @@ on the network level, consider something like NextDNS or Pi-Hole.
## Setting up a systemd service ## Setting up a systemd service
Two example systemd units for conduwuit can be found Two example systemd units for Continuwuity can be found
[on the configuration page](../configuration/examples.md#debian-systemd-unit-file). [on the configuration page](../configuration/examples.md#debian-systemd-unit-file).
You may need to change the `ExecStart=` path to where you placed the conduwuit You may need to change the `ExecStart=` path to where you placed the Continuwuity
binary if it is not `/usr/bin/conduwuit`. binary if it is not `/usr/bin/conduwuit`.
On systems where rsyslog is used alongside journald (i.e. Red Hat-based distros On systems where rsyslog is used alongside journald (i.e. Red Hat-based distros
@ -114,9 +112,9 @@ and entering the following:
ReadWritePaths=/path/to/custom/database/path ReadWritePaths=/path/to/custom/database/path
``` ```
## Creating the conduwuit configuration file ## Creating the Continuwuity configuration file
Now we need to create the conduwuit's config file in Now we need to create the Continuwuity's config file in
`/etc/conduwuit/conduwuit.toml`. The example config can be found at `/etc/conduwuit/conduwuit.toml`. The example config can be found at
[conduwuit-example.toml](../configuration/examples.md). [conduwuit-example.toml](../configuration/examples.md).
@ -127,7 +125,7 @@ RocksDB is the only supported database backend.
## Setting the correct file permissions ## Setting the correct file permissions
If you are using a dedicated user for conduwuit, you will need to allow it to If you are using a dedicated user for Continuwuity, you will need to allow it to
read the config. To do that you can run this: read the config. To do that you can run this:
```bash ```bash
@ -139,7 +137,7 @@ If you use the default database path you also need to run this:
```bash ```bash
sudo mkdir -p /var/lib/conduwuit/ sudo mkdir -p /var/lib/conduwuit/
sudo chown -R conduwuit:conduwuit /var/lib/conduwuit/ sudo chown -R continuwuity:continuwuity /var/lib/conduwuit/
sudo chmod 700 /var/lib/conduwuit/ sudo chmod 700 /var/lib/conduwuit/
``` ```
@ -174,13 +172,13 @@ As we would prefer our users to use Caddy, we will not provide configuration fil
You will need to reverse proxy everything under following routes: You will need to reverse proxy everything under following routes:
- `/_matrix/` - core Matrix C-S and S-S APIs - `/_matrix/` - core Matrix C-S and S-S APIs
- `/_conduwuit/` - ad-hoc conduwuit routes such as `/local_user_count` and - `/_conduwuit/` - ad-hoc Continuwuity routes such as `/local_user_count` and
`/server_version` `/server_version`
You can optionally reverse proxy the following individual routes: You can optionally reverse proxy the following individual routes:
- `/.well-known/matrix/client` and `/.well-known/matrix/server` if using - `/.well-known/matrix/client` and `/.well-known/matrix/server` if using
conduwuit to perform delegation (see the `[global.well_known]` config section) Continuwuity to perform delegation (see the `[global.well_known]` config section)
- `/.well-known/matrix/support` if using conduwuit to send the homeserver admin - `/.well-known/matrix/support` if using Continuwuity to send the homeserver admin
contact and support page (formerly known as MSC1929) contact and support page (formerly known as MSC1929)
- `/` if you would like to see `hewwo from conduwuit woof!` at the root - `/` if you would like to see `hewwo from conduwuit woof!` at the root
@ -200,7 +198,7 @@ header, making federation non-functional. If a workaround is found, feel free to
If using Apache, you need to use `nocanon` in your `ProxyPass` directive to prevent httpd from messing with the `X-Matrix` header (note that Apache isn't very good as a general reverse proxy and we discourage the usage of it if you can). If using Apache, you need to use `nocanon` in your `ProxyPass` directive to prevent httpd from messing with the `X-Matrix` header (note that Apache isn't very good as a general reverse proxy and we discourage the usage of it if you can).
If using Nginx, you need to give conduwuit the request URI using `$request_uri`, or like so: If using Nginx, you need to give Continuwuity the request URI using `$request_uri`, or like so:
- `proxy_pass http://127.0.0.1:6167$request_uri;` - `proxy_pass http://127.0.0.1:6167$request_uri;`
- `proxy_pass http://127.0.0.1:6167;` - `proxy_pass http://127.0.0.1:6167;`
@ -209,7 +207,7 @@ Nginx users need to increase `client_max_body_size` (default is 1M) to match
## You're done ## You're done
Now you can start conduwuit with: Now you can start Continuwuity with:
```bash ```bash
sudo systemctl start conduwuit sudo systemctl start conduwuit

View file

@ -1,66 +1,33 @@
# conduwuit for NixOS # Continuwuity for NixOS
conduwuit can be acquired by Nix (or [Lix][lix]) from various places: Continuwuity can be acquired by Nix (or [Lix][lix]) from various places:
* The `flake.nix` at the root of the repo * The `flake.nix` at the root of the repo
* The `default.nix` at the root of the repo * The `default.nix` at the root of the repo
* From conduwuit's binary cache * From Continuwuity's binary cache
A community maintained NixOS package is available at [`conduwuit`](https://search.nixos.org/packages?channel=unstable&show=conduwuit&from=0&size=50&sort=relevance&type=packages&query=conduwuit)
### Binary cache
A binary cache for conduwuit that the CI/CD publishes to is available at the
following places (both are the same just different names):
```
https://attic.kennel.juneis.dog/conduit
conduit:eEKoUwlQGDdYmAI/Q/0slVlegqh/QmAvQd7HBSm21Wk=
https://attic.kennel.juneis.dog/conduwuit
conduwuit:BbycGUgTISsltcmH0qNjFR9dbrQNYgdIAcmViSGoVTE=
```
The binary caches were recreated some months ago due to attic issues. The old public
keys were:
```
conduit:Isq8FGyEC6FOXH6nD+BOeAA+bKp6X6UIbupSlGEPuOg=
conduwuit:lYPVh7o1hLu1idH4Xt2QHaRa49WRGSAqzcfFd94aOTw=
```
If needed, we have a binary cache on Cachix but it is only limited to 5GB:
```
https://conduwuit.cachix.org
conduwuit.cachix.org-1:MFRm6jcnfTf0jSAbmvLfhO3KBMt4px+1xaereWXp8Xg=
```
If specifying a Git remote URL in your flake, you can use any remotes that
are specified on the README (the mirrors), such as the GitHub: `github:girlbossceo/conduwuit`
### NixOS module ### NixOS module
The `flake.nix` and `default.nix` do not currently provide a NixOS module (contributions The `flake.nix` and `default.nix` do not currently provide a NixOS module (contributions
welcome!), so [`services.matrix-conduit`][module] from Nixpkgs can be used to configure welcome!), so [`services.matrix-conduit`][module] from Nixpkgs can be used to configure
conduwuit. Continuwuity.
### Conduit NixOS Config Module and SQLite ### Conduit NixOS Config Module and SQLite
Beware! The [`services.matrix-conduit`][module] module defaults to SQLite as a database backend. Beware! The [`services.matrix-conduit`][module] module defaults to SQLite as a database backend.
Conduwuit dropped SQLite support in favor of exclusively supporting the much faster RocksDB. Continuwuity dropped SQLite support in favor of exclusively supporting the much faster RocksDB.
Make sure that you are using the RocksDB backend before migrating! Make sure that you are using the RocksDB backend before migrating!
There is a [tool to migrate a Conduit SQLite database to There is a [tool to migrate a Conduit SQLite database to
RocksDB](https://github.com/ShadowJonathan/conduit_toolbox/). RocksDB](https://github.com/ShadowJonathan/conduit_toolbox/).
If you want to run the latest code, you should get conduwuit from the `flake.nix` If you want to run the latest code, you should get Continuwuity from the `flake.nix`
or `default.nix` and set [`services.matrix-conduit.package`][package] or `default.nix` and set [`services.matrix-conduit.package`][package]
appropriately to use conduwuit instead of Conduit. appropriately to use Continuwuity instead of Conduit.
### UNIX sockets ### UNIX sockets
Due to the lack of a conduwuit NixOS module, when using the `services.matrix-conduit` module Due to the lack of a Continuwuity NixOS module, when using the `services.matrix-conduit` module
a workaround like the one below is necessary to use UNIX sockets. This is because the UNIX a workaround like the one below is necessary to use UNIX sockets. This is because the UNIX
socket option does not exist in Conduit, and the module forcibly sets the `address` and socket option does not exist in Conduit, and the module forcibly sets the `address` and
`port` config options. `port` config options.
@ -84,13 +51,13 @@ disallows the namespace from accessing or creating UNIX sockets and has to be en
systemd.services.conduit.serviceConfig.RestrictAddressFamilies = [ "AF_UNIX" ]; systemd.services.conduit.serviceConfig.RestrictAddressFamilies = [ "AF_UNIX" ];
``` ```
Even though those workarounds are feasible a conduwuit NixOS configuration module, developed and Even though those workarounds are feasible a Continuwuity NixOS configuration module, developed and
published by the community, would be appreciated. published by the community, would be appreciated.
### jemalloc and hardened profile ### jemalloc and hardened profile
conduwuit uses jemalloc by default. This may interfere with the [`hardened.nix` profile][hardened.nix] Continuwuity uses jemalloc by default. This may interfere with the [`hardened.nix` profile][hardened.nix]
due to them using `scudo` by default. You must either disable/hide `scudo` from conduwuit, or due to them using `scudo` by default. You must either disable/hide `scudo` from Continuwuity, or
disable jemalloc like so: disable jemalloc like so:
```nix ```nix

View file

@ -4,9 +4,9 @@ Information about developing the project. If you are only interested in using
it, you can safely ignore this page. If you plan on contributing, see the it, you can safely ignore this page. If you plan on contributing, see the
[contributor's guide](./contributing.md). [contributor's guide](./contributing.md).
## conduwuit project layout ## Continuwuity project layout
conduwuit uses a collection of sub-crates, packages, or workspace members Continuwuity uses a collection of sub-crates, packages, or workspace members
that indicate what each general area of code is for. All of the workspace that indicate what each general area of code is for. All of the workspace
members are under `src/`. The workspace definition is at the top level / root members are under `src/`. The workspace definition is at the top level / root
`Cargo.toml`. `Cargo.toml`.
@ -14,11 +14,11 @@ members are under `src/`. The workspace definition is at the top level / root
The crate names are generally self-explanatory: The crate names are generally self-explanatory:
- `admin` is the admin room - `admin` is the admin room
- `api` is the HTTP API, Matrix C-S and S-S endpoints, etc - `api` is the HTTP API, Matrix C-S and S-S endpoints, etc
- `core` is core conduwuit functionality like config loading, error definitions, - `core` is core Continuwuity functionality like config loading, error definitions,
global utilities, logging infrastructure, etc global utilities, logging infrastructure, etc
- `database` is RocksDB methods, helpers, RocksDB config, and general database definitions, - `database` is RocksDB methods, helpers, RocksDB config, and general database definitions,
utilities, or functions utilities, or functions
- `macros` are conduwuit Rust [macros][macros] like general helper macros, logging - `macros` are Continuwuity Rust [macros][macros] like general helper macros, logging
and error handling macros, and [syn][syn] and [procedural macros][proc-macro] and error handling macros, and [syn][syn] and [procedural macros][proc-macro]
used for admin room commands and others used for admin room commands and others
- `main` is the "primary" sub-crate. This is where the `main()` function lives, - `main` is the "primary" sub-crate. This is where the `main()` function lives,
@ -35,7 +35,7 @@ if you truly find yourself needing to, we recommend reaching out to us in
the Matrix room for discussions about it beforehand. the Matrix room for discussions about it beforehand.
The primary inspiration for this design was apart of hot reloadable development, The primary inspiration for this design was apart of hot reloadable development,
to support "conduwuit as a library" where specific parts can simply be swapped out. to support "Continuwuity as a library" where specific parts can simply be swapped out.
There is evidence Conduit wanted to go this route too as `axum` is technically an There is evidence Conduit wanted to go this route too as `axum` is technically an
optional feature in Conduit, and can be compiled without the binary or axum library optional feature in Conduit, and can be compiled without the binary or axum library
for handling inbound web requests; but it was never completed or worked. for handling inbound web requests; but it was never completed or worked.
@ -68,10 +68,10 @@ do this if Rust supported workspace-level features to begin with.
## List of forked dependencies ## List of forked dependencies
During conduwuit development, we have had to fork During Continuwuity development, we have had to fork
some dependencies to support our use-cases in some areas. This ranges from some dependencies to support our use-cases in some areas. This ranges from
things said upstream project won't accept for any reason, faster-paced things said upstream project won't accept for any reason, faster-paced
development (unresponsive or slow upstream), conduwuit-specific usecases, or development (unresponsive or slow upstream), Continuwuity-specific usecases, or
lack of time to upstream some things. lack of time to upstream some things.
- [ruma/ruma][1]: <https://github.com/girlbossceo/ruwuma> - various performance - [ruma/ruma][1]: <https://github.com/girlbossceo/ruwuma> - various performance
@ -84,7 +84,7 @@ builds seem to be broken on upstream, fixes some broken/suspicious code in
places, additional safety measures, and support redzones for Valgrind places, additional safety measures, and support redzones for Valgrind
- [zyansheep/rustyline-async][4]: - [zyansheep/rustyline-async][4]:
<https://github.com/girlbossceo/rustyline-async> - tab completion callback and <https://github.com/girlbossceo/rustyline-async> - tab completion callback and
`CTRL+\` signal quit event for conduwuit console CLI `CTRL+\` signal quit event for Continuwuity console CLI
- [rust-rocksdb/rust-rocksdb][5]: - [rust-rocksdb/rust-rocksdb][5]:
<https://github.com/girlbossceo/rust-rocksdb-zaidoon1> - [`@zaidoon1`][8]'s fork <https://github.com/girlbossceo/rust-rocksdb-zaidoon1> - [`@zaidoon1`][8]'s fork
has quicker updates, more up to date dependencies, etc. Our fork fixes musl build has quicker updates, more up to date dependencies, etc. Our fork fixes musl build
@ -97,7 +97,7 @@ alongside other logging/metrics things
## Debugging with `tokio-console` ## Debugging with `tokio-console`
[`tokio-console`][7] can be a useful tool for debugging and profiling. To make a [`tokio-console`][7] can be a useful tool for debugging and profiling. To make a
`tokio-console`-enabled build of conduwuit, enable the `tokio_console` feature, `tokio-console`-enabled build of Continuwuity, enable the `tokio_console` feature,
disable the default `release_max_log_level` feature, and set the `--cfg disable the default `release_max_log_level` feature, and set the `--cfg
tokio_unstable` flag to enable experimental tokio APIs. A build might look like tokio_unstable` flag to enable experimental tokio APIs. A build might look like
this: this:
@ -109,7 +109,7 @@ RUSTFLAGS="--cfg tokio_unstable" cargo +nightly build \
--features=systemd,element_hacks,gzip_compression,brotli_compression,zstd_compression,tokio_console --features=systemd,element_hacks,gzip_compression,brotli_compression,zstd_compression,tokio_console
``` ```
You will also need to enable the `tokio_console` config option in conduwuit when You will also need to enable the `tokio_console` config option in Continuwuity when
starting it. This was due to tokio-console causing gradual memory leak/usage starting it. This was due to tokio-console causing gradual memory leak/usage
if left enabled. if left enabled.

View file

@ -1,4 +1,4 @@
# conduwuit # Continuwuity
{{#include ../README.md:catchphrase}} {{#include ../README.md:catchphrase}}
@ -8,7 +8,7 @@
- [Deployment options](deploying.md) - [Deployment options](deploying.md)
If you want to connect an appservice to conduwuit, take a look at the If you want to connect an appservice to Continuwuity, take a look at the
[appservices documentation](appservices.md). [appservices documentation](appservices.md).
#### How can I contribute? #### How can I contribute?

View file

@ -1,14 +1,14 @@
# Maintaining your conduwuit setup # Maintaining your Continuwuity setup
## Moderation ## Moderation
conduwuit has moderation through admin room commands. "binary commands" (medium Continuwuity has moderation through admin room commands. "binary commands" (medium
priority) and an admin API (low priority) is planned. Some moderation-related priority) and an admin API (low priority) is planned. Some moderation-related
config options are available in the example config such as "global ACLs" and config options are available in the example config such as "global ACLs" and
blocking media requests to certain servers. See the example config for the blocking media requests to certain servers. See the example config for the
moderation config options under the "Moderation / Privacy / Security" section. moderation config options under the "Moderation / Privacy / Security" section.
conduwuit has moderation admin commands for: Continuwuity has moderation admin commands for:
- managing room aliases (`!admin rooms alias`) - managing room aliases (`!admin rooms alias`)
- managing room directory (`!admin rooms directory`) - managing room directory (`!admin rooms directory`)
@ -36,7 +36,7 @@ each object being newline delimited. An example of doing this is:
## Database (RocksDB) ## Database (RocksDB)
Generally there is very little you need to do. [Compaction][rocksdb-compaction] Generally there is very little you need to do. [Compaction][rocksdb-compaction]
is ran automatically based on various defined thresholds tuned for conduwuit to is ran automatically based on various defined thresholds tuned for Continuwuity to
be high performance with the least I/O amplifcation or overhead. Manually be high performance with the least I/O amplifcation or overhead. Manually
running compaction is not recommended, or compaction via a timer, due to running compaction is not recommended, or compaction via a timer, due to
creating unnecessary I/O amplification. RocksDB is built with io_uring support creating unnecessary I/O amplification. RocksDB is built with io_uring support
@ -50,7 +50,7 @@ Some RocksDB settings can be adjusted such as the compression method chosen. See
the RocksDB section in the [example config](configuration/examples.md). the RocksDB section in the [example config](configuration/examples.md).
btrfs users have reported that database compression does not need to be disabled btrfs users have reported that database compression does not need to be disabled
on conduwuit as the filesystem already does not attempt to compress. This can be on Continuwuity as the filesystem already does not attempt to compress. This can be
validated by using `filefrag -v` on a `.SST` file in your database, and ensure validated by using `filefrag -v` on a `.SST` file in your database, and ensure
the `physical_offset` matches (no filesystem compression). It is very important the `physical_offset` matches (no filesystem compression). It is very important
to ensure no additional filesystem compression takes place as this can render to ensure no additional filesystem compression takes place as this can render
@ -70,7 +70,7 @@ they're server logs or database logs, however they are critical RocksDB files
related to WAL tracking. related to WAL tracking.
The only safe files that can be deleted are the `LOG` files (all caps). These The only safe files that can be deleted are the `LOG` files (all caps). These
are the real RocksDB telemetry/log files, however conduwuit has already are the real RocksDB telemetry/log files, however Continuwuity has already
configured to only store up to 3 RocksDB `LOG` files due to generall being configured to only store up to 3 RocksDB `LOG` files due to generall being
useless for average users unless troubleshooting something low-level. If you useless for average users unless troubleshooting something low-level. If you
would like to store nearly none at all, see the `rocksdb_max_log_files` would like to store nearly none at all, see the `rocksdb_max_log_files`
@ -88,7 +88,7 @@ still be joined together.
To restore a backup from an online RocksDB backup: To restore a backup from an online RocksDB backup:
- shutdown conduwuit - shutdown Continuwuity
- create a new directory for merging together the data - create a new directory for merging together the data
- in the online backup created, copy all `.sst` files in - in the online backup created, copy all `.sst` files in
`$DATABASE_BACKUP_PATH/shared_checksum` to your new directory `$DATABASE_BACKUP_PATH/shared_checksum` to your new directory
@ -99,9 +99,9 @@ To restore a backup from an online RocksDB backup:
if you have multiple) to your new directory if you have multiple) to your new directory
- set your `database_path` config option to your new directory, or replace your - set your `database_path` config option to your new directory, or replace your
old one with the new one you crafted old one with the new one you crafted
- start up conduwuit again and it should open as normal - start up Continuwuity again and it should open as normal
If you'd like to do an offline backup, shutdown conduwuit and copy your If you'd like to do an offline backup, shutdown Continuwuity and copy your
`database_path` directory elsewhere. This can be restored with no modifications `database_path` directory elsewhere. This can be restored with no modifications
needed. needed.
@ -110,7 +110,7 @@ directory.
## Media ## Media
Media still needs various work, however conduwuit implements media deletion via: Media still needs various work, however Continuwuity implements media deletion via:
- MXC URI or Event ID (unencrypted and attempts to find the MXC URI in the - MXC URI or Event ID (unencrypted and attempts to find the MXC URI in the
event) event)
@ -118,17 +118,17 @@ event)
- Delete remote media in the past `N` seconds/minutes via filesystem metadata on - Delete remote media in the past `N` seconds/minutes via filesystem metadata on
the file created time (`btime`) or file modified time (`mtime`) the file created time (`btime`) or file modified time (`mtime`)
See the `!admin media` command for further information. All media in conduwuit See the `!admin media` command for further information. All media in Continuwuity
is stored at `$DATABASE_DIR/media`. This will be configurable soon. is stored at `$DATABASE_DIR/media`. This will be configurable soon.
If you are finding yourself needing extensive granular control over media, we If you are finding yourself needing extensive granular control over media, we
recommend looking into [Matrix Media recommend looking into [Matrix Media
Repo](https://github.com/t2bot/matrix-media-repo). conduwuit intends to Repo](https://github.com/t2bot/matrix-media-repo). Continuwuity intends to
implement various utilities for media, but MMR is dedicated to extensive media implement various utilities for media, but MMR is dedicated to extensive media
management. management.
Built-in S3 support is also planned, but for now using a "S3 filesystem" on Built-in S3 support is also planned, but for now using a "S3 filesystem" on
`media/` works. conduwuit also sends a `Cache-Control` header of 1 year and `media/` works. Continuwuity also sends a `Cache-Control` header of 1 year and
immutable for all media requests (download and thumbnail) to reduce unnecessary immutable for all media requests (download and thumbnail) to reduce unnecessary
media requests from browsers, reduce bandwidth usage, and reduce load. media requests from browsers, reduce bandwidth usage, and reduce load.

View file

@ -1,9 +1,9 @@
# Troubleshooting conduwuit # Troubleshooting Continuwuity
> ## Docker users ⚠️ > ## Docker users ⚠️
> >
> Docker is extremely UX unfriendly. Because of this, a ton of issues or support > Docker is extremely UX unfriendly. Because of this, a ton of issues or support
> is actually Docker support, not conduwuit support. We also cannot document the > is actually Docker support, not Continuwuity support. We also cannot document the
> ever-growing list of Docker issues here. > ever-growing list of Docker issues here.
> >
> If you intend on asking for support and you are using Docker, **PLEASE** > If you intend on asking for support and you are using Docker, **PLEASE**
@ -13,14 +13,14 @@
> If there are things like Compose file issues or Dockerhub image issues, those > If there are things like Compose file issues or Dockerhub image issues, those
> can still be mentioned as long as they're something we can fix. > can still be mentioned as long as they're something we can fix.
## conduwuit and Matrix issues ## Continuwuity and Matrix issues
#### Lost access to admin room #### Lost access to admin room
You can reinvite yourself to the admin room through the following methods: You can reinvite yourself to the admin room through the following methods:
- Use the `--execute "users make_user_admin <username>"` conduwuit binary - Use the `--execute "users make_user_admin <username>"` Continuwuity binary
argument once to invite yourslf to the admin room on startup argument once to invite yourslf to the admin room on startup
- Use the conduwuit console/CLI to run the `users make_user_admin` command - Use the Continuwuity console/CLI to run the `users make_user_admin` command
- Or specify the `emergency_password` config option to allow you to temporarily - Or specify the `emergency_password` config option to allow you to temporarily
log into the server account (`@conduit`) from a web client log into the server account (`@conduit`) from a web client
@ -29,12 +29,12 @@ log into the server account (`@conduit`) from a web client
#### Potential DNS issues when using Docker #### Potential DNS issues when using Docker
Docker has issues with its default DNS setup that may cause DNS to not be Docker has issues with its default DNS setup that may cause DNS to not be
properly functional when running conduwuit, resulting in federation issues. The properly functional when running Continuwuity, resulting in federation issues. The
symptoms of this have shown in excessively long room joins (30+ minutes) from symptoms of this have shown in excessively long room joins (30+ minutes) from
very long DNS timeouts, log entries of "mismatching responding nameservers", very long DNS timeouts, log entries of "mismatching responding nameservers",
and/or partial or non-functional inbound/outbound federation. and/or partial or non-functional inbound/outbound federation.
This is **not** a conduwuit issue, and is purely a Docker issue. It is not This is **not** a Continuwuity issue, and is purely a Docker issue. It is not
sustainable for heavy DNS activity which is normal for Matrix federation. The sustainable for heavy DNS activity which is normal for Matrix federation. The
workarounds for this are: workarounds for this are:
- Use DNS over TCP via the config option `query_over_tcp_only = true` - Use DNS over TCP via the config option `query_over_tcp_only = true`
@ -64,7 +64,7 @@ very computationally expensive, and is extremely susceptible to denial of
service, especially on Matrix. Many servers also strangely have broken DNSSEC service, especially on Matrix. Many servers also strangely have broken DNSSEC
setups and will result in non-functional federation. setups and will result in non-functional federation.
conduwuit cannot provide a "works-for-everyone" Unbound DNS setup guide, but Continuwuity cannot provide a "works-for-everyone" Unbound DNS setup guide, but
the [official Unbound tuning guide][unbound-tuning] and the [Unbound Arch Linux wiki page][unbound-arch] the [official Unbound tuning guide][unbound-tuning] and the [Unbound Arch Linux wiki page][unbound-arch]
may be of interest. Disabling DNSSEC on Unbound is commenting out trust-anchors may be of interest. Disabling DNSSEC on Unbound is commenting out trust-anchors
config options and removing the `validator` module. config options and removing the `validator` module.
@ -75,9 +75,9 @@ high load, and we have identified its DNS caching to not be very effective.
dnsmasq can possibly work, but it does **not** support TCP fallback which can be dnsmasq can possibly work, but it does **not** support TCP fallback which can be
problematic when receiving large DNS responses such as from large SRV records. problematic when receiving large DNS responses such as from large SRV records.
If you still want to use dnsmasq, make sure you **disable** `dns_tcp_fallback` If you still want to use dnsmasq, make sure you **disable** `dns_tcp_fallback`
in conduwuit config. in Continuwuity config.
Raising `dns_cache_entries` in conduwuit config from the default can also assist Raising `dns_cache_entries` in Continuwuity config from the default can also assist
in DNS caching, but a full-fledged external caching resolver is better and more in DNS caching, but a full-fledged external caching resolver is better and more
reliable. reliable.
@ -97,7 +97,7 @@ If your database is corrupted *and* is failing to start (e.g. checksum
mismatch), it may be recoverable but careful steps must be taken, and there is mismatch), it may be recoverable but careful steps must be taken, and there is
no guarantee it may be recoverable. no guarantee it may be recoverable.
The first thing that can be done is launching conduwuit with the The first thing that can be done is launching Continuwuity with the
`rocksdb_repair` config option set to true. This will tell RocksDB to attempt to `rocksdb_repair` config option set to true. This will tell RocksDB to attempt to
repair itself at launch. If this does not work, disable the option and continue repair itself at launch. If this does not work, disable the option and continue
reading. reading.
@ -109,7 +109,7 @@ RocksDB has the following recovery modes:
- `PointInTime` - `PointInTime`
- `SkipAnyCorruptedRecord` - `SkipAnyCorruptedRecord`
By default, conduwuit uses `TolerateCorruptedTailRecords` as generally these may By default, Continuwuity uses `TolerateCorruptedTailRecords` as generally these may
be due to bad federation and we can re-fetch the correct data over federation. be due to bad federation and we can re-fetch the correct data over federation.
The RocksDB default is `PointInTime` which will attempt to restore a "snapshot" The RocksDB default is `PointInTime` which will attempt to restore a "snapshot"
of the data when it was last known to be good. This data can be either a few of the data when it was last known to be good. This data can be either a few
@ -126,12 +126,12 @@ if `PointInTime` does not work as a last ditch effort.
With this in mind: With this in mind:
- First start conduwuit with the `PointInTime` recovery method. See the [example - First start Continuwuity with the `PointInTime` recovery method. See the [example
config](configuration/examples.md) for how to do this using config](configuration/examples.md) for how to do this using
`rocksdb_recovery_mode` `rocksdb_recovery_mode`
- If your database successfully opens, clients are recommended to clear their - If your database successfully opens, clients are recommended to clear their
client cache to account for the rollback client cache to account for the rollback
- Leave your conduwuit running in `PointInTime` for at least 30-60 minutes so as - Leave your Continuwuity running in `PointInTime` for at least 30-60 minutes so as
much possible corruption is restored much possible corruption is restored
- If all goes will, you should be able to restore back to using - If all goes will, you should be able to restore back to using
`TolerateCorruptedTailRecords` and you have successfully recovered your database `TolerateCorruptedTailRecords` and you have successfully recovered your database
@ -144,14 +144,14 @@ Various debug commands can be found in `!admin debug`.
#### Debug/Trace log level #### Debug/Trace log level
conduwuit builds without debug or trace log levels at compile time by default Continuwuity builds without debug or trace log levels at compile time by default
for substantial performance gains in CPU usage and improved compile times. If for substantial performance gains in CPU usage and improved compile times. If
you need to access debug/trace log levels, you will need to build without the you need to access debug/trace log levels, you will need to build without the
`release_max_log_level` feature or use our provided static debug binaries. `release_max_log_level` feature or use our provided static debug binaries.
#### Changing log level dynamically #### Changing log level dynamically
conduwuit supports changing the tracing log environment filter on-the-fly using Continuwuity supports changing the tracing log environment filter on-the-fly using
the admin command `!admin debug change-log-level <log env filter>`. This accepts the admin command `!admin debug change-log-level <log env filter>`. This accepts
a string **without quotes** the same format as the `log` config option. a string **without quotes** the same format as the `log` config option.
@ -168,7 +168,7 @@ load, simply pass the `--reset` flag.
#### Pinging servers #### Pinging servers
conduwuit can ping other servers using `!admin debug ping <server>`. This takes Continuwuity can ping other servers using `!admin debug ping <server>`. This takes
a server name and goes through the server discovery process and queries a server name and goes through the server discovery process and queries
`/_matrix/federation/v1/version`. Errors are outputted. `/_matrix/federation/v1/version`. Errors are outputted.
@ -180,12 +180,12 @@ bandwidth and computationally.
#### Allocator memory stats #### Allocator memory stats
When using jemalloc with jemallocator's `stats` feature (`--enable-stats`), you When using jemalloc with jemallocator's `stats` feature (`--enable-stats`), you
can see conduwuit's high-level allocator stats by using can see Continuwuity's high-level allocator stats by using
`!admin server memory-usage` at the bottom. `!admin server memory-usage` at the bottom.
If you are a developer, you can also view the raw jemalloc statistics with If you are a developer, you can also view the raw jemalloc statistics with
`!admin debug memory-stats`. Please note that this output is extremely large `!admin debug memory-stats`. Please note that this output is extremely large
which may only be visible in the conduwuit console CLI due to PDU size limits, which may only be visible in the Continuwuity console CLI due to PDU size limits,
and is not easy for non-developers to understand. and is not easy for non-developers to understand.
[unbound-tuning]: https://unbound.docs.nlnetlabs.nl/en/latest/topics/core/performance.html [unbound-tuning]: https://unbound.docs.nlnetlabs.nl/en/latest/topics/core/performance.html

View file

@ -1,6 +1,6 @@
# Setting up TURN/STURN # Setting up TURN/STURN
In order to make or receive calls, a TURN server is required. conduwuit suggests In order to make or receive calls, a TURN server is required. Continuwuity suggests
using [Coturn](https://github.com/coturn/coturn) for this purpose, which is also using [Coturn](https://github.com/coturn/coturn) for this purpose, which is also
available as a Docker image. available as a Docker image.
@ -17,9 +17,9 @@ realm=<your server domain>
A common way to generate a suitable alphanumeric secret key is by using `pwgen A common way to generate a suitable alphanumeric secret key is by using `pwgen
-s 64 1`. -s 64 1`.
These same values need to be set in conduwuit. See the [example These same values need to be set in Continuwuity. See the [example
config](configuration/examples.md) in the TURN section for configuring these and config](configuration/examples.md) in the TURN section for configuring these and
restart conduwuit after. restart Continuwuity after.
`turn_secret` or a path to `turn_secret_file` must have a value of your `turn_secret` or a path to `turn_secret_file` must have a value of your
coturn `static-auth-secret`, or use `turn_username` and `turn_password` coturn `static-auth-secret`, or use `turn_username` and `turn_password`
@ -34,7 +34,7 @@ If you are using TURN over TLS, you can replace `turn:` with `turns:` in the
TURN over TLS. This is highly recommended. TURN over TLS. This is highly recommended.
If you need unauthenticated access to the TURN URIs, or some clients may be If you need unauthenticated access to the TURN URIs, or some clients may be
having trouble, you can enable `turn_guest_access` in conduwuit which disables having trouble, you can enable `turn_guest_access` in Continuwuity which disables
authentication for the TURN URI endpoint `/_matrix/client/v3/voip/turnServer` authentication for the TURN URI endpoint `/_matrix/client/v3/voip/turnServer`
### Run ### Run