refactor: rename SolaceScanScout to Solace and update related configurations
- Updated branding from "SolaceScanScout" to "Solace" across various files including deployment scripts, API responses, and documentation. - Changed default base URL for Playwright tests and updated security headers to reflect the new branding. - Enhanced README and API documentation to include new authentication endpoints and product access details. This refactor aligns the project branding and improves clarity in the API documentation.
This commit is contained in:
159
scripts/install-rpc-access-gate-nginx-via-ssh.sh
Executable file
159
scripts/install-rpc-access-gate-nginx-via-ssh.sh
Executable file
@@ -0,0 +1,159 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
RENDER_SCRIPT="$SCRIPT_DIR/render-rpc-access-gate-nginx.sh"
|
||||
|
||||
PRODUCT_SLUG=""
|
||||
SERVER_NAME=""
|
||||
SSH_HOST=""
|
||||
REMOTE_PATH=""
|
||||
REMOTE_TEST_CMD="nginx -t"
|
||||
REMOTE_RELOAD_CMD="systemctl reload nginx"
|
||||
INTERNAL_SECRET="${ACCESS_INTERNAL_SECRET:-}"
|
||||
VALIDATOR_URL="http://127.0.0.1:8081/api/v1/access/internal/validate-key"
|
||||
UPSTREAM_URL=""
|
||||
APPLY=0
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Safely render and install an explorer-managed RPC edge gate onto a remote nginx host.
|
||||
|
||||
Default mode is plan-only. Use --apply to copy the rendered config, run nginx -t,
|
||||
and reload nginx over SSH.
|
||||
|
||||
Usage:
|
||||
bash explorer-monorepo/scripts/install-rpc-access-gate-nginx-via-ssh.sh \
|
||||
--product thirdweb-rpc \
|
||||
--server-name thirdweb-rpc.example.org \
|
||||
--ssh-host root@192.168.11.217 \
|
||||
--internal-secret "$ACCESS_INTERNAL_SECRET" \
|
||||
[--remote-path /etc/nginx/conf.d/thirdweb-rpc-gated.conf] \
|
||||
[--validator-url http://127.0.0.1:8081/api/v1/access/internal/validate-key] \
|
||||
[--upstream http://192.168.11.217:8545] \
|
||||
[--apply]
|
||||
EOF
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--product)
|
||||
PRODUCT_SLUG="$2"
|
||||
shift 2
|
||||
;;
|
||||
--server-name)
|
||||
SERVER_NAME="$2"
|
||||
shift 2
|
||||
;;
|
||||
--ssh-host)
|
||||
SSH_HOST="$2"
|
||||
shift 2
|
||||
;;
|
||||
--remote-path)
|
||||
REMOTE_PATH="$2"
|
||||
shift 2
|
||||
;;
|
||||
--internal-secret)
|
||||
INTERNAL_SECRET="$2"
|
||||
shift 2
|
||||
;;
|
||||
--validator-url)
|
||||
VALIDATOR_URL="$2"
|
||||
shift 2
|
||||
;;
|
||||
--upstream)
|
||||
UPSTREAM_URL="$2"
|
||||
shift 2
|
||||
;;
|
||||
--remote-test-cmd)
|
||||
REMOTE_TEST_CMD="$2"
|
||||
shift 2
|
||||
;;
|
||||
--remote-reload-cmd)
|
||||
REMOTE_RELOAD_CMD="$2"
|
||||
shift 2
|
||||
;;
|
||||
--apply)
|
||||
APPLY=1
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown argument: $1" >&2
|
||||
usage >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$PRODUCT_SLUG" || -z "$SERVER_NAME" || -z "$SSH_HOST" ]]; then
|
||||
echo "ERROR: --product, --server-name, and --ssh-host are required." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$INTERNAL_SECRET" ]]; then
|
||||
echo "ERROR: --internal-secret is required. Set ACCESS_INTERNAL_SECRET or pass --internal-secret." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REMOTE_PATH="${REMOTE_PATH:-/etc/nginx/conf.d/${PRODUCT_SLUG}-gated.conf}"
|
||||
TMP_RENDER="$(mktemp)"
|
||||
trap 'rm -f "$TMP_RENDER"' EXIT
|
||||
|
||||
render_args=(
|
||||
--product "$PRODUCT_SLUG"
|
||||
--server-name "$SERVER_NAME"
|
||||
--internal-secret "$INTERNAL_SECRET"
|
||||
--validator-url "$VALIDATOR_URL"
|
||||
--output "$TMP_RENDER"
|
||||
)
|
||||
|
||||
if [[ -n "$UPSTREAM_URL" ]]; then
|
||||
render_args+=(--upstream "$UPSTREAM_URL")
|
||||
fi
|
||||
|
||||
bash "$RENDER_SCRIPT" "${render_args[@]}" >/dev/null
|
||||
|
||||
echo "== RPC access gate installer =="
|
||||
echo "Product: $PRODUCT_SLUG"
|
||||
echo "Server name: $SERVER_NAME"
|
||||
echo "SSH host: $SSH_HOST"
|
||||
echo "Remote path: $REMOTE_PATH"
|
||||
echo "Validator: $VALIDATOR_URL"
|
||||
if [[ -n "$UPSTREAM_URL" ]]; then
|
||||
echo "Upstream: $UPSTREAM_URL"
|
||||
fi
|
||||
echo
|
||||
echo "-- Rendered config preview --"
|
||||
sed -n '1,220p' "$TMP_RENDER"
|
||||
echo
|
||||
|
||||
if [[ "$APPLY" -ne 1 ]]; then
|
||||
cat <<EOF
|
||||
Plan only. No remote changes were made.
|
||||
|
||||
To apply:
|
||||
bash explorer-monorepo/scripts/install-rpc-access-gate-nginx-via-ssh.sh \\
|
||||
--product "$PRODUCT_SLUG" \\
|
||||
--server-name "$SERVER_NAME" \\
|
||||
--ssh-host "$SSH_HOST" \\
|
||||
--internal-secret '***' \\
|
||||
--apply
|
||||
EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Copying rendered config to $SSH_HOST:$REMOTE_PATH ..."
|
||||
scp "$TMP_RENDER" "$SSH_HOST:$REMOTE_PATH"
|
||||
|
||||
echo "Testing nginx config on $SSH_HOST ..."
|
||||
ssh "$SSH_HOST" "$REMOTE_TEST_CMD"
|
||||
|
||||
echo "Reloading nginx on $SSH_HOST ..."
|
||||
ssh "$SSH_HOST" "$REMOTE_RELOAD_CMD"
|
||||
|
||||
echo "Install complete."
|
||||
Reference in New Issue
Block a user