docs: build docs using mdBook, build in CI, deploy to gitlab pages
squashed from https://gitlab.com/famedly/conduit/-/merge_requests/604 added differences.md Co-authored-by: Charles Hall <charles@computer.surgery> Co-authored-by: strawberry <strawberry@puppygock.gay> Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
parent
a7966b8f05
commit
e9ce642795
23 changed files with 154 additions and 27 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -75,5 +75,8 @@ test-conduit.toml
|
||||||
# Gitlab CI cache
|
# Gitlab CI cache
|
||||||
/.gitlab-ci.d
|
/.gitlab-ci.d
|
||||||
|
|
||||||
|
# mdbook output
|
||||||
|
public/
|
||||||
|
|
||||||
# macOS
|
# macOS
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
|
@ -105,6 +105,10 @@ artifacts:
|
||||||
|
|
||||||
- ./bin/nix-build-and-cache .#oci-image-aarch64-unknown-linux-musl
|
- ./bin/nix-build-and-cache .#oci-image-aarch64-unknown-linux-musl
|
||||||
- cp result oci-image-arm64v8.tar.gz
|
- cp result oci-image-arm64v8.tar.gz
|
||||||
|
|
||||||
|
- ./bin/nix-build-and-cache .#book
|
||||||
|
# We can't just copy the symlink, we need to dereference it https://gitlab.com/gitlab-org/gitlab/-/issues/19746
|
||||||
|
- cp -r --dereference result public
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- x86_64-unknown-linux-musl
|
- x86_64-unknown-linux-musl
|
||||||
|
@ -112,6 +116,7 @@ artifacts:
|
||||||
- x86_64-unknown-linux-musl.deb
|
- x86_64-unknown-linux-musl.deb
|
||||||
- oci-image-amd64.tar.gz
|
- oci-image-amd64.tar.gz
|
||||||
- oci-image-arm64v8.tar.gz
|
- oci-image-arm64v8.tar.gz
|
||||||
|
- public
|
||||||
rules:
|
rules:
|
||||||
# CI required for all MRs
|
# CI required for all MRs
|
||||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||||
|
@ -164,3 +169,15 @@ oci-image:push-gitlab:
|
||||||
IMAGE_NAME: $CI_REGISTRY_IMAGE/conduwuit
|
IMAGE_NAME: $CI_REGISTRY_IMAGE/conduwuit
|
||||||
before_script:
|
before_script:
|
||||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||||
|
|
||||||
|
pages:
|
||||||
|
stage: publish
|
||||||
|
dependencies:
|
||||||
|
- artifacts
|
||||||
|
only:
|
||||||
|
- next
|
||||||
|
script:
|
||||||
|
- "true"
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- public
|
||||||
|
|
3
.gitlab/route-map.yml
Normal file
3
.gitlab/route-map.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Docs: Map markdown to html files
|
||||||
|
- source: /docs/(.+)\.md/
|
||||||
|
public: '\1.html'
|
40
README.md
40
README.md
|
@ -1,9 +1,17 @@
|
||||||
# conduwuit
|
# conduwuit
|
||||||
### a well maintained fork of [Conduit](https://conduit.rs/)
|
|
||||||
|
|
||||||
[![CI and Artifacts](https://github.com/girlbossceo/conduwuit/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/girlbossceo/conduwuit/actions/workflows/ci.yml)
|
[![CI and Artifacts](https://github.com/girlbossceo/conduwuit/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/girlbossceo/conduwuit/actions/workflows/ci.yml)
|
||||||
|
|
||||||
|
<!-- ANCHOR: catchphrase -->
|
||||||
|
### a well maintained fork of [Conduit](https://conduit.rs/)
|
||||||
|
<!-- ANCHOR_END: catchphrase -->
|
||||||
|
|
||||||
|
Please visit the [Conduit documentation](https://famedly.gitlab.io/conduit) for more information.
|
||||||
|
Alternatively you can open [docs/introduction.md](docs/introduction.md) in this repository.
|
||||||
|
|
||||||
|
<!-- ANCHOR: body -->
|
||||||
#### What is Matrix?
|
#### What is Matrix?
|
||||||
|
|
||||||
[Matrix](https://matrix.org) is an open network for secure and decentralized
|
[Matrix](https://matrix.org) is an open network for secure and decentralized
|
||||||
communication. Users from every Matrix homeserver can chat with users from all
|
communication. Users from every Matrix homeserver can chat with users from all
|
||||||
other Matrix servers. You can even use bridges (also called Matrix Appservices)
|
other Matrix servers. You can even use bridges (also called Matrix Appservices)
|
||||||
|
@ -31,7 +39,7 @@ There are still a few nice to have features missing that some users may notice:
|
||||||
|
|
||||||
#### What's different about your fork than upstream Conduit?
|
#### What's different about your fork than upstream Conduit?
|
||||||
|
|
||||||
See [DIFFERENCES.md](DIFFERENCES.md)
|
See [docs/differences.md](docs/differences.md)
|
||||||
|
|
||||||
#### Why does this fork exist? Why don't you contribute back upstream?
|
#### Why does this fork exist? Why don't you contribute back upstream?
|
||||||
|
|
||||||
|
@ -45,16 +53,9 @@ I now intend on contributing back as time and mental energy sees fit, but my for
|
||||||
- Have a **stable** testing ground for some MRs or new features and bug fixes
|
- Have a **stable** testing ground for some MRs or new features and bug fixes
|
||||||
|
|
||||||
And various other reasons that may not be listed here.
|
And various other reasons that may not be listed here.
|
||||||
|
<!-- ANCHOR_END: body -->
|
||||||
|
|
||||||
#### How can I deploy my own?
|
<!-- ANCHOR: footer -->
|
||||||
|
|
||||||
conduwuit officially supports Linux, macOS, BSD, and Windows.
|
|
||||||
|
|
||||||
- Simple install (this was tested the most): [DEPLOY.md](DEPLOY.md)
|
|
||||||
- Nix/NixOS (and binary cache): [nix/README.md](nix/README.md)
|
|
||||||
|
|
||||||
If you want to connect an Appservice to Conduit, take a look at [APPSERVICES.md](APPSERVICES.md).
|
|
||||||
|
|
||||||
#### How can I contribute?
|
#### How can I contribute?
|
||||||
|
|
||||||
1. Look for an issue you would like to work on and make sure it's not assigned
|
1. Look for an issue you would like to work on and make sure it's not assigned
|
||||||
|
@ -72,9 +73,9 @@ If you run into any question, feel free to
|
||||||
|
|
||||||
#### Donate
|
#### Donate
|
||||||
|
|
||||||
Liberapay: <https://liberapay.com/girlbossceo>\
|
- Liberapay: <https://liberapay.com/girlbossceo>
|
||||||
Ko-fi: <https://ko-fi.com/puppygock>\
|
- Ko-fi: <https://ko-fi.com/puppygock>
|
||||||
GitHub Sponsors: <https://github.com/sponsors/girlbossceo>
|
- GitHub Sponsors: <https://github.com/sponsors/girlbossceo>
|
||||||
|
|
||||||
#### Logo
|
#### Logo
|
||||||
|
|
||||||
|
@ -86,8 +87,9 @@ Both.
|
||||||
|
|
||||||
#### Mirrors of conduwuit
|
#### Mirrors of conduwuit
|
||||||
|
|
||||||
GitHub: <https://github.com/girlbossceo/conduwuit>\
|
- GitHub: <https://github.com/girlbossceo/conduwuit>
|
||||||
GitLab: <https://gitlab.com/girlbossceo/conduwuit>\
|
- GitLab: <https://gitlab.com/girlbossceo/conduwuit>
|
||||||
git.gay: <https://git.gay/june/conduwuit>\
|
- git.gay: <https://git.gay/june/conduwuit>
|
||||||
Codeberg: <https://codeberg.org/girlbossceo/conduwuit>\
|
- Codeberg: <https://codeberg.org/girlbossceo/conduwuit>
|
||||||
sourcehut: <https://git.sr.ht/~girlbossceo/conduwuit>
|
- sourcehut: <https://git.sr.ht/~girlbossceo/conduwuit>
|
||||||
|
<!-- ANCHOR_END: footer -->
|
||||||
|
|
18
book.toml
Normal file
18
book.toml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
[book]
|
||||||
|
title = "Conduit"
|
||||||
|
description = "Conduit is a simple, fast and reliable chat server for the Matrix protocol"
|
||||||
|
language = "en"
|
||||||
|
multilingual = false
|
||||||
|
src = "docs"
|
||||||
|
|
||||||
|
[build]
|
||||||
|
build-dir = "public"
|
||||||
|
create-missing = true
|
||||||
|
|
||||||
|
[output.html]
|
||||||
|
git-repository-url = "https://gitlab.com/famedly/conduit"
|
||||||
|
edit-url-template = "https://gitlab.com/famedly/conduit/-/edit/next/{path}"
|
||||||
|
git-repository-icon = "fa-git-square"
|
||||||
|
|
||||||
|
[output.html.search]
|
||||||
|
limit-results = 15
|
2
debian/README.md
vendored
2
debian/README.md
vendored
|
@ -5,7 +5,7 @@ Installation
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Information about downloading, building and deploying the Debian package, see
|
Information about downloading, building and deploying the Debian package, see
|
||||||
the "Installing Conduit" section in [DEPLOY.md](../DEPLOY.md).
|
the "Installing Conduit" section in the Deploying docs.
|
||||||
All following sections until "Setting up the Reverse Proxy" be ignored because
|
All following sections until "Setting up the Reverse Proxy" be ignored because
|
||||||
this is handled automatically by the packaging.
|
this is handled automatically by the packaging.
|
||||||
|
|
||||||
|
|
13
docs/SUMMARY.md
Normal file
13
docs/SUMMARY.md
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# Summary
|
||||||
|
|
||||||
|
- [Introduction](introduction.md)
|
||||||
|
- [Differences from upstream Conduit](differences.md)
|
||||||
|
|
||||||
|
- [Example configuration](configuration.md)
|
||||||
|
- [Deployment options](deploying.md)
|
||||||
|
- [Simple (Recommended)](deploying/simple.md)
|
||||||
|
- [Debian](deploying/debian.md)
|
||||||
|
- [Docker](deploying/docker.md)
|
||||||
|
- [Nix](deploying/nix.md)
|
||||||
|
- [TURN](turn.md)
|
||||||
|
- [Appservices](appservices.md)
|
5
docs/configuration.md
Normal file
5
docs/configuration.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# Example configuration
|
||||||
|
|
||||||
|
``` toml
|
||||||
|
{{#include ../conduit-example.toml}}
|
||||||
|
```
|
8
docs/deploying.md
Normal file
8
docs/deploying.md
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# Deployment options
|
||||||
|
|
||||||
|
There are several ways to deploy a Conduit server.
|
||||||
|
|
||||||
|
- [Simple (Recommended)](deploying/simple.md) - This is the recommended way to set up Conduit.
|
||||||
|
- [Debian](deploying/debian.md) - If you're using a debian-based system, you may find the `deb` package useful.
|
||||||
|
- [Docker](deploying/docker.md) - We provide multi-arch OCI images for Conduit.
|
||||||
|
- [Nix](deploying/nix.md) - Nix flake based setup.
|
1
docs/deploying/debian.md
Normal file
1
docs/deploying/debian.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{{#include ../../debian/README.md}}
|
|
@ -70,7 +70,7 @@ docker run -d -p 8448:6167 \
|
||||||
|
|
||||||
or you can use [docker-compose](#docker-compose).
|
or you can use [docker-compose](#docker-compose).
|
||||||
|
|
||||||
The `-d` flag lets the container run in detached mode. You now need to supply a `conduit.toml` config file, an example can be found [here](../conduwuit-example.toml).
|
The `-d` flag lets the container run in detached mode. You now need to supply a `conduit.toml` config file, an example can be found [here](../configuration.md).
|
||||||
You can pass in different env vars to change config values on the fly. You can even configure Conduit completely by using env vars, but for that you need
|
You can pass in different env vars to change config values on the fly. You can even configure Conduit completely by using env vars, but for that you need
|
||||||
to pass `-e CONDUIT_CONFIG=""` into your container. For an overview of possible values, please take a look at the `docker-compose.yml` file.
|
to pass `-e CONDUIT_CONFIG=""` into your container. For an overview of possible values, please take a look at the `docker-compose.yml` file.
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ When picking the traefik-related compose file, rename it so it matches `docker-c
|
||||||
rename the override file to `docker-compose.override.yml`. Edit the latter with the values you want
|
rename the override file to `docker-compose.override.yml`. Edit the latter with the values you want
|
||||||
for your server.
|
for your server.
|
||||||
|
|
||||||
Additional info about deploying Conduit can be found [here](../DEPLOY.md).
|
Additional info about deploying Conduit can be found [here](simple.md).
|
||||||
|
|
||||||
### Build
|
### Build
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ So...step by step:
|
||||||
1. Copy [`docker-compose.for-traefik.yml`](docker-compose.for-traefik.yml) (or
|
1. Copy [`docker-compose.for-traefik.yml`](docker-compose.for-traefik.yml) (or
|
||||||
[`docker-compose.with-traefik.yml`](docker-compose.with-traefik.yml)) and [`docker-compose.override.yml`](docker-compose.override.yml) from the repository and remove `.for-traefik` (or `.with-traefik`) from the filename.
|
[`docker-compose.with-traefik.yml`](docker-compose.with-traefik.yml)) and [`docker-compose.override.yml`](docker-compose.override.yml) from the repository and remove `.for-traefik` (or `.with-traefik`) from the filename.
|
||||||
2. Open both files and modify/adjust them to your needs. Meaning, change the `CONDUIT_SERVER_NAME` and the volume host mappings according to your needs.
|
2. Open both files and modify/adjust them to your needs. Meaning, change the `CONDUIT_SERVER_NAME` and the volume host mappings according to your needs.
|
||||||
3. Create the `conduit.toml` config file, an example can be found [here](../conduwuit-example.toml), or set `CONDUIT_CONFIG=""` and configure Conduit per env vars.
|
3. Create the `conduit.toml` config file, an example can be found [here](../configuration.md), or set `CONDUIT_CONFIG=""` and configure Conduit per env vars.
|
||||||
4. Uncomment the `element-web` service if you want to host your own Element Web Client and create a `element_config.json`.
|
4. Uncomment the `element-web` service if you want to host your own Element Web Client and create a `element_config.json`.
|
||||||
5. Create the files needed by the `well-known` service.
|
5. Create the files needed by the `well-known` service.
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
# Deploying Conduit
|
# Simple setup
|
||||||
|
|
||||||
|
This is the recommended way to set up Conduit. It is the easiest way to get started and is suitable for most use cases.
|
||||||
|
|
||||||
### Please note that this documentation is not fully representative of conduwuit at the moment. Assume majority of it is outdated.
|
### Please note that this documentation is not fully representative of conduwuit at the moment. Assume majority of it is outdated.
|
||||||
|
|
||||||
|
@ -118,7 +120,7 @@ Now we need to create the Conduit's config file in `/etc/conduwuit/conduwuit.tom
|
||||||
to read it. You need to change at least the server name.**
|
to read it. You need to change at least the server name.**
|
||||||
You can also choose to use a different database backend, but right now only `rocksdb` and `sqlite` are recommended.
|
You can also choose to use a different database backend, but right now only `rocksdb` and `sqlite` are recommended.
|
||||||
|
|
||||||
See the following example config at [conduwuit-example.toml](conduwuit-example.toml)
|
See the following example config at [conduwuit-example.toml](../configuration.md)
|
||||||
|
|
||||||
## Setting the correct file permissions
|
## Setting the correct file permissions
|
||||||
|
|
||||||
|
@ -300,8 +302,8 @@ $ curl https://your.server.name:8448/_matrix/client/versions
|
||||||
|
|
||||||
## Audio/Video calls
|
## Audio/Video calls
|
||||||
|
|
||||||
For Audio/Video call functionality see the [TURN Guide](TURN.md).
|
For Audio/Video call functionality see the [TURN Guide](../turn.md).
|
||||||
|
|
||||||
## Appservices
|
## Appservices
|
||||||
|
|
||||||
If you want to set up an appservice, take a look at the [Appservice Guide](APPSERVICES.md).
|
If you want to set up an appservice, take a look at the [Appservice Guide](../appservices.md).
|
13
docs/introduction.md
Normal file
13
docs/introduction.md
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# Conduit
|
||||||
|
|
||||||
|
{{#include ../README.md:catchphrase}}
|
||||||
|
|
||||||
|
{{#include ../README.md:body}}
|
||||||
|
|
||||||
|
#### How can I deploy my own?
|
||||||
|
|
||||||
|
- [Deployment options](deploying.md)
|
||||||
|
|
||||||
|
If you want to connect an Appservice to Conduit, take a look at the [appservices documentation](appservices.md).
|
||||||
|
|
||||||
|
{{#include ../README.md:footer}}
|
10
engage.toml
10
engage.toml
|
@ -50,6 +50,11 @@ name = "cargo-deb"
|
||||||
group = "versions"
|
group = "versions"
|
||||||
script = "cargo deb --version"
|
script = "cargo deb --version"
|
||||||
|
|
||||||
|
[[task]]
|
||||||
|
name = "lychee"
|
||||||
|
group = "versions"
|
||||||
|
script = "lychee --version"
|
||||||
|
|
||||||
[[task]]
|
[[task]]
|
||||||
name = "cargo-audit"
|
name = "cargo-audit"
|
||||||
group = "security"
|
group = "security"
|
||||||
|
@ -77,6 +82,11 @@ name = "cargo-clippy"
|
||||||
group = "lints"
|
group = "lints"
|
||||||
script = "cargo clippy --workspace --all-targets --all-features --color=always -- -D warnings"
|
script = "cargo clippy --workspace --all-targets --all-features --color=always -- -D warnings"
|
||||||
|
|
||||||
|
[[task]]
|
||||||
|
name = "lychee"
|
||||||
|
group = "lints"
|
||||||
|
script = "lychee --offline docs"
|
||||||
|
|
||||||
[[task]]
|
[[task]]
|
||||||
name = "cargo"
|
name = "cargo"
|
||||||
group = "tests"
|
group = "tests"
|
||||||
|
|
32
flake.nix
32
flake.nix
|
@ -208,6 +208,35 @@
|
||||||
packages = {
|
packages = {
|
||||||
default = package pkgsHost;
|
default = package pkgsHost;
|
||||||
oci-image = mkOciImage pkgsHost self.packages.${system}.default;
|
oci-image = mkOciImage pkgsHost self.packages.${system}.default;
|
||||||
|
|
||||||
|
book =
|
||||||
|
let
|
||||||
|
package = self.packages.${system}.default;
|
||||||
|
in
|
||||||
|
pkgsHost.stdenv.mkDerivation {
|
||||||
|
pname = "${package.pname}-book";
|
||||||
|
version = package.version;
|
||||||
|
|
||||||
|
src = nix-filter {
|
||||||
|
root = ./.;
|
||||||
|
include = [
|
||||||
|
"book.toml"
|
||||||
|
"conduit-example.toml"
|
||||||
|
"README.md"
|
||||||
|
"debian/README.md"
|
||||||
|
"docs"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = (with pkgsHost; [
|
||||||
|
mdbook
|
||||||
|
]);
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
mdbook build
|
||||||
|
mv public $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
builtins.listToAttrs
|
builtins.listToAttrs
|
||||||
|
@ -276,6 +305,9 @@
|
||||||
|
|
||||||
# Needed for our script for Complement
|
# Needed for our script for Complement
|
||||||
jq
|
jq
|
||||||
|
|
||||||
|
# Needed for finding broken markdown links
|
||||||
|
lychee
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue