From 487903bcf1b043c799fe4027e7793beeac0a6bfe Mon Sep 17 00:00:00 2001 From: Jonas Zohren <15788906+jfowl@users.noreply.github.com> Date: Tue, 16 Aug 2022 06:17:43 +0200 Subject: [PATCH] add Matrix Conduit (#702) --- public/v4/apps/matrix-conduit.yml | 89 +++++++++++++++++++++++++++++ public/v4/logos/matrix-conduit.png | Bin 0 -> 38663 bytes 2 files changed, 89 insertions(+) create mode 100644 public/v4/apps/matrix-conduit.yml create mode 100644 public/v4/logos/matrix-conduit.png diff --git a/public/v4/apps/matrix-conduit.yml b/public/v4/apps/matrix-conduit.yml new file mode 100644 index 0000000..dd1b1cf --- /dev/null +++ b/public/v4/apps/matrix-conduit.yml @@ -0,0 +1,89 @@ +captainVersion: 4 +services: + $$cap_appname: + image: matrixconduit/matrix-conduit:$$cap_conduit_version + restart: unless-stopped + environment: + CONDUIT_SERVER_NAME: '$$cap_conduit_server_name' + CONDUIT_DATABASE_BACKEND: 'rocksdb' + CONDUIT_ALLOW_REGISTRATION: '$$cap_conduit_allow_registration' + CONDUIT_ALLOW_FEDERATION: '$$cap_conduit_allow_federation' + CONDUIT_MAX_REQUEST_SIZE: '$$cap_conduit_max_request_size' + CONDUIT_TRUSTED_SERVERS: '["matrix.org"]' + CONDUIT_MAX_CONCURRENT_REQUESTS: '$$cap_conduit_max_concurrent_requests' + CONDUIT_LOG: 'info,rocket=off,_=off,sled=off' + volumes: + - '$$cap_appname-data:/var/lib/matrix-conduit' + caproverExtra: + containerHttpPort: '6167' + +caproverOneClickApp: + variables: + - id: '$$cap_conduit_version' + label: Conduit Version + defaultValue: 'v0.4.0' + description: Check out their Docker page for the valid tags https://hub.docker.com/r/matrixconduit/matrix-conduit/tags + validRegex: '/^v[0-9]{1,}|latest$/' + - id: '$$cap_conduit_server_name' + label: 'Conduit server name' + defaultValue: 'example.com' + description: >- + The domain part for your usernames (e.g. @myusername:example.com). + + You will need to set up .well-known files on that domain (for our example https://example.com/.well-known/matrix/...) + to point to your actual domain (which will probably be something like appname.apps.your-caprover-domain.com). + + You might find the Synapse documentation useful for this: https://matrix-org.github.io/synapse/latest/setup/installation.html#client-well-known-uri + - id: '$$cap_conduit_allow_registration' + label: Enable public registration + defaultValue: 'false' + description: >- + Set this to true if you want EVERYONE to be able to register. + It's recommended to set this to false as soon as possible. + + Otherwise, your server might be used by spammers to mass-register accounts, + which will risk your server being banned by other servers. + validRegex: '/^(true|false)$/i' + - id: '$$cap_conduit_allow_federation' + label: Enable federation with other homeservers + defaultValue: 'true' + description: >- + Set this to false if you don't want your users to talk to users on other Matrix servers. + validRegex: '/^(true|false)$/i' + - id: '$$cap_conduit_max_request_size' + label: Max request size + defaultValue: '20000000' + description: >- + The maximum allowed size for incoming requests, in bytes. + + If you set this higher than 500000000, you will will also need to increase the nginx "client_max_body_size". + validRegex: '/^[0-9]{2,}$/' + - id: '$$cap_conduit_max_concurrent_requests' + label: Maximum number of concurrent requests + defaultValue: '100' + instructions: + start: >- + Conduit is a simple, fast and reliable chat server powered by the Matrix protocol + + Matrix is build to federate with other servers, so you can communicate with people from other servers. + + More information about matrix can be found here: https://matrix.org/. + + More information about Conduit in particular is available on https://conduit.rs/. + end: >- + Almost done. + + Enable and force https in the web interface! + + Unless you have set up .well-known files for other servers to find your server, you can not message users on other servers. + + To set up a .well-known file for Clients, go to https://matrix-org.github.io/synapse/latest/setup/installation.html#client-well-known-uri + + Else, $$cap_appname.$$cap_root_domain is the domain you enter in the custom homeserver field of your client. + + Remember this is just the server, you also need a client like https://app.element.io/ to use this app. + + displayName: 'Matrix Conduit' + isOfficial: true + description: 'Server for the matrix protocol, written in Rust' + documentation: 'https://gitlab.com/famedly/conduit/-/blob/next/README.md' diff --git a/public/v4/logos/matrix-conduit.png b/public/v4/logos/matrix-conduit.png new file mode 100644 index 0000000000000000000000000000000000000000..22ff001ce18ffb945dc03fc16c04de984d561948 GIT binary patch literal 38663 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