2
0
Files
bot/packages/cloudron/start.sh
Baptiste Arnaud 1e9c4bcb9a 📦 Add Cloudron package (#550)
Closes #30
2023-06-14 08:59:38 +02:00

53 lines
1.5 KiB
Bash

#!/bin/bash
set -eu
chown -R cloudron:cloudron /app/data
echo "Waiting for postgres to become ready...."
PG_READY="pg_isready -h $CLOUDRON_POSTGRESQL_HOST -p $CLOUDRON_POSTGRESQL_PORT"
until $PG_READY
do
sleep 2;
done
echo "Database ready to accept connections."
if [[ ! -f "/app/data/env.sh" ]]; then
echo "Creating env.sh file at /app/data/env.sh"
cp ./env.default.sh /app/data/env.sh
else
echo "Skipping env.sh file creation. /app/data/env.sh exists."
fi
echo "Sourcing env.sh file..."
source /app/data/env.sh
echo 'Injecting environment variables into frontend...'
ENVSH_NO_RECREATE=true ENVSH_ENV=/run/.env.docker ENVSH_OUTPUT=/run/builder_runtime_env.js /run/inject-runtime-env.sh
ENVSH_NO_RECREATE=true ENVSH_ENV=/run/.env.docker ENVSH_OUTPUT=/run/viewer_runtime_env.js /run/inject-runtime-env.sh
echo 'Checking if required environment variables are set and valid...'
if [ -z "$DATABASE_URL" ]; then
echo "DATABASE_URL is not set. Exiting..."
exit 1
fi
if [ ${#ENCRYPTION_SECRET} -ne 32 ] && [ ${#ENCRYPTION_SECRET} -ne 80 ]; then
echo "ENCRYPTION_SECRET is not 32 characters long. Exiting... (To generate a valid secret: https://docs.typebot.io/self-hosting/docker#2-add-the-required-configuration)"
exit 1
fi
if [ -z "$NEXTAUTH_URL" ]; then
echo "NEXTAUTH_URL is not set. Exiting..."
exit 1
fi
./builder/node_modules/.bin/prisma migrate deploy --schema=builder/packages/prisma/postgresql/schema.prisma;
echo "==> Starting supervisor"
exec /usr/bin/supervisord --configuration /etc/supervisor/supervisord.conf