#!/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 <<EOF > $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."