-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart-linux.sh
More file actions
executable file
·82 lines (68 loc) · 2.69 KB
/
start-linux.sh
File metadata and controls
executable file
·82 lines (68 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/env bash
# BizManager – Linux / macOS Quick Start
# Usage: bash start-linux.sh
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
echo "============================================================"
echo " BizManager – Linux / macOS Quick Start"
echo "============================================================"
echo ""
# ── Check prerequisites ──────────────────────────────────────
if ! command -v node &>/dev/null; then
echo "ERROR: Node.js is not installed."
echo " Install via your package manager:"
echo " Ubuntu/Debian : sudo apt install nodejs npm"
echo " Fedora/RHEL : sudo dnf install nodejs"
echo " Or use nvm : https://github.com/nvm-sh/nvm"
echo " Minimum version: Node.js 18.11"
exit 1
fi
NODE_VER=$(node --version)
echo "[OK] Node.js $NODE_VER found."
echo ""
# ── BACKEND ─────────────────────────────────────────────────
echo "[1/4] Installing backend dependencies..."
cd "$SCRIPT_DIR/backend"
npm install
echo ""
echo "[2/4] Initialising .env file..."
npm run init
echo ""
echo "[3/4] Setting up database..."
npm run setup
# ── FRONTEND ────────────────────────────────────────────────
echo ""
echo "[4/4] Installing frontend dependencies..."
cd "$SCRIPT_DIR/frontend"
npm install
# ── LAUNCH ──────────────────────────────────────────────────
echo ""
echo "============================================================"
echo " Starting servers..."
echo " Backend -> http://localhost:5000"
echo " Frontend -> http://localhost:5173"
echo " Open http://localhost:5173 in your browser."
echo " Press Ctrl+C to stop both servers."
echo "============================================================"
echo ""
# Start backend in background and capture its PID
cd "$SCRIPT_DIR/backend"
npm run dev &
BACKEND_PID=$!
# Give the backend a moment to start
sleep 2
# Start frontend (foreground; Ctrl+C will stop both)
cd "$SCRIPT_DIR/frontend"
trap "echo ''; echo 'Stopping BizManager...'; kill $BACKEND_PID 2>/dev/null; exit 0" SIGINT SIGTERM
npm run dev &
FRONTEND_PID=$!
# Try to open the browser (best-effort)
sleep 3
if command -v xdg-open &>/dev/null; then
xdg-open "http://localhost:5173" &>/dev/null &
elif command -v open &>/dev/null; then
open "http://localhost:5173" &>/dev/null &
fi
# Wait for both processes
wait $BACKEND_PID $FRONTEND_PID