2023-04-29 01:32:09 +08:00
|
|
|
#!/bin/bash -e
|
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
configure|upgrade|1|2)
|
|
|
|
|
|
|
|
fc-cache -f
|
|
|
|
|
2024-08-31 06:08:51 +08:00
|
|
|
# make sure postgres can read this directory
|
|
|
|
chmod 755 /usr/share/bbb-graphql-server/ -R
|
|
|
|
|
2023-11-28 22:36:07 +08:00
|
|
|
runuser -u postgres -- psql -c "alter user postgres password 'bbb_graphql'"
|
|
|
|
runuser -u postgres -- psql -c "drop database if exists bbb_graphql with (force)"
|
|
|
|
runuser -u postgres -- psql -c "create database bbb_graphql WITH TEMPLATE template0 LC_COLLATE 'C.UTF-8'"
|
|
|
|
runuser -u postgres -- psql -c "alter database bbb_graphql set timezone to 'UTC'"
|
|
|
|
runuser -u postgres -- psql -U postgres -d bbb_graphql -q -f /usr/share/bbb-graphql-server/bbb_schema.sql --set ON_ERROR_STOP=on
|
2023-07-20 08:31:02 +08:00
|
|
|
|
|
|
|
DATABASE_NAME="hasura_app"
|
2023-11-28 22:36:07 +08:00
|
|
|
DB_EXISTS=$(runuser -u postgres -- psql -U postgres -tAc "SELECT 1 FROM pg_database WHERE datname='$DATABASE_NAME'")
|
2023-07-20 08:31:02 +08:00
|
|
|
if [ "$DB_EXISTS" = '1' ]
|
|
|
|
then
|
|
|
|
echo "Database $DATABASE_NAME already exists"
|
|
|
|
else
|
2023-11-28 22:36:07 +08:00
|
|
|
runuser -u postgres -- psql -c "create database hasura_app"
|
2023-07-20 08:31:02 +08:00
|
|
|
echo "Database $DATABASE_NAME created"
|
|
|
|
fi
|
|
|
|
|
2023-04-29 01:32:09 +08:00
|
|
|
echo "Postgresql configured"
|
|
|
|
|
2024-09-03 02:07:28 +08:00
|
|
|
#Generate a random password to Hasura to improve security
|
|
|
|
if [ ! -f /usr/share/bbb-graphql-server/admin-secret ]; then
|
|
|
|
HASURA_RANDOM_ADM_PASSWORD=$(openssl rand -base64 32 | sed 's/=//g' | sed 's/+//g' | sed 's/\///g')
|
|
|
|
echo "HASURA_GRAPHQL_ADMIN_SECRET=$HASURA_RANDOM_ADM_PASSWORD" > /usr/share/bbb-graphql-server/admin-secret
|
|
|
|
chmod 755 /usr/share/bbb-graphql-server/admin-secret
|
|
|
|
echo "Set a random password to Hasura at /usr/share/bbb-graphql-server/admin-secret"
|
|
|
|
fi
|
2024-07-05 22:26:54 +08:00
|
|
|
|
2024-09-03 02:07:28 +08:00
|
|
|
#Set admin secret for Hasura CLI
|
|
|
|
HASURA_ADM_PASSWORD=$(grep '^HASURA_GRAPHQL_ADMIN_SECRET=' /usr/share/bbb-graphql-server/admin-secret | cut -d '=' -f 2)
|
|
|
|
sed -i "s/^admin_secret: .*/admin_secret: $HASURA_ADM_PASSWORD/g" /usr/share/bbb-graphql-server/config.yaml
|
2024-05-08 01:29:35 +08:00
|
|
|
|
2023-08-15 03:37:22 +08:00
|
|
|
if [ ! -f /.dockerenv ]; then
|
|
|
|
systemctl enable bbb-graphql-server.service
|
|
|
|
systemctl daemon-reload
|
2024-07-12 22:53:21 +08:00
|
|
|
restartService bbb-graphql-server || echo "bbb-graphql-server service could not be registered or started"
|
2023-09-15 23:51:47 +08:00
|
|
|
|
|
|
|
#Check if Hasura is ready before applying metadata
|
2024-05-07 22:39:34 +08:00
|
|
|
HASURA_PORT=8085
|
2023-09-15 23:51:47 +08:00
|
|
|
while ! netstat -tuln | grep ":$HASURA_PORT " > /dev/null; do
|
|
|
|
echo "Waiting for Hasura's port ($HASURA_PORT) to be ready..."
|
|
|
|
sleep 1
|
|
|
|
done
|
2023-08-15 04:01:52 +08:00
|
|
|
|
|
|
|
# Apply BBB metadata in Hasura
|
|
|
|
cd /usr/share/bbb-graphql-server
|
2024-09-03 02:03:08 +08:00
|
|
|
timeout 15s /usr/local/bin/hasura metadata apply --skip-update-check
|
2023-08-15 04:01:52 +08:00
|
|
|
cd ..
|
|
|
|
rm -rf /usr/share/bbb-graphql-server/metadata
|
2023-08-15 03:37:22 +08:00
|
|
|
fi
|
2023-07-18 04:26:07 +08:00
|
|
|
|
2024-09-03 02:07:28 +08:00
|
|
|
echo "Graphql-server after-install finished"
|
|
|
|
|
2023-04-29 01:32:09 +08:00
|
|
|
;;
|
|
|
|
|
|
|
|
abort-upgrade|abort-remove|abort-deconfigure)
|
|
|
|
;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
echo "postinst called with unknown argument \`$1'" >&2
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|