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), + }, ];