#!/bin/bash # Generate DB password DB_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32) # Replace the default password in docker-compose.yml sed -i "s/POSTGRES_PASSWORD: itsasecret/POSTGRES_PASSWORD: $DB_PASSWORD/" docker-compose.yml # Prompt for domain input read -p "Enter your domain (e.g., example.com): " DOMAIN if [[ -z "$DOMAIN" ]]; then echo "Domain cannot be empty. Exiting." exit 1 fi # Generate private keys echo "Generating private keys..." docker run --rm --entrypoint="/usr/bin/generate-keys" \ -v $(pwd)/config/dendrite:/mnt \ matrixdotorg/dendrite-monolith:latest \ -private-key /mnt/matrix_key.pem # Generate configuration echo "Generating configuration with domain: $DOMAIN..." docker run --rm --entrypoint="/bin/sh" \ -v $(pwd)/config/dendrite:/mnt \ matrixdotorg/dendrite-monolith:latest \ -c "/usr/bin/generate-config \ -dir /var/dendrite/ \ -db postgres://dendrite:$DB_PASSWORD@postgres/dendrite?sslmode=disable \ -server $DOMAIN > /mnt/dendrite.yaml" # Generate and display the registration shared secret SHARED_SECRET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 50) echo echo "Registration shared secret: $SHARED_SECRET" echo "Database URI: postgres://dendrite:$DB_PASSWORD@postgres/dendrite?sslmode=disable" echo echo "Make sure to save this information securely!"