kopia lustrzana https://github.com/bugout-dev/moonstream
43 wiersze
1.3 KiB
Bash
Executable File
43 wiersze
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Deployment script - intended to run on Moonstream database server
|
|
|
|
# Main
|
|
APP_DIR="${APP_DIR:-/home/ubuntu/moonstream}"
|
|
APP_DB_SERVER_DIR="${APP_DIR}/db/server"
|
|
SECRETS_DIR="${SECRETS_DIR:-/home/ubuntu/moonstream-secrets}"
|
|
SCRIPT_DIR="$(realpath $(dirname $0))"
|
|
SERVICE_FILE="${SCRIPT_DIR}/moonstreamdb.service"
|
|
|
|
set -eu
|
|
|
|
echo
|
|
echo
|
|
echo "Retrieving deployment parameters for GCL Secret Manager"
|
|
mkdir -p "${SECRETS_DIR}"
|
|
echo "" > "${SECRETS_DIR}/app.env"
|
|
SECRET_NAMES=$(gcloud beta secrets list --filter="labels.product=moonstream" --format="get(name)")
|
|
for secret in $SECRET_NAMES
|
|
do
|
|
secret_key=$(echo "${secret}" | awk -F'/' '{print $NF}')
|
|
secret_val=$(gcloud secrets versions access latest --secret="${secret_key}")
|
|
echo "${secret_key}=\"${secret_val}\"" >> "${SECRETS_DIR}/app.env"
|
|
done
|
|
|
|
echo
|
|
echo
|
|
echo "Building executable database server script with Go"
|
|
EXEC_DIR=$(pwd)
|
|
cd "${APP_DB_SERVER_DIR}"
|
|
HOME=/root /usr/local/go/bin/go build -o "${APP_DB_SERVER_DIR}/moonstreamdb" "${APP_DB_SERVER_DIR}/main.go"
|
|
cd "${EXEC_DIR}"
|
|
|
|
echo
|
|
echo
|
|
echo "Replacing existing moonstreamdb service definition with ${SERVICE_FILE}"
|
|
chmod 644 "${SERVICE_FILE}"
|
|
cp "${SERVICE_FILE}" /etc/systemd/system/moonstreamdb.service
|
|
systemctl daemon-reload
|
|
systemctl restart moonstreamdb.service
|
|
systemctl status moonstreamdb.service
|