Files
bssapp/scripts/deploy.sh

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 "=============================="