- Added root .gitignore to exclude node_modules - Updated backend and frontend package-lock.json - Updated STATUS.md - Added deployment helper scripts
141 lines
4.7 KiB
Bash
Executable file
141 lines
4.7 KiB
Bash
Executable file
#!/bin/bash
|
|
# CA Grow Ops Manager - Automated Deployment Script
|
|
# Run this after creating the Forgejo repository
|
|
|
|
set -e # Exit on error
|
|
|
|
echo "🚀 CA Grow Ops Manager - Automated Deployment"
|
|
echo "=============================================="
|
|
echo ""
|
|
|
|
# Colors
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Step 1: Add Git remote
|
|
echo -e "${BLUE}Step 1: Adding Forgejo remote...${NC}"
|
|
if git remote | grep -q "^origin$"; then
|
|
echo " Remote 'origin' already exists, removing..."
|
|
git remote remove origin
|
|
fi
|
|
git remote add origin https://git.runfoo.run/malty/ca-grow-ops-manager.git
|
|
echo -e "${GREEN}✓ Remote added${NC}"
|
|
echo ""
|
|
|
|
# Step 2: Push to Forgejo
|
|
echo -e "${BLUE}Step 2: Pushing code to Forgejo...${NC}"
|
|
echo " You may be prompted for Forgejo credentials"
|
|
git push -u origin main
|
|
echo -e "${GREEN}✓ Code pushed${NC}"
|
|
echo ""
|
|
|
|
# Step 3: Display SSH private key for Forgejo secret
|
|
echo -e "${BLUE}Step 3: SSH Private Key for Forgejo Secret${NC}"
|
|
echo -e "${YELLOW}IMPORTANT: Copy the following private key and add it to Forgejo secrets${NC}"
|
|
echo ""
|
|
echo "Go to: https://git.runfoo.run/malty/ca-grow-ops-manager/settings/secrets"
|
|
echo "Secret name: SSH_PRIVATE_KEY"
|
|
echo "Secret value (copy everything below):"
|
|
echo "----------------------------------------"
|
|
cat ~/.ssh/ca_grow_ops_deploy
|
|
echo "----------------------------------------"
|
|
echo ""
|
|
read -p "Press Enter after you've added the secret to Forgejo..."
|
|
echo -e "${GREEN}✓ SSH key noted${NC}"
|
|
echo ""
|
|
|
|
# Step 4: Clone to nexus-vector
|
|
echo -e "${BLUE}Step 4: Cloning repository to nexus-vector...${NC}"
|
|
ssh admin@nexus-vector "cd /srv/containers && git clone https://git.runfoo.run/malty/ca-grow-ops-manager.git ca-grow-ops-manager || (cd ca-grow-ops-manager && git pull origin main)"
|
|
echo -e "${GREEN}✓ Repository cloned${NC}"
|
|
echo ""
|
|
|
|
# Step 5: Generate environment variables
|
|
echo -e "${BLUE}Step 5: Generating secure environment variables...${NC}"
|
|
DB_PASSWORD=$(openssl rand -base64 32)
|
|
JWT_SECRET=$(openssl rand -base64 64)
|
|
|
|
ssh admin@nexus-vector "cat > /srv/containers/ca-grow-ops-manager/docker-compose.env << 'EOF'
|
|
# Database
|
|
DB_PASSWORD=${DB_PASSWORD}
|
|
|
|
# JWT
|
|
JWT_SECRET=${JWT_SECRET}
|
|
|
|
# Email (optional for v1)
|
|
EMAIL_SERVICE=sendgrid
|
|
EMAIL_API_KEY=your_api_key_here
|
|
EMAIL_FROM=noreply@example.com
|
|
EOF"
|
|
|
|
echo -e "${GREEN}✓ Environment variables generated${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}IMPORTANT: Save these credentials:${NC}"
|
|
echo "DB_PASSWORD=${DB_PASSWORD}"
|
|
echo "JWT_SECRET=${JWT_SECRET}"
|
|
echo ""
|
|
read -p "Press Enter after you've saved these credentials..."
|
|
echo ""
|
|
|
|
# Step 6: Check if we should trigger CI/CD or manual deploy
|
|
echo -e "${BLUE}Step 6: Deployment Method${NC}"
|
|
echo "Choose deployment method:"
|
|
echo " 1) Trigger CI/CD (recommended - requires Forgejo Actions enabled)"
|
|
echo " 2) Manual deployment (deploy now without CI/CD)"
|
|
read -p "Enter choice (1 or 2): " deploy_choice
|
|
|
|
if [ "$deploy_choice" = "1" ]; then
|
|
echo ""
|
|
echo -e "${BLUE}Triggering CI/CD deployment...${NC}"
|
|
echo "# Trigger CI/CD" >> README.md
|
|
git add README.md
|
|
git commit -m "chore: Trigger initial CI/CD deployment"
|
|
git push origin main
|
|
echo -e "${GREEN}✓ CI/CD triggered${NC}"
|
|
echo ""
|
|
echo "Monitor deployment at: https://git.runfoo.run/malty/ca-grow-ops-manager/actions"
|
|
else
|
|
echo ""
|
|
echo -e "${BLUE}Performing manual deployment...${NC}"
|
|
ssh admin@nexus-vector "cd /srv/containers/ca-grow-ops-manager && docker compose build && docker compose up -d"
|
|
echo -e "${GREEN}✓ Services deployed${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# Step 7: Verify deployment
|
|
echo -e "${BLUE}Step 7: Verifying deployment...${NC}"
|
|
sleep 10 # Wait for services to start
|
|
echo "Checking service health..."
|
|
ssh admin@nexus-vector "curl -f http://localhost:8010/api/healthz 2>/dev/null || echo 'Health check will be available once backend is implemented'"
|
|
echo ""
|
|
echo "Container status:"
|
|
ssh admin@nexus-vector "cd /srv/containers/ca-grow-ops-manager && docker compose ps"
|
|
echo ""
|
|
|
|
# Final summary
|
|
echo -e "${GREEN}=============================================="
|
|
echo "✅ Deployment Complete!"
|
|
echo "==============================================
|
|
|
|
${NC}"
|
|
echo ""
|
|
echo "📊 Summary:"
|
|
echo " - Repository: https://git.runfoo.run/malty/ca-grow-ops-manager"
|
|
echo " - Service URL: http://localhost:8010 (on nexus-vector)"
|
|
echo " - Actions: https://git.runfoo.run/malty/ca-grow-ops-manager/actions"
|
|
echo ""
|
|
echo "📝 Next Steps:"
|
|
echo " 1. Enable Forgejo Actions in repository settings"
|
|
echo " 2. Start implementing Week 1 tasks"
|
|
echo " 3. Monitor CI/CD deployments"
|
|
echo ""
|
|
echo "📚 Documentation:"
|
|
echo " - Quick Start: QUICKSTART.md"
|
|
echo " - Deployment: DEPLOYMENT.md"
|
|
echo " - CI/CD: CI-CD.md"
|
|
echo " - Tasks: plans/tasks-week-1-infrastructure.md"
|
|
echo ""
|
|
echo -e "${GREEN}Happy coding! 🚀${NC}"
|