gigafibre-fsm/apps/client/deploy.sh
louispaulb 101faa21f1 feat: inline editing, search, notifications + full repo cleanup
- InlineField component + useInlineEdit composable for Odoo-style dblclick editing
- Client search by name, account ID, and legacy_customer_id (or_filters)
- SMS/Email notification panel on ContactCard via n8n webhooks
- Ticket reply thread via Communication docs
- All migration scripts (51 files) now tracked
- Client portal and field tech app added to monorepo
- README rewritten with full feature list, migration summary, architecture
- CHANGELOG updated with all recent work
- ROADMAP updated with current completion status
- Removed hardcoded tokens from docs (use $ERP_SERVICE_TOKEN)
- .gitignore updated (docker/, .claude/, exports/, .quasar/)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 07:34:41 -04:00

53 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# ─────────────────────────────────────────────────────────────────────────────
# deploy.sh — Build Gigafibre Client Portal and deploy to ERPNext container
#
# Usage:
# ./deploy.sh # deploy to remote server (production)
# ./deploy.sh local # deploy to local Docker (development)
# ─────────────────────────────────────────────────────────────────────────────
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="/home/frappe/frappe-bench/sites/assets/client-app"
echo "==> Installing dependencies..."
npm ci --silent
echo "==> Building PWA (base=/assets/client-app/)..."
VITE_ERP_TOKEN="b273a666c86d2d0:06120709db5e414" DEPLOY_BASE=/assets/client-app/ npx quasar build -m pwa
if [ "$1" = "local" ]; then
CONTAINER=$(docker ps --format '{{.Names}}' | grep -E 'frontend' | grep -v ops | head -1)
[ -z "$CONTAINER" ] && echo "ERROR: ERPNext frontend container not found" && exit 1
echo "==> Deploying to local container ($CONTAINER)..."
docker exec "$CONTAINER" sh -c "rm -rf $DEST && mkdir -p $DEST"
docker cp "$SCRIPT_DIR/dist/pwa/." "$CONTAINER:$DEST/"
echo ""
echo "Done! Client Portal: http://localhost:8080/assets/client-app/"
else
echo "==> Packaging..."
tar czf /tmp/client-pwa.tar.gz -C dist/pwa .
echo "==> Deploying to $SERVER..."
cat /tmp/client-pwa.tar.gz | ssh -i "$SSH_KEY" "$SERVER" \
"cat > /tmp/client.tar.gz && \
CONTAINER=\$(docker ps --format '{{.Names}}' | grep erpnext-frontend | head -1) && \
echo \" Using container: \$CONTAINER\" && \
docker exec -u root \$CONTAINER sh -c 'rm -rf $DEST && mkdir -p $DEST' && \
TMPDIR=\$(mktemp -d) && \
cd \$TMPDIR && tar xzf /tmp/client.tar.gz && \
docker cp \$TMPDIR/. \$CONTAINER:$DEST/ && \
docker exec -u root \$CONTAINER chown -R frappe:frappe $DEST && \
rm -rf \$TMPDIR /tmp/client.tar.gz"
rm -f /tmp/client-pwa.tar.gz
echo ""
echo "Done! Client Portal: https://client.gigafibre.ca/"
fi