tractatus/scripts/deploy-koha-to-production.sh
TheFlow ae16d64082 feat: add Koha pre-production deployment configuration
Deployment Strategy:
- Deploy all Koha infrastructure to production
- Keep user-facing functionality disabled until Stripe keys configured
- Allow backend testing and validation before payment processing activation

Changes:
- Add coming-soon-overlay.js component for Koha pages
- Add Stripe configuration check in koha.controller.js (returns 503 if PLACEHOLDER keys detected)
- Update all Koha HTML pages with coming soon overlay script
- Create comprehensive deployment guide (KOHA_PRODUCTION_DEPLOYMENT.md)
- Create automated deployment script (deploy-koha-to-production.sh)

Pre-Production Features:
- Database initialization ready (init-koha.js)
- API endpoints functional but protected
- Transparency dashboard returns empty data structure
- Coming soon overlay prevents user access to incomplete functionality
- All code deployed and testable

Activation Checklist:
- Configure live Stripe keys
- Remove coming-soon overlay scripts
- Remove PLACEHOLDER checks from controller
- Add navigation links to Koha pages
- Test end-to-end donation flow

Estimated Time to Activate: 2-3 hours once Stripe keys ready

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 21:00:54 +13:00

102 lines
3.5 KiB
Bash
Executable file

#!/bin/bash
##
## Koha Production Deployment Script
## Deploys Koha system to production WITHOUT activating Stripe
##
set -e # Exit on error
# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Production server details
SSH_KEY="/home/theflow/.ssh/tractatus_deploy"
SSH_USER="ubuntu"
SSH_HOST="vps-93a693da.vps.ovh.net"
REMOTE_PATH="/var/www/tractatus"
LOCAL_PATH="/home/theflow/projects/tractatus"
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE}Koha Production Deployment (Pre-Stripe)${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
# Step 1: Deploy backend configuration
echo -e "${GREEN}[1/7] Deploying backend configuration...${NC}"
rsync -avz -e "ssh -i $SSH_KEY" \
"$LOCAL_PATH/src/config/currencies.config.js" \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/src/config/"
# Step 2: Deploy backend services
echo -e "${GREEN}[2/7] Deploying backend services...${NC}"
rsync -avz -e "ssh -i $SSH_KEY" \
"$LOCAL_PATH/src/services/koha.service.js" \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/src/services/"
# Step 3: Deploy backend controllers
echo -e "${GREEN}[3/7] Deploying backend controllers...${NC}"
rsync -avz -e "ssh -i $SSH_KEY" \
"$LOCAL_PATH/src/controllers/koha.controller.js" \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/src/controllers/"
# Step 4: Deploy backend models
echo -e "${GREEN}[4/7] Deploying backend models...${NC}"
rsync -avz -e "ssh -i $SSH_KEY" \
"$LOCAL_PATH/src/models/Donation.model.js" \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/src/models/"
# Step 5: Deploy backend routes
echo -e "${GREEN}[5/7] Deploying backend routes...${NC}"
rsync -avz -e "ssh -i $SSH_KEY" \
"$LOCAL_PATH/src/routes/koha.routes.js" \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/src/routes/"
# Step 6: Deploy frontend pages
echo -e "${GREEN}[6/7] Deploying frontend pages...${NC}"
rsync -avz -e "ssh -i $SSH_KEY" \
"$LOCAL_PATH/public/koha.html" \
"$LOCAL_PATH/public/privacy.html" \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/public/"
rsync -avz -e "ssh -i $SSH_KEY" \
"$LOCAL_PATH/public/koha/" \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/public/koha/"
# Step 7: Deploy frontend JavaScript
echo -e "${GREEN}[7/7] Deploying frontend JavaScript...${NC}"
rsync -avz -e "ssh -i $SSH_KEY" \
"$LOCAL_PATH/public/js/utils/currency.js" \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/public/js/utils/"
rsync -avz -e "ssh -i $SSH_KEY" \
"$LOCAL_PATH/public/js/components/currency-selector.js" \
"$LOCAL_PATH/public/js/components/footer.js" \
"$LOCAL_PATH/public/js/components/coming-soon-overlay.js" \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/public/js/components/"
# Deploy scripts
echo -e "${GREEN}Deploying initialization scripts...${NC}"
rsync -avz -e "ssh -i $SSH_KEY" \
"$LOCAL_PATH/scripts/init-koha.js" \
"$SSH_USER@$SSH_HOST:$REMOTE_PATH/scripts/"
echo ""
echo -e "${BLUE}========================================${NC}"
echo -e "${GREEN}✓ Deployment Complete${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
echo -e "${YELLOW}Next Steps:${NC}"
echo "1. SSH into production: ssh -i $SSH_KEY $SSH_USER@$SSH_HOST"
echo "2. Initialize database: cd $REMOTE_PATH && node scripts/init-koha.js"
echo "3. Update .env with PLACEHOLDER Stripe keys"
echo "4. Restart server: sudo systemctl restart tractatus"
echo "5. Test API: curl https://agenticgovernance.digital/api/koha/transparency"
echo "6. Verify overlay: https://agenticgovernance.digital/koha.html"
echo ""
echo -e "${YELLOW}Documentation:${NC}"
echo "$LOCAL_PATH/docs/KOHA_PRODUCTION_DEPLOYMENT.md"
echo ""