diff --git a/apps/dokploy/public/templates/conduwuit.svg b/apps/dokploy/public/templates/conduwuit.svg new file mode 100644 index 00000000..162a3d9e --- /dev/null +++ b/apps/dokploy/public/templates/conduwuit.svg @@ -0,0 +1,37 @@ + + + + + + + diff --git a/apps/dokploy/templates/conduwuit/docker-compose.yml b/apps/dokploy/templates/conduwuit/docker-compose.yml new file mode 100644 index 00000000..7945d6c9 --- /dev/null +++ b/apps/dokploy/templates/conduwuit/docker-compose.yml @@ -0,0 +1,48 @@ +# conduwuit +# https://conduwuit.puppyirl.gay/deploying/docker-compose.yml + +services: + homeserver: + image: girlbossceo/conduwuit:latest + restart: unless-stopped + ports: + - 8448:6167 + volumes: + - db:/var/lib/conduwuit + #- ./conduwuit.toml:/etc/conduwuit.toml + environment: + # Edit this in your Dokploy Environment + CONDUWUIT_SERVER_NAME: ${CONDUWUIT_SERVER_NAME} + + CONDUWUIT_DATABASE_PATH: /var/lib/conduwuit + CONDUWUIT_PORT: 6167 + CONDUWUIT_MAX_REQUEST_SIZE: 20000000 # in bytes, ~20 MB + + CONDUWUIT_ALLOW_REGISTRATION: 'true' + CONDUWUIT_REGISTRATION_TOKEN: ${CONDUWUIT_REGISTRATION_TOKEN} + + CONDUWUIT_ALLOW_FEDERATION: 'true' + CONDUWUIT_ALLOW_CHECK_FOR_UPDATES: 'true' + CONDUWUIT_TRUSTED_SERVERS: '["matrix.org"]' + #CONDUWUIT_LOG: warn,state_res=warn + CONDUWUIT_ADDRESS: 0.0.0.0 + + # Uncomment if you mapped config toml in volumes + #CONDUWUIT_CONFIG: '/etc/conduwuit.toml' + + ### Uncomment if you want to use your own Element-Web App. + ### Note: You need to provide a config.json for Element and you also need a second + ### Domain or Subdomain for the communication between Element and conduwuit + ### Config-Docs: https://github.com/vector-im/element-web/blob/develop/docs/config.md + # element-web: + # image: vectorim/element-web:latest + # restart: unless-stopped + # ports: + # - 8009:80 + # volumes: + # - ./element_config.json:/app/config.json + # depends_on: + # - homeserver + +volumes: + db: diff --git a/apps/dokploy/templates/conduwuit/index.ts b/apps/dokploy/templates/conduwuit/index.ts new file mode 100644 index 00000000..9d9e9856 --- /dev/null +++ b/apps/dokploy/templates/conduwuit/index.ts @@ -0,0 +1,30 @@ +import { + type DomainSchema, + type Schema, + type Template, + generatePassword, + generateRandomDomain, +} from "../utils"; + +export function generate(schema: Schema): Template { + const matrixSubdomain = generateRandomDomain(schema); + const registrationToken = generatePassword(20); + + const domains: DomainSchema[] = [ + { + host: matrixSubdomain, + port: 6167, + serviceName: "homeserver", + }, + ]; + + const envs = [ + `CONDUWUIT_SERVER_NAME=${matrixSubdomain}`, + `CONDUWUIT_REGISTRATION_TOKEN=${registrationToken}`, + ]; + + return { + envs, + domains, + }; +} diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index a0fbdb1b..41b2c1a2 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -1239,4 +1239,19 @@ export const templates: TemplateData[] = [ tags: ["matrix", "communication"], load: () => import("./conduit/index").then((m) => m.generate), }, + { + id: "conduwuit", + name: "Conduwuit", + version: "latest", + description: + "Well-maintained, featureful Matrix chat homeserver (fork of Conduit)", + logo: "conduwuit.svg", + links: { + github: "https://github.com/girlbossceo/conduwuit", + website: "https://conduwuit.puppyirl.gay", + docs: "https://conduwuit.puppyirl.gay/configuration.html", + }, + tags: ["matrix", "communication", "chat", "server", "backend"], + load: () => import("./conduwuit/index").then((m) => m.generate), + }, ];