-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdeploy.sh
More file actions
executable file
Β·158 lines (136 loc) Β· 4.41 KB
/
deploy.sh
File metadata and controls
executable file
Β·158 lines (136 loc) Β· 4.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/bin/bash
# Vidya Chat Agent Deployment Script
set -e
echo "π Starting Vidya Chat Agent Deployment..."
# Check if GEMINI_API_KEY is set
if [ -z "$GEMINI_API_KEY" ]; then
echo "β Error: GEMINI_API_KEY environment variable is not set"
echo "Please set your Gemini API key: export GEMINI_API_KEY='your_api_key_here'"
exit 1
fi
# Check if Docker is running
if ! docker info > /dev/null 2>&1; then
echo "β Error: Docker is not running"
echo "Please start Docker and try again"
exit 1
fi
# Check if docker-compose is available
if ! command -v docker-compose &> /dev/null; then
echo "β Error: docker-compose is not installed"
echo "Please install docker-compose and try again"
exit 1
fi
# Function to deploy development environment
deploy_dev() {
echo "π§ Deploying Development Environment..."
# Build and start services
docker-compose up -d --build
# Wait for services to be healthy
echo "β³ Waiting for services to be ready..."
sleep 30
# Run database migrations
echo "ποΈ Running database migrations..."
docker-compose exec backend uv run alembic upgrade head
echo "β
Development environment deployed successfully!"
echo "π API available at: http://localhost:8000"
echo "π API docs at: http://localhost:8000/docs"
echo "ποΈ pgAdmin at: http://localhost:5050 (admin@vidya.com / admin123)"
}
# Function to deploy production environment
deploy_prod() {
echo "π Deploying Production Environment..."
# Check for required environment variables
if [ -z "$POSTGRES_PASSWORD" ]; then
echo "β οΈ Warning: POSTGRES_PASSWORD not set, using default"
export POSTGRES_PASSWORD="secure_password_here"
fi
# Build and start services
docker-compose -f docker-compose.prod.yml up -d --build
# Wait for services to be healthy
echo "β³ Waiting for services to be ready..."
sleep 30
# Run database migrations
echo "ποΈ Running database migrations..."
docker-compose -f docker-compose.prod.yml exec backend uv run alembic upgrade head
echo "β
Production environment deployed successfully!"
echo "π API available at: http://localhost"
echo "π API docs at: http://localhost/docs"
}
# Function to stop services
stop_services() {
echo "π Stopping services..."
if [ "$1" = "prod" ]; then
docker-compose -f docker-compose.prod.yml down
else
docker-compose down
fi
echo "β
Services stopped"
}
# Function to show logs
show_logs() {
if [ "$1" = "prod" ]; then
docker-compose -f docker-compose.prod.yml logs -f
else
docker-compose logs -f
fi
}
# Function to show status
show_status() {
if [ "$1" = "prod" ]; then
docker-compose -f docker-compose.prod.yml ps
else
docker-compose ps
fi
}
# Main script logic
case "${1:-dev}" in
"dev")
deploy_dev
;;
"prod")
deploy_prod
;;
"stop")
stop_services "${2:-dev}"
;;
"logs")
show_logs "${2:-dev}"
;;
"status")
show_status "${2:-dev}"
;;
"help"|"-h"|"--help")
echo "Vidya Chat Agent Deployment Script"
echo ""
echo "Usage: $0 [COMMAND] [ENVIRONMENT]"
echo ""
echo "Commands:"
echo " dev Deploy development environment (default)"
echo " prod Deploy production environment"
echo " stop Stop services"
echo " logs Show service logs"
echo " status Show service status"
echo " help Show this help message"
echo ""
echo "Environments:"
echo " dev Development (default)"
echo " prod Production"
echo ""
echo "Examples:"
echo " $0 dev # Deploy development environment"
echo " $0 prod # Deploy production environment"
echo " $0 stop dev # Stop development services"
echo " $0 logs prod # Show production logs"
echo ""
echo "Required Environment Variables:"
echo " GEMINI_API_KEY Your Google Gemini API key"
echo ""
echo "Optional Environment Variables:"
echo " POSTGRES_PASSWORD Database password (default: secure_password_here)"
;;
*)
echo "β Unknown command: $1"
echo "Use '$0 help' for usage information"
exit 1
;;
esac