#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PKG_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" if [[ $EUID -ne 0 ]]; then echo "[PREPARE] This script requires root (sudo)." >&2 echo " Try: sudo $0" >&2 exit 1 fi ENV_FILE="$PKG_ROOT/compose/.env" [[ -f "$ENV_FILE" ]] && set -a && source "$ENV_FILE" && set +a UIDV="${ARGUS_BUILD_UID:-1000}"; GIDV="${ARGUS_BUILD_GID:-1000}" echo "[PREPARE] Using owner ${UIDV}:${GIDV}" # Core etc and service data dirs (aligned with src/sys/tests/scripts/01_bootstrap.sh) mkdir -p \ "$PKG_ROOT/private/argus/etc" \ "$PKG_ROOT/private/argus/bind" \ "$PKG_ROOT/private/argus/master" \ "$PKG_ROOT/private/argus/agent" \ "$PKG_ROOT/private/argus/log/elasticsearch" \ "$PKG_ROOT/private/argus/log/kibana" # Prometheus mkdir -p \ "$PKG_ROOT/private/argus/metric/prometheus" \ "$PKG_ROOT/private/argus/metric/prometheus/data" \ "$PKG_ROOT/private/argus/metric/prometheus/rules" \ "$PKG_ROOT/private/argus/metric/prometheus/targets" # Grafana mkdir -p \ "$PKG_ROOT/private/argus/metric/grafana" \ "$PKG_ROOT/private/argus/metric/grafana/data" \ "$PKG_ROOT/private/argus/metric/grafana/logs" \ "$PKG_ROOT/private/argus/metric/grafana/plugins" \ "$PKG_ROOT/private/argus/metric/grafana/provisioning/datasources" \ "$PKG_ROOT/private/argus/metric/grafana/provisioning/dashboards" \ "$PKG_ROOT/private/argus/metric/grafana/data/sessions" \ "$PKG_ROOT/private/argus/metric/grafana/data/dashboards" \ "$PKG_ROOT/private/argus/metric/grafana/config" # FTP mkdir -p "$PKG_ROOT/private/argus/metric/ftp/share" # Alertmanager mkdir -p "$PKG_ROOT/private/argus/alert/alertmanager" chown -R "$UIDV":"$GIDV" \ "$PKG_ROOT/private/argus/etc" \ "$PKG_ROOT/private/argus/bind" \ "$PKG_ROOT/private/argus/master" \ "$PKG_ROOT/private/argus/agent" \ "$PKG_ROOT/private/argus/log/elasticsearch" \ "$PKG_ROOT/private/argus/log/kibana" \ "$PKG_ROOT/private/argus/metric/prometheus" \ "$PKG_ROOT/private/argus/metric/grafana" \ "$PKG_ROOT/private/argus/metric/ftp" \ "$PKG_ROOT/private/argus/alert" chmod -R g+w "$PKG_ROOT/private/argus/alert" "$PKG_ROOT/private/argus/etc" || true # Ensure parent directories also owned by runtime user for consistency chown "$UIDV":"$GIDV" \ "$PKG_ROOT/private/argus" \ "$PKG_ROOT/private/argus/log" \ "$PKG_ROOT/private/argus/metric" || true echo "[PREPARE] Done. You can now run server-install.sh"