82 lines
2.4 KiB
Bash
82 lines
2.4 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Full automated deployment script
|
||
|
|
# This script automates most of the deployment process
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||
|
|
DEPLOYMENT_DIR="$( cd "$SCRIPT_DIR/.." && pwd )"
|
||
|
|
PROJECT_ROOT="$( cd "$DEPLOYMENT_DIR/.." && pwd )"
|
||
|
|
|
||
|
|
# Colors
|
||
|
|
GREEN='\033[0;32m'
|
||
|
|
YELLOW='\033[1;33m'
|
||
|
|
RED='\033[0;31m'
|
||
|
|
NC='\033[0m'
|
||
|
|
|
||
|
|
echo -e "${GREEN}=== Full Deployment Script ===${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Check if running as root
|
||
|
|
if [ "$EUID" -ne 0 ]; then
|
||
|
|
echo -e "${RED}Please run as root${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Phase 1: Install dependencies
|
||
|
|
echo -e "${YELLOW}Phase 1: Installing dependencies...${NC}"
|
||
|
|
"$SCRIPT_DIR/../scripts/setup.sh" || {
|
||
|
|
echo "Installing dependencies manually..."
|
||
|
|
apt update
|
||
|
|
apt install -y curl wget git vim net-tools ufw fail2ban \
|
||
|
|
unattended-upgrades apt-transport-https ca-certificates \
|
||
|
|
gnupg lsb-release software-properties-common
|
||
|
|
}
|
||
|
|
|
||
|
|
# Phase 2: Install Go, Node.js, Docker
|
||
|
|
echo -e "${YELLOW}Phase 2: Installing development tools...${NC}"
|
||
|
|
# These would be installed by setup.sh or manually
|
||
|
|
echo "Please ensure Go, Node.js, and Docker are installed"
|
||
|
|
echo "Run: ./scripts/check-requirements.sh"
|
||
|
|
|
||
|
|
# Phase 3: Setup Nginx
|
||
|
|
echo -e "${YELLOW}Phase 3: Setting up Nginx...${NC}"
|
||
|
|
"$SCRIPT_DIR/setup-nginx.sh"
|
||
|
|
|
||
|
|
# Phase 4: Install services
|
||
|
|
echo -e "${YELLOW}Phase 4: Installing systemd services...${NC}"
|
||
|
|
"$SCRIPT_DIR/install-services.sh"
|
||
|
|
|
||
|
|
# Phase 5: Setup firewall
|
||
|
|
echo -e "${YELLOW}Phase 5: Setting up firewall...${NC}"
|
||
|
|
"$SCRIPT_DIR/setup-firewall.sh"
|
||
|
|
|
||
|
|
# Phase 6: Setup backups
|
||
|
|
echo -e "${YELLOW}Phase 6: Setting up backups...${NC}"
|
||
|
|
"$SCRIPT_DIR/setup-backup.sh"
|
||
|
|
|
||
|
|
# Phase 7: Setup health checks
|
||
|
|
echo -e "${YELLOW}Phase 7: Setting up health checks...${NC}"
|
||
|
|
"$SCRIPT_DIR/setup-health-check.sh"
|
||
|
|
|
||
|
|
# Phase 8: Cloudflare Tunnel (optional, interactive)
|
||
|
|
echo -e "${YELLOW}Phase 8: Cloudflare Tunnel setup (optional)...${NC}"
|
||
|
|
read -p "Do you want to set up Cloudflare Tunnel now? (y/N): " -n 1 -r
|
||
|
|
echo
|
||
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||
|
|
"$SCRIPT_DIR/setup-cloudflare-tunnel.sh"
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo -e "${GREEN}=== Deployment Complete ===${NC}"
|
||
|
|
echo ""
|
||
|
|
echo "Next steps:"
|
||
|
|
echo "1. Configure .env file: /home/explorer/explorer-monorepo/.env"
|
||
|
|
echo "2. Run database migrations"
|
||
|
|
echo "3. Build applications"
|
||
|
|
echo "4. Start services: systemctl start explorer-indexer explorer-api explorer-frontend"
|
||
|
|
echo "5. Configure Cloudflare DNS and SSL"
|
||
|
|
echo ""
|
||
|
|
echo "See DEPLOYMENT_GUIDE.md for detailed instructions"
|
||
|
|
|