schon/scripts/Unix/generate-environment-file.sh
Egor fureunoir Gorbunov e7ba7dde0f Features: 1) Update reboot script to improve readability in service status messages; 2) Specify application name as "eVibes" in final confirmation message;
Fixes: 1) Standardize spacing in spinner commands for consistency; 2) Correct alignment of service lifecycle commands;

Extra: Adjust wording for better clarity and uniformity in reboot.sh script.
2025-06-16 14:09:37 +03:00

122 lines
4.3 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
rand_hex() {
openssl rand -hex "$1"
}
prompt_default() {
local name="$1" default="$2" val
read -rp "Enter $name [$default]: " val
printf -v "$name" '%s' "${val:-$default}"
}
prompt_autogen() {
local name="$1" bytes="$2" val
read -rp "Enter $name (leave blank to auto-generate): " val
if [[ -z "$val" ]]; then
printf -v "$name" '%s' "$(rand_hex "$bytes")"
else
printf -v "$name" '%s' "$val"
fi
}
prompt_default EVIBES_PROJECT_NAME "eVibes"
prompt_default EVIBES_FRONTEND_DOMAIN "evibes.com"
prompt_default EVIBES_BASE_DOMAIN "evibes.com"
prompt_default SENTRY_DSN ""
prompt_default DEBUG "1"
prompt_autogen SECRET_KEY 32
prompt_autogen JWT_SIGNING_KEY 64
prompt_default ALLOWED_HOSTS "evibes.com api.evibes.com b2b.evibes.com"
prompt_default CSRF_TRUSTED_ORIGINS "https://evibes.com https://api.evibes.com https://www.evibes.com https://b2b.evibes.com"
prompt_default CORS_ALLOWED_ORIGINS "$CSRF_TRUSTED_ORIGINS"
prompt_default POSTGRES_DB "evibes"
prompt_default POSTGRES_USER "evibes_user"
prompt_autogen POSTGRES_PASSWORD 16
prompt_default DBBACKUP_SFTP_HOST "Your SFTP backup host"
prompt_default DBBACKUP_SFTP_USER "The username to use to log in to that host"
prompt_default DBBACKUP_SFTP_PASS "The password to use to log in to that host"
prompt_autogen ELASTIC_PASSWORD 16
prompt_autogen REDIS_PASSWORD 16
prompt_default PROMETHEUS_USER "evibes"
prompt_autogen PROMETHEUS_PASSWORD 16
prompt_default EMAIL_BACKEND "django.core.mail.backends.smtp.EmailBackend"
prompt_default EMAIL_HOST "smtp.whatever.evibes.com"
prompt_default EMAIL_PORT "465"
prompt_default EMAIL_USE_TLS "0"
prompt_default EMAIL_USE_SSL "1"
prompt_default EMAIL_HOST_USER "your-email-user@whatever.evibes.com"
prompt_default EMAIL_FROM "$EMAIL_HOST_USER"
prompt_default EMAIL_HOST_PASSWORD "SUPERSECRETEMAILHOSTPASSWORD"
prompt_default COMPANY_NAME "eVibes, Inc."
prompt_default COMPANY_PHONE_NUMBER "+888888888888"
prompt_default COMPANY_ADDRESS "The place that does not exist"
prompt_default OPENAI_API_KEY "Haha, really?"
prompt_default ABSTRACT_API_KEY "Haha, really? x2"
prompt_default DEEPL_AUTH_KEY "Haha, really? x3"
if [[ -f .env ]]; then
read -rp ".env already exists and will be overwritten. Press ENTER to continue or Ctrl+C to abort. "
fi
cat > .env <<EOF
EVIBES_PROJECT_NAME="${EVIBES_PROJECT_NAME}"
EVIBES_FRONTEND_DOMAIN="${EVIBES_FRONTEND_DOMAIN}"
EVIBES_BASE_DOMAIN="${EVIBES_BASE_DOMAIN}"
SENTRY_DSN="${SENTRY_DSN}"
DEBUG=${DEBUG}
SECRET_KEY="${SECRET_KEY}"
JWT_SIGNING_KEY="${JWT_SIGNING_KEY}"
ALLOWED_HOSTS="${ALLOWED_HOSTS}"
CSRF_TRUSTED_ORIGINS="${CSRF_TRUSTED_ORIGINS}"
CORS_ALLOWED_ORIGINS="${CORS_ALLOWED_ORIGINS}"
POSTGRES_DB="${POSTGRES_DB}"
POSTGRES_USER="${POSTGRES_USER}"
POSTGRES_PASSWORD="${POSTGRES_PASSWORD}"
DBBACKUP_SFTP_HOST="${DBBACKUP_SFTP_HOST}"
DBBACKUP_SFTP_USER="${DBBACKUP_SFTP_USER}"
DBBACKUP_SFTP_PASS="${DBBACKUP_SFTP_PASS}"
ELASTIC_PASSWORD="${ELASTIC_PASSWORD}"
REDIS_PASSWORD="${REDIS_PASSWORD}"
CELERY_BROKER_URL="redis://:${REDIS_PASSWORD}@redis:6379/0"
CELERY_RESULT_BACKEND="redis://:${REDIS_PASSWORD}@redis:6379/0"
PROMETHEUS_USER="${PROMETHEUS_USER}"
PROMETHEUS_PASSWORD="${PROMETHEUS_PASSWORD}"
EMAIL_BACKEND="${EMAIL_BACKEND}"
EMAIL_HOST="${EMAIL_HOST}"
EMAIL_PORT="${EMAIL_PORT}"
EMAIL_USE_TLS=${EMAIL_USE_TLS}
EMAIL_USE_SSL=${EMAIL_USE_SSL}
EMAIL_HOST_USER="${EMAIL_HOST_USER}"
EMAIL_HOST_PASSWORD="${EMAIL_HOST_PASSWORD}"
EMAIL_FROM="${EMAIL_FROM}"
COMPANY_NAME="${COMPANY_NAME}"
COMPANY_PHONE_NUMBER="${COMPANY_PHONE_NUMBER}"
COMPANY_ADDRESS="${COMPANY_ADDRESS}"
OPENAI_API_KEY="${OPENAI_API_KEY}"
ABSTRACT_API_KEY="${ABSTRACT_API_KEY}"
DEEPL_AUTH_KEY="${DEEPL_AUTH_KEY}"
EOF
echo ".env file generated with fresh values."