argus/src/sys/swarm_tests/scripts/01_server_up.sh

40 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
REPO_ROOT="$(cd "$ROOT/../../.." && pwd)"
ENV_FILE="$ROOT/.env"
# load UID/GID from repo config first (so they take precedence over any stale .env values)
if [[ -f "$REPO_ROOT/scripts/common/build_user.sh" ]]; then
# shellcheck disable=SC1091
source "$REPO_ROOT/scripts/common/build_user.sh" 2>/dev/null || true
if declare -f load_build_user >/dev/null 2>&1; then
load_build_user
fi
fi
set -a; source "$ENV_FILE"; set +a
PROJECT="${SERVER_PROJECT:-argus-swarm-server}"
COMPOSE_FILE="$ROOT/docker-compose.server.yml"
echo "[SERVER] starting compose project: $PROJECT"
docker compose -p "$PROJECT" -f "$COMPOSE_FILE" up -d
echo "[SERVER] containers:"; docker compose -p "$PROJECT" -f "$COMPOSE_FILE" ps
# Optional post-start permission alignment (disabled by default). Enable with SWARM_FIX_PERMS=1
if [[ "${SWARM_FIX_PERMS:-0}" == "1" ]]; then
echo "[SERVER] aligning permissions in containers (best-effort)"
for c in argus-master-sys argus-prometheus argus-grafana argus-ftp argus-es-sys argus-kibana-sys argus-web-frontend argus-web-proxy argus-alertmanager; do
docker exec "$c" sh -lc 'mkdir -p /private/argus && chmod -R 777 /private/argus' 2>/dev/null || true
done
echo "[SERVER] restarting selected supervised programs to pick up new permissions"
docker exec argus-prometheus sh -lc 'supervisorctl restart prometheus targets-updater >/dev/null 2>&1 || true' || true
docker exec argus-grafana sh -lc 'rm -f /private/argus/etc/grafana.metric.argus.com 2>/dev/null || true; supervisorctl restart grafana >/dev/null 2>&1 || true' || true
docker exec argus-es-sys sh -lc 'supervisorctl restart elasticsearch >/dev/null 2>&1 || true' || true
docker exec argus-kibana-sys sh -lc 'supervisorctl restart kibana >/dev/null 2>&1 || true' || true
fi
echo "[SERVER] done"