You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.2 KiB
49 lines
1.2 KiB
4 years ago
|
#!/bin/sh
|
||
|
|
||
|
check_available() {
|
||
|
# Function to check if a program is installed
|
||
|
which $1 &> /dev/null
|
||
|
|
||
|
if [ $? = 1 ]; then
|
||
|
echo "$1 is not available, please install it before running the script"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
gen_password() {
|
||
|
check_available openssl
|
||
|
openssl rand -base64 32
|
||
|
}
|
||
|
|
||
|
read -p "Redis password: (press enter to randomize): " redis_password
|
||
|
redis_password=${redis_password:-`gen_password`}
|
||
|
|
||
|
read -p "Session secret: (press enter to randomize): " session_secret
|
||
|
session_secret=${session_secret:-`gen_password`}
|
||
|
|
||
|
read -p "MongoDB password: (press enter to randomize): " mongo_password
|
||
|
mongo_password=${mongo_password:-`gen_password`}
|
||
|
|
||
|
|
||
|
if [ ! -f "./.env" ]; then
|
||
|
echo "Copying ./env.example to ./.env"
|
||
|
cp ./env.example ./.env
|
||
|
fi
|
||
|
|
||
|
sed -i -e "s#REDIS_PASSWORD=.*#REDIS_PASSWORD=${redis_password}#g" \
|
||
|
"$(dirname "$0")/.env"
|
||
|
|
||
|
sed -i -e "s#SESSION_SECRET=.*#SESSION_SECRET=${session_secret}#g" \
|
||
|
"$(dirname "$0")/.env"
|
||
|
|
||
|
sed -i -e "s#MONGODB_PASSWORD=.*#MONGODB_PASSWORD=${mongo_password}#g" \
|
||
|
"$(dirname "$0")/.env"
|
||
|
|
||
|
read -p "Start docker containers? (requires docker-compose) [Y/n] " start_docker
|
||
|
start_docker=${start_docker:-Y}
|
||
|
|
||
|
if [[ $start_docker =~ [yY] ]]; then
|
||
|
check_available docker-compose
|
||
|
sudo docker-compose up -d
|
||
|
fi
|