From c25e7c53aa5025fc48584ee84f5e122aef17b123 Mon Sep 17 00:00:00 2001 From: Alexis Loiseau <59391503+IT-ess@users.noreply.github.com> Date: Sun, 12 Jan 2025 21:41:50 +0100 Subject: [PATCH] feat(template): added conduit, a matrix homeserver (#1087) * feat(template): added conduit, a matrix homeserver * Update apps/dokploy/templates/conduit/index.ts * Update apps/dokploy/templates/conduit/index.ts --------- Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> --- apps/dokploy/public/templates/conduit.svg | 6 ++++ .../templates/conduit/docker-compose.yml | 31 +++++++++++++++++++ apps/dokploy/templates/conduit/index.ts | 28 +++++++++++++++++ apps/dokploy/templates/templates.ts | 15 +++++++++ 4 files changed, 80 insertions(+) create mode 100644 apps/dokploy/public/templates/conduit.svg create mode 100644 apps/dokploy/templates/conduit/docker-compose.yml create mode 100644 apps/dokploy/templates/conduit/index.ts diff --git a/apps/dokploy/public/templates/conduit.svg b/apps/dokploy/public/templates/conduit.svg new file mode 100644 index 00000000..aa7a352c --- /dev/null +++ b/apps/dokploy/public/templates/conduit.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/apps/dokploy/templates/conduit/docker-compose.yml b/apps/dokploy/templates/conduit/docker-compose.yml new file mode 100644 index 00000000..f2f1fb34 --- /dev/null +++ b/apps/dokploy/templates/conduit/docker-compose.yml @@ -0,0 +1,31 @@ +# From Conduit's official documentation: https://docs.conduit.rs/deploying/docker.html#docker-compose +version: '3' + +services: + homeserver: + image: registry.gitlab.com/famedly/conduit/matrix-conduit:v0.9.0 + restart: unless-stopped + volumes: + - db:/var/lib/matrix-conduit/ + networks: + - dokploy-network + environment: + CONDUIT_SERVER_NAME: ${MATRIX_SUBDOMAIN} + CONDUIT_DATABASE_PATH: /var/lib/matrix-conduit/ + CONDUIT_DATABASE_BACKEND: rocksdb + CONDUIT_PORT: 6167 + CONDUIT_MAX_REQUEST_SIZE: 20000000 # in bytes, ~20 MB + CONDUIT_ALLOW_REGISTRATION: 'true' + #CONDUIT_REGISTRATION_TOKEN: '' # require password for registration + CONDUIT_ALLOW_FEDERATION: 'true' + CONDUIT_ALLOW_CHECK_FOR_UPDATES: 'true' + CONDUIT_TRUSTED_SERVERS: '["matrix.org"]' + #CONDUIT_MAX_CONCURRENT_REQUESTS: 100 + CONDUIT_ADDRESS: 0.0.0.0 + CONDUIT_CONFIG: '' # Ignore this +volumes: + db: + +networks: + dokploy-network: + external: true diff --git a/apps/dokploy/templates/conduit/index.ts b/apps/dokploy/templates/conduit/index.ts new file mode 100644 index 00000000..2b9a81ae --- /dev/null +++ b/apps/dokploy/templates/conduit/index.ts @@ -0,0 +1,28 @@ +// EXAMPLE +import { + type DomainSchema, + type Schema, + type Template, + generateRandomDomain, +} from "../utils"; + +export function generate(schema: Schema): Template { + const matrixSubdomain = generateRandomDomain(schema); + + const domains: DomainSchema[] = [ + { + host: matrixSubdomain, + port: 6167, + serviceName: "homeserver", + }, + ]; + + const envs = [ + `MATRIX_SUBDOMAIN=${matrixSubdomain} # Replace by your server name`, + ]; + + return { + envs, + domains, + }; +} diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index aa34ecfe..1060a664 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -1209,4 +1209,19 @@ export const templates: TemplateData[] = [ tags: ["api", "backend", "pdf", "tools"], load: () => import("./gotenberg/index").then((m) => m.generate), }, + { + id: "conduit", + name: "Conduit", + version: "v0.9.0", + description: + "Conduit is a simple, fast and reliable chat server powered by Matrix", + logo: "conduit.svg", + links: { + github: "https://gitlab.com/famedly/conduit", + website: "https://conduit.rs/", + docs: "https://docs.conduit.rs/", + }, + tags: ["matrix", "communication"], + load: () => import("./conduit/index").then((m) => m.generate), + }, ];