gnu-social/bin/configure

77 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
git_dir=$PWD
while [ ! -d .git ]; do
git_dir=$(dirname "${git_dir}")
done
cd "${git_dir}" || exit
if [ ! -f ./docker/bootstrap/bootstrap.env ]; then
printf "bootstrap.env missing! Please run the bootstrap_certificates script.\n"
exit 1
fi
. ./docker/bootstrap/bootstrap.env
while :; do
printf "DBMS (postgres|mariadb): " && read -r dbms
[ $(echo "${dbms}" | grep -E 'postgres|mariadb') ] && break
done
printf "Social database name: " && read -r db
[ "${dbms}" = 'mariadb' ] && printf "Database user: " && read -r user
printf "Database password: " && read -r password
printf "Sitename: " && read -r sitename
printf "Admin nickname: " && read -r admin_nick
printf "Admin password: " && read -r admin_password
while :; do
printf "Site profile (public|private|community|single_user): " && read -r profile
[ $(echo "${profile}" | grep -E 'public|private|community|single_user') ] && break
done
mkdir -p ./docker/db
if [ "${dbms}" = 'mariadb' ]; then
printf "DB root password: " && read -r db_root_password
cat > ./docker/db/db.env <<EOF
DBMS=${dbms}
MYSQL_ROOT_PASSWORD=${db_root_password}
EOF
database_url="DATABASE_URL=mysql://${user}:${password}@db:3306/${db}"
else
cat > ./docker/db/db.env <<EOF
DBMS=${dbms}
POSTGRES_USER=postgres
POSTGRES_PASSWORD=${password}
EOF
user='postgres'
database_url="DATABASE_URL=postgresql://${user}:${password}@db:5432/${db}"
fi
echo "${database_url}" >> .env.local
printf "Mailer dsn: " && read -r mailer_dsn
mkdir -p ./docker/social
cat > ./docker/social/social.env <<EOF
SOCIAL_DBMS="${dbms}"
SOCIAL_DB="${db}"
SOCIAL_USER="${user}"
SOCIAL_PASSWORD="${password}"
SOCIAL_DOMAIN="${domain}"
SOCIAL_SITENAME="${sitename}"
SOCIAL_ADMIN_NICK="${admin_nick}"
SOCIAL_ADMIN_PASSWORD="${admin_password}"
SOCIAL_ADMIN_EMAIL="${email}"
SOCIAL_SITE_PROFILE="${profile}"
MAILER_DSN="${mailer_dsn}"
EOF