|
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