allianceauth/docker/scripts/prepare-env.sh

48 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
set -e
FILE=./.env
if test -f "$FILE"; then
echo "$FILE exists. If you wish to recreate your auth environment variables (which will break everything), delete the .env file."
exit;
fi
cp .env.example .env
# Autogenerate 24 character hexadecimal strings for all passwords + secret key
sed -i.bak 's/%PROXY_MYSQL_PASS%/'"$(openssl rand -hex 24)"'/g' .env
sed -i.bak 's/%PROXY_MYSQL_PASS_ROOT%/'"$(openssl rand -hex 24)"'/g' .env
sed -i.bak 's/%GRAFANA_DB_PASSWORD%/'"$(openssl rand -hex 24)"'/g' .env
sed -i.bak 's/%GF_SECURITY_ADMIN_PASSWORD%/'"$(openssl rand -hex 24)"'/g' .env
sed -i.bak 's/%AA_SECRET_KEY%/'"$(openssl rand -hex 24)"'/g' .env
sed -i.bak 's/%AA_DB_PASSWORD%/'"$(openssl rand -hex 24)"'/g' .env
sed -i.bak 's/%AA_DB_ROOT_PASSWORD%/'"$(openssl rand -hex 24)"'/g' .env
#Prompts to collect user information
IFS= read -p "Enter the display name for your auth instance: " sitename
sed -i.bak 's/%AA_SITENAME%/'\""${sitename}"\"'/g' .env
read -p "Enter the base domain: " domain
sed -i.bak 's/%DOMAIN%/'${domain}'/g' .env
read -p "Enter the subdomain for auth: " subdomain
sed -i.bak 's/%AUTH_SUBDOMAIN%/'${subdomain}'/g' .env
read -p "Enter an email address. This is requested by CCP if there are any issues with your ESI application, and is not used in any other way by AllianceAuth: " email
sed -i.bak 's/%ESI_USER_CONTACT_EMAIL%/'${email}'/g' .env
echo "Visit https://developers.eveonline.com/ and create an application with the callback url https://${subdomain}.${domain}/sso/callback"
read -p "Enter ESI Client ID: " clientid
sed -i.bak 's/%ESI_SSO_CLIENT_ID%/'${clientid}'/g' .env
read -p "Enter ESI Client Secret: " clientsecret
sed -i.bak 's/%ESI_SSO_CLIENT_SECRET%/'${clientsecret}'/g' .env
source ./.env
cp setup.base.sql setup.sql
# Create init SQL file for auth database with users
sed -i.bak 's/authpass/'"$AA_DB_PASSWORD"'/g' setup.sql
sed -i.bak 's/grafanapass/'"$GRAFANA_DB_PASSWORD"'/g' setup.sql
rm *.bak
rm .env.bak