Skip to content

Commit 13976ed

Browse files
committed
Science Commit 5.
1 parent 1373376 commit 13976ed

12 files changed

Lines changed: 1024 additions & 19 deletions

File tree

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!-- Copy this file to mysql.auth.xml and fill in your credentials. -->
3+
<!-- mysql.auth.xml is gitignored — never commit real credentials. -->
4+
<mysql-auth>
5+
<host>localhost</host>
6+
<port>3306</port>
7+
<username>YOUR_DB_USERNAME</username>
8+
<password>YOUR_DB_PASSWORD</password>
9+
<use-sudo>true</use-sudo>
10+
</mysql-auth>

bash/NWE.install.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ FORCE=0
1616

1717
# Module source directories to compile alongside core source/
1818
MODULE_SOURCES=(
19-
"$ROOT/california/fbi/source"
20-
"$ROOT/california/cia/source"
21-
"$ROOT/california/nsa/source"
22-
"$ROOT/north/carolina/duke/source"
23-
"$ROOT/north/carolina/library/source"
19+
"$ROOT/modules/fbi/source"
20+
"$ROOT/modules/cia/source"
21+
"$ROOT/modules/nsa/source"
22+
"$ROOT/modules/duke/source"
23+
"$ROOT/modules/library/source"
2424
"$ROOT/modules/AE6E66/source"
2525
"$ROOT/modules/gray/source"
2626
"$ROOT/modules/gray.a85/source"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!-- Copy this file to mysql.auth.xml and fill in your credentials. -->
3+
<!-- mysql.auth.xml is gitignored — never commit real credentials. -->
4+
<mysql-auth>
5+
<host>localhost</host>
6+
<port>3306</port>
7+
<username>YOUR_DB_USERNAME</username>
8+
<password>YOUR_DB_PASSWORD</password>
9+
<use-sudo>true</use-sudo>
10+
</mysql-auth>
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
#!/usr/bin/env bash
2+
# Brarner.M.Alete™ — Remote Linux Server Deploy [EXAMPLE — safe for GitHub]
3+
# Copy this file to deploy-remote-linux.sh and set real values.
4+
# deploy-remote-linux.sh is gitignored — never commit real server IPs.
5+
#
6+
# Prerequisites: SSH key access to target server
7+
# Usage: bash install/deploy-remote-linux.sh
8+
set -e
9+
10+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
11+
BMA_ROOT="$(dirname "$SCRIPT_DIR")"
12+
WEBAPP_SRC="$BMA_ROOT/servlets/servlet/src/main/webapp"
13+
WAR_FILE="$BMA_ROOT/brarner.m.alete.war"
14+
15+
# ─── Server config — fill these in before use ───────────────────────────────
16+
REMOTE_HOST="${BMA_REMOTE_HOST:-YOUR_SERVER_IP}"
17+
REMOTE_USER="${BMA_REMOTE_USER:-root}"
18+
REMOTE_DOMAIN="${BMA_REMOTE_DOMAIN:-YOUR_DOMAIN}"
19+
REMOTE_PATH="/var/www/html/brarner.m.alete"
20+
TOMCAT_CONTEXT="brarner.m.alete"
21+
SITE_URL="https://${REMOTE_DOMAIN}/brarner.m.alete"
22+
23+
SSH_OPTS="-o ConnectTimeout=10 -o BatchMode=yes -o StrictHostKeyChecking=accept-new -o ServerAliveInterval=15 -o ServerAliveCountMax=3"
24+
25+
echo "═══════════════════════════════════════════════════════════════"
26+
echo " Brarner.M.Alete™ — Remote Linux Server Deploy"
27+
echo " Target: ${SITE_URL}"
28+
echo " Server: ${REMOTE_HOST} (${REMOTE_DOMAIN})"
29+
echo "═══════════════════════════════════════════════════════════════"
30+
31+
# ─── Pre-flight: Check webapp source ───
32+
if [ ! -d "$WEBAPP_SRC" ]; then
33+
echo "[!] Webapp source not found: $WEBAPP_SRC"
34+
exit 1
35+
fi
36+
echo "[*] Webapp source OK"
37+
38+
# ─── Pre-flight: Build WAR if not present ───
39+
if [ ! -f "$WAR_FILE" ]; then
40+
echo "[*] WAR not found — building..."
41+
bash "$BMA_ROOT/build.sh"
42+
fi
43+
if [ -f "$WAR_FILE" ]; then
44+
echo "[*] WAR file: $WAR_FILE ($(du -h "$WAR_FILE" | cut -f1))"
45+
fi
46+
47+
# ─── Pre-flight: Reverse DNS ───
48+
echo "[*] Checking reverse DNS for ${REMOTE_HOST}..."
49+
RDNS=$(dig +short -x "$REMOTE_HOST" 2>/dev/null | head -1 || echo "")
50+
if [ -n "$RDNS" ]; then
51+
echo "[*] PTR: ${REMOTE_HOST}${RDNS}"
52+
else
53+
echo "[!] No PTR record — SSL may require manual DNS verification"
54+
fi
55+
56+
# ─── Pre-flight: SSH access ───
57+
echo "[*] Verifying SSH access to ${REMOTE_USER}@${REMOTE_HOST}..."
58+
59+
if ! timeout 5 bash -c "echo >/dev/tcp/${REMOTE_HOST}/22" 2>/dev/null; then
60+
echo "[!] Port 22 not reachable on ${REMOTE_HOST}"
61+
exit 1
62+
fi
63+
64+
if ! ssh $SSH_OPTS "$REMOTE_USER@$REMOTE_HOST" "echo OK" 2>/dev/null; then
65+
echo "[!] SSH key not accepted."
66+
if [ ! -f ~/.ssh/id_rsa ] && [ ! -f ~/.ssh/id_ed25519 ]; then
67+
echo "[*] Generating ed25519 keypair..."
68+
mkdir -p ~/.ssh && chmod 700 ~/.ssh
69+
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "" -q
70+
fi
71+
if [ -t 0 ]; then
72+
ssh-copy-id -o ConnectTimeout=10 "$REMOTE_USER@$REMOTE_HOST" 2>/dev/null || \
73+
{ echo "[!] Run: ssh-copy-id ${REMOTE_USER}@${REMOTE_HOST}"; exit 1; }
74+
else
75+
echo "[!] Run: ssh-copy-id ${REMOTE_USER}@${REMOTE_HOST}"; exit 1
76+
fi
77+
fi
78+
echo "[*] SSH access confirmed"
79+
80+
# ─── Install Apache2 + Java 21 + Tomcat ───
81+
echo "[*] Ensuring Apache2, Java 21, Tomcat 11 on remote..."
82+
ssh $SSH_OPTS "$REMOTE_USER@$REMOTE_HOST" '
83+
set -e
84+
if ! command -v apache2 &>/dev/null && ! command -v httpd &>/dev/null; then
85+
if command -v apt &>/dev/null; then
86+
DEBIAN_FRONTEND=noninteractive apt update -qq
87+
DEBIAN_FRONTEND=noninteractive apt install -y -qq apache2
88+
elif command -v dnf &>/dev/null; then
89+
dnf install -y httpd && systemctl enable httpd
90+
fi
91+
fi
92+
systemctl enable apache2 2>/dev/null || systemctl enable httpd 2>/dev/null
93+
systemctl start apache2 2>/dev/null || systemctl start httpd 2>/dev/null
94+
if ! java -version 2>&1 | grep -q "21\|22\|23"; then
95+
if command -v apt &>/dev/null; then
96+
DEBIAN_FRONTEND=noninteractive apt install -y -qq openjdk-21-jre-headless
97+
elif command -v dnf &>/dev/null; then
98+
dnf install -y java-21-openjdk-headless
99+
fi
100+
fi
101+
TOMCAT_HOME="/opt/tomcat"
102+
if [ ! -f "$TOMCAT_HOME/bin/catalina.sh" ]; then
103+
TOMCAT_VERSION="11.0.2"
104+
cd /tmp
105+
curl -sfLO "https://archive.apache.org/dist/tomcat/tomcat-11/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz"
106+
mkdir -p "$TOMCAT_HOME"
107+
tar -xzf "apache-tomcat-${TOMCAT_VERSION}.tar.gz" -C "$TOMCAT_HOME" --strip-components=1
108+
rm -f "apache-tomcat-${TOMCAT_VERSION}.tar.gz"
109+
id tomcat &>/dev/null || useradd -r -M -d "$TOMCAT_HOME" -s /bin/false tomcat
110+
chown -R tomcat:tomcat "$TOMCAT_HOME"
111+
chmod +x "$TOMCAT_HOME"/bin/*.sh
112+
systemctl daemon-reload && systemctl enable tomcat && systemctl start tomcat
113+
echo "[*] Tomcat 11 installed"
114+
else
115+
echo "[*] Tomcat already present"
116+
systemctl start tomcat 2>/dev/null || true
117+
fi
118+
'
119+
120+
# ─── Deploy WAR to Tomcat ───
121+
echo "[*] Deploying to Tomcat context: /${TOMCAT_CONTEXT}"
122+
ssh $SSH_OPTS "$REMOTE_USER@$REMOTE_HOST" "rm -rf /opt/tomcat/webapps/${TOMCAT_CONTEXT} /opt/tomcat/webapps/${TOMCAT_CONTEXT}.war"
123+
124+
if [ -f "$WAR_FILE" ]; then
125+
scp -o ConnectTimeout=10 -o BatchMode=yes "$WAR_FILE" "$REMOTE_USER@$REMOTE_HOST:/opt/tomcat/webapps/${TOMCAT_CONTEXT}.war"
126+
else
127+
ssh $SSH_OPTS "$REMOTE_USER@$REMOTE_HOST" "mkdir -p /opt/tomcat/webapps/${TOMCAT_CONTEXT}/WEB-INF/lib"
128+
scp -o ConnectTimeout=10 -o BatchMode=yes -r "$WEBAPP_SRC/"* "$REMOTE_USER@$REMOTE_HOST:/opt/tomcat/webapps/${TOMCAT_CONTEXT}/"
129+
fi
130+
131+
ssh $SSH_OPTS "$REMOTE_USER@$REMOTE_HOST" "chown -R tomcat:tomcat /opt/tomcat/webapps/${TOMCAT_CONTEXT}* && systemctl restart tomcat"
132+
echo "[*] Tomcat restarted"
133+
134+
# ─── Remote MySQL password is prompted at deploy time — never hardcoded ────
135+
echo "[*] Configuring database credentials for JSP pages..."
136+
DB_PROPS_LOCAL="$WEBAPP_SRC/WEB-INF/db.properties"
137+
DB_PROPS_REMOTE="/opt/tomcat/webapps/${TOMCAT_CONTEXT}/WEB-INF/db.properties"
138+
139+
if [ -f "$DB_PROPS_LOCAL" ] && grep -q "db.password=." "$DB_PROPS_LOCAL" 2>/dev/null; then
140+
scp -o ConnectTimeout=10 -o BatchMode=yes "$DB_PROPS_LOCAL" "$REMOTE_USER@$REMOTE_HOST:$DB_PROPS_REMOTE"
141+
echo "[*] db.properties copied from local"
142+
else
143+
echo " JSP pages need MySQL credentials on the remote server."
144+
read -rp " Remote MySQL user [root]: " R_DB_USER
145+
R_DB_USER="${R_DB_USER:-root}"
146+
read -rsp " Remote MySQL password: " R_DB_PASS
147+
echo ""
148+
read -rp " Remote MySQL host [localhost]: " R_DB_HOST
149+
R_DB_HOST="${R_DB_HOST:-localhost}"
150+
read -rp " Remote MySQL port [3306]: " R_DB_PORT
151+
R_DB_PORT="${R_DB_PORT:-3306}"
152+
153+
ssh $SSH_OPTS "$REMOTE_USER@$REMOTE_HOST" "mkdir -p /opt/tomcat/webapps/${TOMCAT_CONTEXT}/WEB-INF && cat > $DB_PROPS_REMOTE <<DBEOF
154+
# BMA Database Configuration — written by deploy-remote-linux.sh
155+
db.driver=com.mysql.cj.jdbc.Driver
156+
db.url=jdbc:mysql://${R_DB_HOST}:${R_DB_PORT}/BrarnerScience
157+
db.user=${R_DB_USER}
158+
db.password=${R_DB_PASS}
159+
DBEOF
160+
"
161+
fi
162+
ssh $SSH_OPTS "$REMOTE_USER@$REMOTE_HOST" "chmod 600 $DB_PROPS_REMOTE && chown tomcat:tomcat $DB_PROPS_REMOTE"
163+
echo "[✓] db.properties configured"
164+
165+
echo ""
166+
echo "═══════════════════════════════════════════════════════════════"
167+
echo " [✓] Deploy complete"
168+
echo " URL: ${SITE_URL}"
169+
echo " Server: ${REMOTE_HOST}"
170+
echo " Verify: bash install/test-remote.sh"
171+
echo "═══════════════════════════════════════════════════════════════"
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/bin/bash
2+
# Brarner.M.Alete™ — Fix Remote db.properties [EXAMPLE — safe for GitHub]
3+
# Copy this file to fix-remote-db.sh and set real values.
4+
# fix-remote-db.sh is gitignored — never commit real server IPs.
5+
# Usage: bash install/fix-remote-db.sh
6+
set -e
7+
8+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
9+
BMA_ROOT="$(dirname "$SCRIPT_DIR")"
10+
DB_PROPS_LOCAL="$BMA_ROOT/servlets/servlet/src/main/webapp/WEB-INF/db.properties"
11+
12+
# ─── Fill in your server details ────────────────────────────────────────────
13+
REMOTE_HOST="${BMA_REMOTE_HOST:-YOUR_SERVER_IP}"
14+
REMOTE_USER="${BMA_REMOTE_USER:-root}"
15+
TOMCAT_CONTEXT="brarner.m.alete"
16+
DB_PROPS_REMOTE="/opt/tomcat/webapps/${TOMCAT_CONTEXT}/WEB-INF/db.properties"
17+
18+
SSH_OPTS="-o ConnectTimeout=10 -o BatchMode=yes -o StrictHostKeyChecking=accept-new"
19+
20+
echo "═══════════════════════════════════════════════════════════════"
21+
echo " Brarner.M.Alete™ — Fix Remote db.properties"
22+
echo " Target: ${REMOTE_USER}@${REMOTE_HOST}:${DB_PROPS_REMOTE}"
23+
echo "═══════════════════════════════════════════════════════════════"
24+
25+
if [ ! -f "$DB_PROPS_LOCAL" ]; then
26+
echo "[FAIL] Local db.properties not found: $DB_PROPS_LOCAL"; exit 1
27+
fi
28+
29+
echo "[*] Local db.properties:"
30+
grep -v password "$DB_PROPS_LOCAL" | sed 's/^/ /'
31+
echo " db.password=********"
32+
echo ""
33+
34+
echo "[*] Pushing to remote..."
35+
scp $SSH_OPTS "$DB_PROPS_LOCAL" "$REMOTE_USER@$REMOTE_HOST:$DB_PROPS_REMOTE"
36+
ssh $SSH_OPTS "$REMOTE_USER@$REMOTE_HOST" "chmod 600 $DB_PROPS_REMOTE && chown tomcat:tomcat $DB_PROPS_REMOTE"
37+
echo "[OK] db.properties updated on remote"
38+
39+
echo "[*] Restarting Tomcat on remote..."
40+
ssh $SSH_OPTS "$REMOTE_USER@$REMOTE_HOST" "systemctl restart tomcat"
41+
echo "[OK] Tomcat restarted"
42+
43+
echo ""
44+
echo "[✓] Done. Verify: https://YOUR_DOMAIN/brarner.m.alete/status.jsp"
45+
echo "═══════════════════════════════════════════════════════════════"

modules/black/presidential/Brarner.M.Alete/install/install.sh.example

Whitespace-only changes.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!-- Copy this file to mysql.auth.xml and fill in your credentials. -->
3+
<!-- mysql.auth.xml is gitignored — never commit real credentials. -->
4+
<mysql-auth>
5+
<host>localhost</host>
6+
<port>3306</port>
7+
<username>YOUR_DB_USERNAME</username>
8+
<password>YOUR_DB_PASSWORD</password>
9+
<use-sudo>true</use-sudo>
10+
</mysql-auth>

scripts/compile-all-modules.sh

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@ echo ""
1919
echo "[1/6] Core sources (source/)..."
2020
find "$ROOT/source" -name "*.java" > /tmp/nwe-core.txt
2121
javac -d "$OUT" -cp "$CP" \
22-
-sourcepath "$ROOT/source:$ROOT/california/fbi/source:$ROOT/california/cia/source:$ROOT/california/nsa/source:$ROOT/north/carolina/duke/source:$ROOT/north/carolina/library/source:$ROOT/modules/gray/source:$ROOT/modules/gray.a85/source:$ROOT/modules/black" \
22+
-sourcepath "$ROOT/source:$ROOT/modules/fbi/source:$ROOT/modules/cia/source:$ROOT/modules/nsa/source:$ROOT/modules/duke/source:$ROOT/modules/library/source:$ROOT/modules/gray/source:$ROOT/modules/gray.a85/source:$ROOT/modules/black" \
2323
@/tmp/nwe-core.txt 2>&1 | grep -i error || echo " OK"
2424
rm -f /tmp/nwe-core.txt
2525

26-
# 2. California/Duke/Stanford
27-
echo "[2/6] California FBI/CIA/NSA, Duke, Stanford..."
26+
# 2. FBI/CIA/NSA, Duke, Library
27+
echo "[2/6] FBI/CIA/NSA, Duke, Library..."
2828
javac -d "$OUT" -cp "$CP" \
29-
-sourcepath "$ROOT/source:$ROOT/california/fbi/source:$ROOT/california/cia/source:$ROOT/california/nsa/source:$ROOT/north/carolina/duke/source:$ROOT/north/carolina/library/source" \
30-
"$ROOT/california/fbi/source/CaliforniaFBIServer.java" \
31-
"$ROOT/california/cia/source/CaliforniaCIAServer.java" \
32-
"$ROOT/california/nsa/source/CaliforniaNSAServer.java" \
33-
"$ROOT/north/carolina/duke/source/DukeUniversityServer.java" \
34-
"$ROOT/north/carolina/library/source/StanfordLibraryServer.java" 2>&1 | grep -i error || echo " OK"
29+
-sourcepath "$ROOT/source:$ROOT/modules/fbi/source:$ROOT/modules/cia/source:$ROOT/modules/nsa/source:$ROOT/modules/duke/source:$ROOT/modules/library/source" \
30+
"$ROOT/modules/fbi/source/CaliforniaFBIServer.java" \
31+
"$ROOT/modules/cia/source/CaliforniaCIAServer.java" \
32+
"$ROOT/modules/nsa/source/CaliforniaNSAServer.java" \
33+
"$ROOT/modules/duke/source/DukeUniversityServer.java" \
34+
"$ROOT/modules/library/source/StanfordLibraryServer.java" 2>&1 | grep -i error || echo " OK"
3535

3636
# 3. Gray registries
3737
echo "[3/6] Gray Port Registry + Gray85..."

0 commit comments

Comments
 (0)