Fix up the docs, replace a lot of conduwuit references
This commit is contained in:
parent
22e7617362
commit
ff93cfdc64
18 changed files with 133 additions and 194 deletions
|
@ -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
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
# conduwuit Community Code of Conduct
|
# Continuwuity Community Code of Conduct
|
||||||
|
|
||||||
Welcome to the conduwuit community! We’re excited to have you here. conduwuit is
|
Welcome to the Continuwuity community! We’re 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, let’s build a community where everyone feels valued and respected.
|
Together, let’s build a community where everyone feels valued and respected.
|
||||||
|
|
||||||
— The conduwuit Moderation Team
|
— The Continuwuity Moderation Team
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Deploying
|
# Deploying
|
||||||
|
|
||||||
This chapter describes various ways to deploy conduwuit.
|
This chapter describes various ways to deploy Continuwuity.
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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?
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue