Skip to content

Commit 48f57ae

Browse files
committed
Add remote-deploy-script.sh and logo assets
1 parent eebdeec commit 48f57ae

3 files changed

Lines changed: 112 additions & 0 deletions

File tree

mearvk.ltd.logo.left.png

63.3 KB
Loading

mearvk.ltd.logo.right.png

79.3 KB
Loading

scripts/remote-deploy-script.sh

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
#!/usr/bin/env bash
2+
# remote-deploy-script.sh — Deploy NWE to remote server via SSH/SCP
3+
# Prompts for remote user and root password before deploying.
4+
# Usage: bash scripts/remote-deploy-script.sh
5+
6+
set -euo pipefail
7+
8+
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
9+
OUT="$ROOT/out"
10+
CONFIG="$ROOT/configuration/nwe-config.xml"
11+
SCRIPTS="$ROOT/scripts"
12+
BASH_DIR="$ROOT/bash"
13+
14+
# ── Remote defaults (from nwe-config.xml) ─────────────────────────────────────
15+
DEFAULT_USER="root"
16+
DEFAULT_HOST="45.32.31.139"
17+
DEFAULT_REMOTE_DIR="/opt/nwe"
18+
19+
echo "=============================================="
20+
echo " NitroWebExpress — Remote Deployment Script"
21+
echo "=============================================="
22+
echo ""
23+
24+
# ── Prompt: Remote user ───────────────────────────────────────────────────────
25+
read -rp "Remote user [$DEFAULT_USER]: " REMOTE_USER
26+
REMOTE_USER="${REMOTE_USER:-$DEFAULT_USER}"
27+
28+
# ── Prompt: Remote host ───────────────────────────────────────────────────────
29+
read -rp "Remote host [$DEFAULT_HOST]: " REMOTE_HOST
30+
REMOTE_HOST="${REMOTE_HOST:-$DEFAULT_HOST}"
31+
32+
# ── Prompt: Remote directory ──────────────────────────────────────────────────
33+
read -rp "Remote deploy directory [$DEFAULT_REMOTE_DIR]: " REMOTE_DIR
34+
REMOTE_DIR="${REMOTE_DIR:-$DEFAULT_REMOTE_DIR}"
35+
36+
# ── Prompt: Root password ─────────────────────────────────────────────────────
37+
echo ""
38+
read -rsp "Enter root password for $REMOTE_USER@$REMOTE_HOST: " ROOT_PASSWORD
39+
echo ""
40+
echo ""
41+
42+
# ── Validate local build ──────────────────────────────────────────────────────
43+
if [[ ! -d "$OUT" ]] || [[ -z "$(ls -A "$OUT" 2>/dev/null)" ]]; then
44+
echo "[ERROR] No compiled classes found in $OUT"
45+
echo " Run 'bash bash/NWE.install.sh' first to compile."
46+
exit 1
47+
fi
48+
49+
echo "[1/5] Deploying to $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR"
50+
echo ""
51+
52+
# ── Helper: run remote command via sshpass ────────────────────────────────────
53+
remote_exec() {
54+
sshpass -p "$ROOT_PASSWORD" ssh -o StrictHostKeyChecking=no "$REMOTE_USER@$REMOTE_HOST" "$@"
55+
}
56+
57+
remote_copy() {
58+
sshpass -p "$ROOT_PASSWORD" scp -o StrictHostKeyChecking=no -r "$@"
59+
}
60+
61+
# ── Check sshpass is available ────────────────────────────────────────────────
62+
if ! command -v sshpass &>/dev/null; then
63+
echo "[WARN] sshpass not found. Installing..."
64+
if command -v apt-get &>/dev/null; then
65+
sudo apt-get install -y sshpass
66+
elif command -v yum &>/dev/null; then
67+
sudo yum install -y sshpass
68+
else
69+
echo "[ERROR] Cannot install sshpass automatically."
70+
echo " Install it manually: sudo apt-get install sshpass"
71+
exit 1
72+
fi
73+
fi
74+
75+
# ── 2. Create remote directory structure ──────────────────────────────────────
76+
echo "[2/5] Creating remote directory structure..."
77+
remote_exec "mkdir -p $REMOTE_DIR/{out,configuration,scripts,bash,jars,logging}"
78+
echo " Done."
79+
80+
# ── 3. Upload compiled classes ────────────────────────────────────────────────
81+
echo "[3/5] Uploading compiled classes (out/)..."
82+
remote_copy "$OUT/" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/out/"
83+
echo " Done."
84+
85+
# ── 4. Upload configuration, scripts, jars ───────────────────────────────────
86+
echo "[4/5] Uploading configuration and scripts..."
87+
remote_copy "$CONFIG" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/configuration/nwe-config.xml"
88+
remote_copy "$SCRIPTS/startup.sh" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/scripts/startup.sh"
89+
remote_copy "$BASH_DIR/NWE.install.sh" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/bash/NWE.install.sh"
90+
91+
# Upload jars (MySQL connector, Lanterna)
92+
if [[ -d "$ROOT/jars" ]]; then
93+
remote_copy "$ROOT/jars/" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/jars/"
94+
fi
95+
echo " Done."
96+
97+
# ── 5. Set permissions and verify ────────────────────────────────────────────
98+
echo "[5/5] Setting permissions and verifying deployment..."
99+
remote_exec "chmod +x $REMOTE_DIR/scripts/*.sh $REMOTE_DIR/bash/*.sh 2>/dev/null || true"
100+
remote_exec "ls -la $REMOTE_DIR/out/ | head -20"
101+
echo ""
102+
103+
# ── Summary ───────────────────────────────────────────────────────────────────
104+
echo "=============================================="
105+
echo " Deployment complete!"
106+
echo " Host: $REMOTE_USER@$REMOTE_HOST"
107+
echo " Path: $REMOTE_DIR"
108+
echo ""
109+
echo " To start NWE on the remote server:"
110+
echo " ssh $REMOTE_USER@$REMOTE_HOST"
111+
echo " cd $REMOTE_DIR && bash scripts/startup.sh"
112+
echo "=============================================="

0 commit comments

Comments
 (0)