Initial commit: Full project structure
- Backend: NestJS with Docker - Frontend: Next.js with Docker - Nginx configuration for reverse proxy - PostgreSQL setup - Docker compose for orchestration - Development environment configuration
This commit is contained in:
68
infrastructure/scripts/deploy.sh
Normal file
68
infrastructure/scripts/deploy.sh
Normal file
@@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${BLUE}╔════════════════════════════════════════╗${NC}"
|
||||
echo -e "${BLUE}║ Dyolink - Deploy Tool ║${NC}"
|
||||
echo -e "${BLUE}╚════════════════════════════════════════╝${NC}"
|
||||
|
||||
# Load environment
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
echo -e "${GREEN}✓ Loaded .env${NC}"
|
||||
fi
|
||||
|
||||
# Check for env files
|
||||
ENV_FILES=("database.env" "backend.env" "frontend.env")
|
||||
for env_file in "${ENV_FILES[@]}"; do
|
||||
if [ ! -f "$env_file" ]; then
|
||||
echo -e "${YELLOW}⚠ $env_file not found, creating from example${NC}"
|
||||
if [ -f "${env_file}.example" ]; then
|
||||
cp "${env_file}.example" "$env_file"
|
||||
echo -e "${RED}❕ Edit $env_file with production values!${NC}"
|
||||
read -p "Continue? (y/n): " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Create directories
|
||||
mkdir -p logs/nginx database/backups ssl
|
||||
|
||||
# Get version
|
||||
read -p "Enter version to deploy (default: ${TAG:-latest}): " DEPLOY_TAG
|
||||
DEPLOY_TAG=${DEPLOY_TAG:-${TAG:-latest}}
|
||||
export TAG=$DEPLOY_TAG
|
||||
export DOCKER_USERNAME=${DOCKER_USERNAME:-yourdockerhub}
|
||||
|
||||
# Pull images
|
||||
echo -e "${YELLOW}Pulling images from Docker Hub...${NC}"
|
||||
docker-compose -f docker-compose.prod.yml pull
|
||||
|
||||
# Stop old
|
||||
echo -e "${YELLOW}Stopping old containers...${NC}"
|
||||
docker-compose -f docker-compose.prod.yml down
|
||||
|
||||
# Start new
|
||||
echo -e "${YELLOW}Starting containers...${NC}"
|
||||
docker-compose -f docker-compose.prod.yml up -d
|
||||
|
||||
# Wait for health
|
||||
echo -e "${YELLOW}Waiting for services...${NC}"
|
||||
sleep 10
|
||||
|
||||
# Show status
|
||||
echo -e "\n${GREEN}=== Status ===${NC}"
|
||||
docker-compose -f docker-compose.prod.yml ps
|
||||
|
||||
echo -e "\n${BLUE}╔════════════════════════════════════════╗${NC}"
|
||||
echo -e "${BLUE}║ Deployment Complete! ║${NC}"
|
||||
echo -e "${BLUE}╚════════════════════════════════════════╝${NC}"
|
||||
Reference in New Issue
Block a user