@@ -62,25 +62,91 @@ For detailed documentation, see: docs/SETUP.md
62
62
EOF
63
63
}
64
64
65
+ # Install Docker
66
+ install_docker () {
67
+ print_info " Installing Docker and Docker Compose..."
68
+
69
+ # Update package index
70
+ sudo apt-get update
71
+
72
+ # Install required packages
73
+ sudo apt-get install -y \
74
+ ca-certificates \
75
+ curl \
76
+ gnupg \
77
+ lsb-release
78
+
79
+ # Add Docker's official GPG key
80
+ sudo mkdir -m 0755 -p /etc/apt/keyrings
81
+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
82
+
83
+ # Set up the repository
84
+ echo \
85
+ " deb [arch=$( dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
86
+ $( lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
87
+
88
+ # Update package index with Docker packages
89
+ sudo apt-get update
90
+
91
+ # Install Docker Engine and Docker Compose
92
+ sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
93
+
94
+ # Add current user to docker group
95
+ sudo usermod -aG docker $USER
96
+
97
+ print_success " Docker and Docker Compose installed successfully!"
98
+ print_warning " Please log out and log back in for group changes to take effect."
99
+ print_info " Or run: newgrp docker"
100
+ }
101
+
65
102
# Check prerequisites
66
103
check_prerequisites () {
67
104
print_info " Checking prerequisites..."
68
105
69
106
# Check Docker
70
107
if ! command -v docker & > /dev/null; then
71
- print_error " Docker is not installed. Please install Docker Desktop."
72
- exit 1
108
+ print_warning " Docker is not installed."
109
+ echo -n " Would you like to install Docker and Docker Compose automatically? (y/N): "
110
+ read -r response
111
+ if [[ " $response " =~ ^[Yy]$ ]]; then
112
+ install_docker
113
+ print_info " Please restart your terminal session and run the script again."
114
+ exit 0
115
+ else
116
+ print_error " Docker is required. Please install Docker Desktop manually."
117
+ exit 1
118
+ fi
73
119
fi
74
120
75
121
# Check Docker Compose
76
- if ! command -v docker-compose & > /dev/null; then
77
- print_error " Docker Compose is not installed. Please install Docker Compose."
78
- exit 1
122
+ if ! command -v docker compose & > /dev/null; then
123
+ print_warning " Docker Compose is not installed."
124
+ echo -n " Would you like to install Docker Compose automatically? (y/N): "
125
+ read -r response
126
+ if [[ " $response " =~ ^[Yy]$ ]]; then
127
+ # Install Docker Compose plugin
128
+ sudo apt-get update
129
+ sudo apt-get install -y docker-compose-plugin
130
+ print_success " Docker Compose installed successfully!"
131
+ else
132
+ print_error " Docker Compose is required. Please install Docker Compose manually."
133
+ exit 1
134
+ fi
79
135
fi
80
136
81
137
# Check Git (optional but recommended)
82
138
if ! command -v git & > /dev/null; then
83
139
print_warning " Git is not installed. Some features may not work optimally."
140
+ echo -n " Would you like to install Git? (y/N): "
141
+ read -r response
142
+ if [[ " $response " =~ ^[Yy]$ ]]; then
143
+ print_info " Installing Git..."
144
+ sudo apt-get update
145
+ sudo apt-get install -y git
146
+ print_success " Git installed successfully!"
147
+ else
148
+ print_info " Continuing without Git. Some features may be limited."
149
+ fi
84
150
fi
85
151
86
152
print_success " Prerequisites check completed"
108
174
print_info " Starting development services..."
109
175
110
176
# Start development services
111
- docker- compose up -d
177
+ docker compose up -d
112
178
113
179
print_success " Development environment is running!"
114
180
echo " "
154
220
print_info " Starting production services..."
155
221
156
222
# Start production services with HTTPS by default
157
- docker- compose -f docker- compose.prod.yml up -d
223
+ docker compose -f docker compose.prod.yml up -d
158
224
159
225
print_success " Standard production environment is running!"
160
226
show_access_info
@@ -189,10 +255,10 @@ GPU_WORKERS=1
189
255
EOF
190
256
191
257
print_info " Downloading AI models..."
192
- docker- compose -f docker- compose.yml -f docker- compose.genai.yml --profile setup run --rm model-downloader
258
+ docker compose -f docker compose.yml -f docker compose.genai.yml --profile setup run --rm model-downloader
193
259
194
260
print_info " Starting GenAI services..."
195
- docker- compose -f docker- compose.yml -f docker- compose.genai.yml up -d
261
+ docker compose -f docker compose.yml -f docker compose.genai.yml up -d
196
262
197
263
print_success " GenAI environment is running!"
198
264
show_access_info
@@ -244,7 +310,7 @@ setup_standard_https() {
244
310
./scripts/enhanced-ssl-manager.sh setup-prod " $DOMAIN_NAME " " $CERTBOT_EMAIL "
245
311
246
312
print_info " Restarting services with Let's Encrypt..."
247
- docker- compose -f docker- compose.prod.yml restart traefik
313
+ docker compose -f docker compose.prod.yml restart traefik
248
314
249
315
print_success " HTTPS environment with Let's Encrypt is running!"
250
316
}
@@ -266,8 +332,8 @@ setup_genai_https() {
266
332
./scripts/enhanced-ssl-manager.sh setup-prod " $DOMAIN_NAME " " $CERTBOT_EMAIL "
267
333
268
334
print_info " Restarting services with Let's Encrypt..."
269
- docker- compose -f docker- compose.yml -f docker- compose.genai.yml down
270
- docker- compose -f docker- compose.prod.yml --profile genai up -d
335
+ docker compose -f docker compose.yml -f docker compose.genai.yml down
336
+ docker compose -f docker compose.prod.yml --profile genai up -d
271
337
272
338
print_success " GenAI + HTTPS environment with Let's Encrypt is running!"
273
339
}
@@ -287,7 +353,7 @@ show_access_info() {
287
353
print_info " Management Commands:"
288
354
print_info " • Check status: ${CYAN} ./setup.sh --status${NC} "
289
355
print_info " • Validate: ${CYAN} ./setup.sh --validate${NC} "
290
- print_info " • View logs: ${CYAN} docker- compose logs -f${NC} "
356
+ print_info " • View logs: ${CYAN} docker compose logs -f${NC} "
291
357
echo " "
292
358
}
293
359
@@ -300,7 +366,7 @@ validate_deployment() {
300
366
# Show deployment status
301
367
show_status () {
302
368
print_info " Deployment Status:"
303
- docker- compose ps
369
+ docker compose ps
304
370
305
371
echo " "
306
372
print_info " Service Health:"
0 commit comments