Skip to content

Commit 7c5bd26

Browse files
committed
Adopt unified installation contract for NSA module
1 parent ed39786 commit 7c5bd26

1 file changed

Lines changed: 20 additions & 55 deletions

File tree

modules/nsa/install/install.sh

Lines changed: 20 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,20 @@
1-
#!/bin/bash
2-
# California NSA™ — Module Install Script
3-
# Ensures UFW firewall is installed/enabled and module ports are open.
4-
# Usage: sudo bash install/install.sh
5-
set -e
6-
7-
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
8-
MOD_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
9-
NWE_ROOT="$(cd "$MOD_ROOT/../.." 2>/dev/null && pwd)"
10-
[ -f "$NWE_ROOT/scripts/nwe-ports.sh" ] && source "$NWE_ROOT/scripts/nwe-ports.sh"
11-
12-
echo "═══════════════════════════════════════════════════════════════"
13-
echo " California NSA™ — Module Install"
14-
echo "═══════════════════════════════════════════════════════════════"
15-
echo ""
16-
17-
# 1. Database setup
18-
echo "[1/2] Database setup..."
19-
if [ -f "$MOD_ROOT/servlets/setup-db.sh" ]; then
20-
bash "$MOD_ROOT/servlets/setup-db.sh" && echo " [✓] Database nwe_california_nsa ready" || echo " [!] Database setup had issues"
21-
else
22-
echo " [--] No setup-db.sh found (database may already exist)"
23-
fi
24-
25-
# 2. Firewall (UFW install + enable + open ports)
26-
echo ""
27-
echo "[2/2] Configuring firewall..."
28-
if type nwe_ensure_ufw &>/dev/null; then
29-
nwe_ensure_ufw
30-
sudo ufw allow 8080/tcp >/dev/null 2>&1 && echo " [✓] Port 8080 (Tomcat) opened" || true
31-
sudo ufw allow 49212/tcp >/dev/null 2>&1 && echo " [✓] Port 49212 (backend) opened" || true
32-
else
33-
echo " [--] NWE port library not available — installing UFW manually..."
34-
if command -v apt-get &>/dev/null; then
35-
sudo apt-get install -y -qq ufw >/dev/null 2>&1
36-
elif command -v dnf &>/dev/null; then
37-
sudo dnf install -y -q ufw >/dev/null 2>&1
38-
fi
39-
if command -v ufw &>/dev/null; then
40-
sudo ufw allow 22/tcp >/dev/null 2>&1
41-
sudo ufw allow 8080/tcp >/dev/null 2>&1
42-
sudo ufw allow 49212/tcp >/dev/null 2>&1
43-
sudo ufw --force enable >/dev/null 2>&1
44-
echo " [✓] UFW installed and ports opened"
45-
else
46-
echo " [!] Could not install UFW — open ports manually"
47-
fi
48-
fi
49-
50-
echo ""
51-
echo "═══════════════════════════════════════════════════════════════"
52-
echo " California NSA™ install complete."
53-
echo " Backend port: 49212"
54-
echo " Frontend: http://localhost:8080/california-nsa/"
55-
echo "═══════════════════════════════════════════════════════════════"
1+
#!/usr/bin/env bash
2+
# California NSA module installer — follows the NWE Unified Installation Contract.
3+
set -euo pipefail
4+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5+
NWE_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
6+
source "$NWE_ROOT/scripts/install-contract.sh"
7+
MOD_ROOT="$(nwe_module_root "$SCRIPT_DIR")"
8+
nwe_verify_module "$MOD_ROOT"
9+
nwe_install_contract_banner
10+
nwe_require_command bash
11+
nwe_step "Database setup"
12+
if [[ -f "$MOD_ROOT/servlets/setup-db.sh" ]]; then bash "$MOD_ROOT/servlets/setup-db.sh"; else nwe_warn "No setup-db.sh found; database setup skipped."; fi
13+
nwe_step "Firewall policy"
14+
if [[ "${NWE_CONFIGURE_FIREWALL:-0}" == "1" ]]; then
15+
nwe_source_optional "$NWE_ROOT/scripts/nwe-ports.sh" || nwe_fail "Missing NWE port manager"
16+
nwe_ensure_ufw
17+
if [[ -n "${NWE_TRUSTED_IP:-}" ]]; then nwe_run_privileged ufw allow from "$NWE_TRUSTED_IP" to any port 49212 proto tcp; else nwe_run_privileged ufw allow 49212/tcp; fi
18+
else echo " Firewall unchanged. Set NWE_CONFIGURE_FIREWALL=1 to manage it."; fi
19+
nwe_verify_path "$MOD_ROOT"
20+
echo "[OK] California NSA module installation complete. Backend port: 49212"

0 commit comments

Comments
 (0)