refactor(scripts): parameterize hostnames in deployment scripts
- setup-host.sh: add SILO_DB_HOST and SILO_MINIO_HOST env var overrides, update Go version from 1.23 to 1.24, expand generated silod.env template with session secret and admin password fields - deploy.sh: add SILO_DEPLOY_TARGET and SILO_DB_HOST env var overrides for target host and database host - setup-ipa-nginx.sh: replace hardcoded hostname with SILO_HOSTNAME env var (default: silo.example.internal), parameterize SILO_PORT, use variable substitution in nginx config template All scripts retain backward-compatible defaults.
This commit is contained in:
@@ -1,18 +1,23 @@
|
||||
#!/bin/bash
|
||||
# Deploy Silo to silo.example.internal
|
||||
# Deploy Silo to a target host
|
||||
#
|
||||
# Usage: ./scripts/deploy.sh [host]
|
||||
# host defaults to silo.example.internal
|
||||
# host defaults to SILO_DEPLOY_TARGET env var, or silo.example.internal
|
||||
#
|
||||
# Prerequisites:
|
||||
# - SSH access to the target host
|
||||
# - /etc/silo/silod.env must exist on target with credentials filled in
|
||||
# - PostgreSQL reachable from target at psql.example.internal
|
||||
# - MinIO reachable from target at minio.example.internal
|
||||
# - PostgreSQL reachable from target (set SILO_DB_HOST to override)
|
||||
# - MinIO reachable from target (set SILO_MINIO_HOST to override)
|
||||
#
|
||||
# Environment variables:
|
||||
# SILO_DEPLOY_TARGET - target host (default: silo.example.internal)
|
||||
# SILO_DB_HOST - PostgreSQL host (default: psql.example.internal)
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
TARGET="${1:-silo.example.internal}"
|
||||
TARGET="${1:-${SILO_DEPLOY_TARGET:-silo.example.internal}}"
|
||||
DB_HOST="${SILO_DB_HOST:-psql.example.internal}"
|
||||
DEPLOY_DIR="/opt/silo"
|
||||
CONFIG_DIR="/etc/silo"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
@@ -104,7 +109,7 @@ echo " Files installed to $DEPLOY_DIR"
|
||||
REMOTE
|
||||
|
||||
echo "[6/6] Running migrations and starting service..."
|
||||
ssh "$TARGET" bash -s <<'REMOTE'
|
||||
ssh "$TARGET" DB_HOST="$DB_HOST" bash -s <<'REMOTE'
|
||||
set -euo pipefail
|
||||
|
||||
DEPLOY_DIR="/opt/silo"
|
||||
@@ -123,14 +128,14 @@ if command -v psql &>/dev/null && [ -n "${SILO_DB_PASSWORD:-}" ]; then
|
||||
for f in "$DEPLOY_DIR/migrations/"*.sql; do
|
||||
echo " $(basename "$f")"
|
||||
PGPASSWORD="$SILO_DB_PASSWORD" psql \
|
||||
-h psql.example.internal -p 5432 \
|
||||
-h "$DB_HOST" -p 5432 \
|
||||
-U silo -d silo \
|
||||
-f "$f" -q 2>&1 | grep -v "already exists" || true
|
||||
done
|
||||
echo " Migrations complete."
|
||||
else
|
||||
echo " WARNING: psql not available or SILO_DB_PASSWORD not set, skipping migrations."
|
||||
echo " Run migrations manually: PGPASSWORD=... psql -h psql.example.internal -U silo -d silo -f /opt/silo/migrations/NNN_name.sql"
|
||||
echo " Run migrations manually: PGPASSWORD=... psql -h $DB_HOST -U silo -d silo -f /opt/silo/migrations/NNN_name.sql"
|
||||
fi
|
||||
|
||||
# Start service
|
||||
|
||||
Reference in New Issue
Block a user