#!/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"