224 lines
4.5 KiB
Bash
224 lines
4.5 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "=============================="
|
|
echo "🚀 BSSAPP FULL DEPLOY START"
|
|
echo "=============================="
|
|
|
|
# -----------------------------
|
|
# ENV (systemd / webhook fix)
|
|
# -----------------------------
|
|
export HOME=/root
|
|
export PATH=/usr/bin:/usr/local/bin:/bin:$PATH
|
|
export GOPATH=/root/go
|
|
export GOMODCACHE=/root/go/pkg/mod
|
|
|
|
mkdir -p "$GOPATH" "$GOMODCACHE"
|
|
|
|
# -----------------------------
|
|
# PATHS
|
|
# -----------------------------
|
|
APP_DIR="/opt/bssapp/svc"
|
|
UI_DIR="/opt/bssapp/ui"
|
|
SERVICE="bssapp"
|
|
|
|
FONT_DIR="$APP_DIR/fonts"
|
|
SYS_FONT_DIR="/usr/share/fonts/truetype/dejavu"
|
|
|
|
# -----------------------------
|
|
# STOP SERVICE
|
|
# -----------------------------
|
|
echo "== STOP SERVICE =="
|
|
systemctl stop "$SERVICE"
|
|
|
|
# -----------------------------
|
|
# UPDATE BACKEND CODE
|
|
# -----------------------------
|
|
echo "== UPDATE CODE =="
|
|
|
|
cd "$APP_DIR"
|
|
|
|
git fetch origin
|
|
git reset --hard origin/master
|
|
|
|
# -----------------------------
|
|
# CHECK FONTS
|
|
# -----------------------------
|
|
echo "== CHECK FONTS =="
|
|
|
|
mkdir -p "$FONT_DIR"
|
|
|
|
if [ ! -f "$FONT_DIR/DejaVuSans.ttf" ]; then
|
|
cp "$SYS_FONT_DIR/DejaVuSans.ttf" "$FONT_DIR/"
|
|
|
|
if [ ! -f "$FONT_DIR/DejaVuSans-Bold.ttf" ]; then
|
|
cp "$SYS_FONT_DIR/DejaVuSans-Bold.ttf" "$FONT_DIR/"
|
|
fi
|
|
|
|
echo "✅ Fonts OK"
|
|
|
|
# -----------------------------
|
|
# BUILD UI
|
|
# -----------------------------
|
|
echo "== BUILD UI =="
|
|
|
|
cd "$UI_DIR"
|
|
|
|
if ! command -v npm >/dev/null 2>&1; then
|
|
echo "❌ npm not found!"
|
|
exit 1
|
|
fi
|
|
|
|
npm install
|
|
npx quasar build
|
|
|
|
echo "✅ UI Build Done"
|
|
# -----------------------------
|
|
# DEPLOY UI → BACKEND
|
|
# -----------------------------
|
|
echo "== DEPLOY UI =="
|
|
|
|
rm -rf "$APP_DIR/public"/*
|
|
mkdir -p "$APP_DIR/public"
|
|
|
|
cp -r "$UI_DIR/dist/spa/"* "$APP_DIR/public/"
|
|
|
|
echo "✅ UI Copied"
|
|
|
|
# -----------------------------
|
|
# BUILD BACKEND
|
|
# -----------------------------
|
|
echo "== BUILD BACKEND =="
|
|
|
|
cd "$APP_DIR"
|
|
|
|
go clean -cache -modcache
|
|
go mod tidy
|
|
go build -o bssapp
|
|
|
|
echo "✅ Backend Build Done"
|
|
# -----------------------------
|
|
# START SERVICE
|
|
# -----------------------------
|
|
echo "== START SERVICE =="
|
|
|
|
systemctl start "$SERVICE"
|
|
|
|
# -----------------------------
|
|
# DONE
|
|
# -----------------------------
|
|
echo "=============================="
|
|
echo "✅ DEPLOY FINISHED"
|
|
echo "=============================="
|
|
1~#!/bin/bash
|
|
set -e
|
|
|
|
echo "=============================="
|
|
echo "🚀 BSSAPP FULL DEPLOY START"
|
|
echo "=============================="
|
|
|
|
# -----------------------------
|
|
# ENV (systemd / webhook fix)
|
|
# -----------------------------
|
|
export HOME=/root
|
|
export PATH=/usr/bin:/usr/local/bin:/bin:$PATH
|
|
export GOPATH=/root/go
|
|
export GOMODCACHE=/root/go/pkg/mod
|
|
|
|
mkdir -p "$GOPATH" "$GOMODCACHE"
|
|
|
|
# -----------------------------
|
|
# PATHS
|
|
# -----------------------------
|
|
APP_DIR="/opt/bssapp/svc"
|
|
UI_DIR="/opt/bssapp/ui"
|
|
SERVICE="bssapp"
|
|
|
|
FONT_DIR="$APP_DIR/fonts"
|
|
SYS_FONT_DIR="/usr/share/fonts/truetype/dejavu"
|
|
|
|
# -----------------------------
|
|
# STOP SERVICE
|
|
# -----------------------------
|
|
echo "== STOP SERVICE =="
|
|
systemctl stop "$SERVICE"
|
|
|
|
# -----------------------------
|
|
# UPDATE BACKEND CODE
|
|
# -----------------------------
|
|
echo "== UPDATE CODE =="
|
|
|
|
cd "$APP_DIR"
|
|
|
|
git fetch origin
|
|
git reset --hard origin/master
|
|
|
|
# -----------------------------
|
|
# CHECK FONTS
|
|
# -----------------------------
|
|
echo "== CHECK FONTS =="
|
|
|
|
mkdir -p "$FONT_DIR"
|
|
|
|
if [ ! -f "$FONT_DIR/DejaVuSans.ttf" ]; then
|
|
cp "$SYS_FONT_DIR/DejaVuSans.ttf" "$FONT_DIR/"
|
|
fi
|
|
|
|
if [ ! -f "$FONT_DIR/DejaVuSans-Bold.ttf" ]; then
|
|
cp "$SYS_FONT_DIR/DejaVuSans-Bold.ttf" "$FONT_DIR/"
|
|
fi
|
|
|
|
echo "✅ Fonts OK"
|
|
|
|
# -----------------------------
|
|
# BUILD UI
|
|
# -----------------------------
|
|
echo "== BUILD UI =="
|
|
|
|
cd "$UI_DIR"
|
|
|
|
if ! command -v npm >/dev/null 2>&1; then
|
|
echo "❌ npm not found!"
|
|
exit 1
|
|
fi
|
|
|
|
npm install
|
|
npx quasar build
|
|
|
|
echo "✅ UI Build Done"
|
|
|
|
# -----------------------------
|
|
# DEPLOY UI → BACKEND
|
|
# -----------------------------
|
|
rm -rf "$APP_DIR/public"/*
|
|
mkdir -p "$APP_DIR/public"
|
|
|
|
cp -r "$UI_DIR/dist/spa/"* "$APP_DIR/public/"
|
|
|
|
echo "✅ UI Copied"
|
|
|
|
# -----------------------------
|
|
# BUILD BACKEND
|
|
# -----------------------------
|
|
echo "== BUILD BACKEND =="
|
|
|
|
cd "$APP_DIR"
|
|
|
|
go clean -cache -modcache
|
|
go mod tidy
|
|
go build -o bssapp
|
|
|
|
echo "✅ Backend Build Done"
|
|
|
|
# -----------------------------
|
|
# START SERVICE
|
|
# -----------------------------
|
|
echo "== START SERVICE =="
|
|
systemctl start "$SERVICE"
|
|
|
|
# -----------------------------
|
|
# DONE
|
|
# -----------------------------
|
|
echo "=============================="
|
|
echo "✅ DEPLOY FINISHED"
|
|
echo "==============================" |