#!/bin/bash ENV_FILE=".env" # Function to generate a random alphanumeric password of a given length generate_password() { tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c "${1:-12}" } # Function to prompt for a value if not set as a parameter prompt_for_value() { read -p "$1: " value echo "$value" } # Set $PROJECTNAME if not provided as a parameter PROJECTNAME=${1:-$(prompt_for_value "Enter PROJECTNAME")} cat < $ENV_FILE # Docker NETWORKNAME=admin_web # MySQL MYSQL_ROOT_PASSWORD=$(generate_password) MYSQL_USER=u_$(echo $PROJECTNAME | tr '[:upper:]' '[:lower:]') MYSQL_PASSWORD=$(generate_password) MYSQL_DATABASE=db_$(echo $PROJECTNAME | tr '[:upper:]' '[:lower:]') # GITEA GITEA_API_URL=REPLACEME ACCESS_TOKEN=REPLACEME # Joomla EMAIL=noreply@$(echo $PROJECTNAME | tr '[:upper:]' '[:lower:]').com JOOMLA_USER="$PROJECTNAME" JOOMLA_USERNAME=admin # Passwords must be 12 characters long (admin-password) JOOMLA_PASSWORD=$(generate_password) # SMTP SMTP_USER=null SMTP_PASS=null SMTP_HOST='mailhog' SMTP_SECURITY='None' SMTP_PORT=1025 EOF rm $0 echo "Generated $ENV_FILE with randomly generated passwords and customized PROJECTNAME."