self-hosted/snibox/bin/setup
Lorenzo Carbonell e9fec2c55e binary
2022-10-03 20:34:39 +02:00

57 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
set -e
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[0;33m'
NC='\033[0m'
DEFAULT_SECRET='paste_your_key'
function report_status() {
if [ $? -eq 0 ]
then
echo -e "${GREEN}Done${NC}"
else
echo -e "${RED}Unable to complete task${NC}"
exit 1
fi
}
echo -e "Copy .env.sample to .env:"
if [ ! -f .env ]
then
cp .env.sample .env
report_status
else
echo -e "${GREEN}File .env already exists${NC}"
fi
echo -e "\nPull images:"
docker-compose pull
report_status
echo -e "\nInject secret key:"
if grep -Rq "$DEFAULT_SECRET" .env
then
secret=$(docker-compose run --rm --no-deps backend ./bin/rake secret)
echo "$secret"
# based on https://stackoverflow.com/a/22084103
sed -i.bak "s/$DEFAULT_SECRET/$secret/" .env
rm .env.bak
report_status
else
echo -e "${GREEN}Personal secret key exists${NC}"
fi
echo -e "\nCreate database:"
docker-compose run --rm backend ./bin/rake db:create
report_status
echo -e "\nRun migrations:"
docker-compose run --rm backend ./bin/rake db:migrate
report_status
echo -e "\n${GREEN}Setup completed!${NC}"