ipld-eth-server/dockerfiles/seed_node/startup_script.sh

38 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Runs the migrations and starts the syncPublishScreenAndServe service
# Exit if the variable tests fail
set -e
# Check the database variables are set
test $DATABASE_NAME
test $DATABASE_HOSTNAME
test $DATABASE_PORT
test $DATABASE_USER
test $DATABASE_PASSWORD
# Export our database variables so that the IPFS Postgres plugin can use them
export IPFS_PGHOST=$DATABASE_HOSTNAME
export IPFS_PGUSER=$DATABASE_USER
export IPFS_PGDATABASE=$DATABASE_NAME
export IPFS_PGPORT=$DATABASE_PORT
export IPFS_PGPASSWORD=$DATABASE_PASSWORD
# Construct the connection string for postgres
CONNECT_STRING=postgresql://$DATABASE_USER:$DATABASE_PASSWORD@$DATABASE_HOSTNAME:$DATABASE_PORT/$DATABASE_NAME?sslmode=disable
echo "Connecting with: $CONNECT_STRING"
set +e
# Run the DB migrations
./goose postgres "$CONNECT_STRING" up
if [ $? -eq 0 ]; then
# Fire up the services
ipfs ipfs init --profile=postgresds &
geth --statediff --statediff.streamblock --ws --syncmode=full &
./vulcanizedb syncPublishScreenAndServe --config environments/seedNodeStaging.toml &
else
echo "Could not run migrations. Are the database details correct?"
fi
wait