|
1 | | -#!/bin/bash |
2 | | -# UNC Chapel Hill™ — Module Install Script |
3 | | -# Usage: sudo bash install/install.sh |
4 | | -set -e |
5 | | - |
6 | | -SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" |
7 | | -MOD_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" |
8 | | -NWE_ROOT="$(cd "$MOD_ROOT/../.." 2>/dev/null && pwd)" |
9 | | -[ -f "$NWE_ROOT/scripts/nwe-ports.sh" ] && source "$NWE_ROOT/scripts/nwe-ports.sh" |
10 | | - |
11 | | -echo "═══════════════════════════════════════════════════════════════" |
12 | | -echo " UNC Chapel Hill™ — Module Install" |
13 | | -echo "═══════════════════════════════════════════════════════════════" |
14 | | -echo "" |
15 | | - |
16 | | -echo "[1/2] Database setup..." |
17 | | -if [ -f "$MOD_ROOT/servlets/setup-db.sh" ]; then |
18 | | - bash "$MOD_ROOT/servlets/setup-db.sh" && echo " [✓] Database nwe_unc ready" || echo " [!] Database setup had issues" |
19 | | -else |
20 | | - echo " [--] No setup-db.sh found" |
21 | | -fi |
22 | | - |
23 | | -echo "" |
24 | | -echo "[2/2] Configuring firewall..." |
25 | | -if type nwe_ensure_ufw &>/dev/null; then |
26 | | - nwe_ensure_ufw |
27 | | - sudo ufw allow 8080/tcp >/dev/null 2>&1 && echo " [✓] Port 8080 (Tomcat) opened" || true |
28 | | - sudo ufw allow 49218/tcp >/dev/null 2>&1 && echo " [✓] Port 49218 (backend) opened" || true |
29 | | -else |
30 | | - if command -v ufw &>/dev/null; then |
31 | | - sudo ufw allow 22/tcp >/dev/null 2>&1 |
32 | | - sudo ufw allow 8080/tcp >/dev/null 2>&1 |
33 | | - sudo ufw allow 49218/tcp >/dev/null 2>&1 |
34 | | - sudo ufw --force enable >/dev/null 2>&1 |
35 | | - echo " [✓] UFW ports opened" |
36 | | - else |
37 | | - echo " [--] UFW not available — open ports manually" |
38 | | - fi |
39 | | -fi |
40 | | - |
41 | | -echo "" |
42 | | -echo "═══════════════════════════════════════════════════════════════" |
43 | | -echo " UNC Chapel Hill™ install complete." |
44 | | -echo " Backend port: 49218" |
45 | | -echo " Frontend: http://localhost:8080/california-unc/" |
46 | | -echo "═══════════════════════════════════════════════════════════════" |
| 1 | +#!/usr/bin/env bash |
| 2 | +# UNC Chapel Hill 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 49218 proto tcp; else nwe_run_privileged ufw allow 49218/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] UNC Chapel Hill module installation complete. Backend port: 49218" |
0 commit comments