63 lines
2.1 KiB
Bash
Executable File
63 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "${SCRIPT_DIR}/functions.sh"
|
|
resolve_paths
|
|
|
|
main() {
|
|
> "$ENV_FILE"
|
|
|
|
read -r -p "Base Domain (e.g. example.org) [example.org]: " DOMAIN_INPUT
|
|
DOMAIN="${DOMAIN_INPUT:-example.org}"
|
|
auto_var "DOMAIN" $DOMAIN "no"
|
|
log_info "Base Domain set to: ${DOMAIN}"
|
|
|
|
read -r -p "Auto-generate secure defaults for remaining fields? [Y/n]: " GEN_INPUT
|
|
GEN_INPUT="${GEN_INPUT:-Y}"
|
|
|
|
if [[ "$GEN_INPUT" =~ ^[Yy]$ ]]; then
|
|
log_info "Generating secure defaults..."
|
|
|
|
auto_var "USER_ID" "1000" "no"
|
|
auto_var "GROUP_ID" "1000" "no"
|
|
auto_var "VOLUME_PATH" "./matrix" "no"
|
|
auto_var "COUNTRY" "GB" "no"
|
|
auto_var "PG_USER" "postgres" "no"
|
|
auto_var "PG_PASSWORD" "generated" "yes"
|
|
auto_var "PG_USER_MATRIX" "matrix" "no"
|
|
auto_var "PG_DB_MATRIX" "synapse" "no"
|
|
auto_var "PG_PASSWORD_MATRIX" "generated" "yes"
|
|
auto_var "PG_USER_MAS" "mas" "no"
|
|
auto_var "PG_DB_MAS" "auth" "no"
|
|
auto_var "PG_PASSWORD_MAS" "generated" "yes"
|
|
|
|
log_info "All fields auto-generated."
|
|
else
|
|
log_info "Manual entry mode."
|
|
|
|
|
|
|
|
|
|
|
|
prompt_var "USER_ID" "Docker UserId" "1000" "no"
|
|
prompt_var "GROUP_ID" "Docker GroupID" "1000" "no"
|
|
prompt_var "VOLUME_PATH" "Install directory" "./matrix" "no"
|
|
prompt_var "COUNTRY" "Country Code (e.g. GB)" "GB" "no"
|
|
prompt_var "PG_USER" "PostgreSQL Superuser" "postgres" "no"
|
|
prompt_var "PG_PASSWORD" "PostgreSQL Superuser Password" "generated" "yes"
|
|
prompt_var "PG_USER_MATRIX" "Synapse Database User" "matrix" "no"
|
|
prompt_var "PG_DB_MATRIX" "Synapse Database Name" "synapse" "no"
|
|
prompt_var "PG_PASSWORD_MATRIX" "Synapse Database Password" "generated" "yes"
|
|
prompt_var "PG_USER_MAS" "MAS Database User" "mas" "no"
|
|
prompt_var "PG_DB_MAS" "MAS Database Name" "auth" "no"
|
|
prompt_var "PG_PASSWORD_MAS" "MAS Database Password" "generated" "yes"
|
|
|
|
chmod 600 "$ENV_FILE"
|
|
|
|
log_info "Environment file created: $ENV_FILE"
|
|
log_warn "Add $ENV_FILE to .gitignore and backup securely"
|
|
}
|
|
|
|
main "$@"
|