gigafibre-fsm/apps/field/deploy.sh
louispaulb 1ed86e37ad fix: server-side API token injection + ticket modal empty state
- Move ERPNext API token from JS bundle to nginx proxy_set_header
  (token only lives on server, never in client code)
- Switch ops + field apps from auth.targo.ca to id.gigafibre.ca SSO
- Fix "Aucun contenu" showing on tickets that have comments but no
  description (check comments.length in v-if condition)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 23:31:58 -04:00

49 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# ─────────────────────────────────────────────────────────────────────────────
# deploy.sh — Build Targo Field PWA and deploy to field-frontend nginx container
#
# Served at erp.gigafibre.ca/field/ via Traefik StripPrefix + Authentik SSO.
# Static files go to /opt/field-app/ on the host, mounted into nginx container.
#
# Usage:
# ./deploy.sh # deploy to remote server (production)
# ./deploy.sh local # deploy locally
# ─────────────────────────────────────────────────────────────────────────────
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
SERVER="root@96.125.196.67"
SSH_KEY="$HOME/.ssh/proxmox_vm"
DEST="/opt/field-app"
echo "==> Installing dependencies..."
npm ci --silent
echo "==> Building PWA (base=/field/)..."
DEPLOY_BASE=/field/ npx quasar build -m pwa
if [ "$1" = "local" ]; then
echo "==> Deploying to local $DEST..."
rm -rf "$DEST"/*
cp -r dist/pwa/* "$DEST/"
echo ""
echo "Done! Targo Field: http://localhost/field/"
else
echo "==> Packaging..."
tar czf /tmp/field-pwa.tar.gz -C dist/pwa .
echo "==> Deploying to $SERVER..."
cat /tmp/field-pwa.tar.gz | ssh -i "$SSH_KEY" "$SERVER" \
"cat > /tmp/field.tar.gz && \
rm -rf $DEST/*.js $DEST/*.html $DEST/*.json $DEST/assets $DEST/icons && \
cd $DEST && tar xzf /tmp/field.tar.gz && \
rm -f /tmp/field.tar.gz"
rm -f /tmp/field-pwa.tar.gz
echo ""
echo "Done! Targo Field: https://erp.gigafibre.ca/field/"
fi