gigafibre-fsm/apps/portal/deploy-portal.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

50 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Deploy client.gigafibre.ca portal route to Traefik
#
# Usage: bash deploy-portal.sh
# Requires: SSH access to 96.125.196.67
set -e
SERVER="root@96.125.196.67"
SSH_KEY="$HOME/.ssh/proxmox_vm"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
echo "=== Deploying client.gigafibre.ca portal route ==="
# 1. Copy Traefik dynamic route
echo " → Copying Traefik config..."
scp -i "$SSH_KEY" "$SCRIPT_DIR/traefik-client-portal.yml" \
"$SERVER:/opt/traefik/dynamic/client-portal.yml"
# 2. Verify Traefik picks it up (check logs for new route)
echo " → Checking Traefik logs for route registration..."
ssh -i "$SSH_KEY" "$SERVER" 'sleep 2 && docker logs --tail 20 traefik 2>&1 | grep -i "client\|portal\|error" || echo " (no portal-specific logs yet — normal on first load)"'
# 3. Verify TLS cert provisioning
echo " → Checking TLS cert (Let's Encrypt will provision on first request)..."
echo " → Try: curl -sI https://client.gigafibre.ca/login | head -5"
# 4. Quick connectivity test
echo ""
echo " → Testing connectivity..."
STATUS=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 "https://client.gigafibre.ca/login" 2>/dev/null || echo "000")
if [ "$STATUS" = "200" ]; then
echo " ✓ client.gigafibre.ca is live! (HTTP $STATUS)"
elif [ "$STATUS" = "000" ]; then
echo " ⏳ TLS cert not ready yet — Let's Encrypt needs a moment"
echo " Wait 30s and try: curl -sI https://client.gigafibre.ca/login"
else
echo " → HTTP $STATUS — check Traefik logs: docker logs --tail 50 traefik"
fi
echo ""
echo "=== Done ==="
echo ""
echo "Portal URL: https://client.gigafibre.ca"
echo "Login: https://client.gigafibre.ca/login"
echo "Invoices: https://client.gigafibre.ca/invoices"
echo "Profile: https://client.gigafibre.ca/me"
echo ""
echo "Test user: etl@exprotransit.com / TestPortal2026!"