@@ -62,25 +62,103 @@ 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
+ # Detect operating system
70
+ if [ -f /etc/os-release ]; then
71
+ . /etc/os-release
72
+ if [[ " $ID " != " ubuntu" && " $ID " != " debian" ]]; then
73
+ print_error " Unsupported operating system: $ID . This script supports only Ubuntu/Debian-based systems."
74
+ exit 1
75
+ fi
76
+ else
77
+ print_error " Unable to detect operating system. This script supports only Ubuntu/Debian-based systems."
78
+ exit 1
79
+ fi
80
+
81
+ # Update package index
82
+ sudo apt-get update
83
+
84
+ # Install required packages
85
+ sudo apt-get install -y \
86
+ ca-certificates \
87
+ curl \
88
+ gnupg \
89
+ lsb-release
90
+
91
+ # Add Docker's official GPG key
92
+ sudo mkdir -m 0755 -p /etc/apt/keyrings
93
+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
94
+
95
+ # Set up the repository
96
+ echo \
97
+ " deb [arch=$( dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
98
+ $( lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
99
+
100
+ # Update package index with Docker packages
101
+ sudo apt-get update
102
+
103
+ # Install Docker Engine and Docker Compose
104
+ sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
105
+
106
+ # Add current user to docker group
107
+ sudo usermod -aG docker $USER
108
+
109
+ print_success " Docker and Docker Compose installed successfully!"
110
+ print_warning " Please log out and log back in for group changes to take effect."
111
+ print_info " Or run: newgrp docker"
112
+ }
113
+
65
114
# Check prerequisites
66
115
check_prerequisites () {
67
116
print_info " Checking prerequisites..."
68
117
69
118
# Check Docker
70
119
if ! command -v docker & > /dev/null; then
71
- print_error " Docker is not installed. Please install Docker Desktop."
72
- exit 1
120
+ print_warning " Docker is not installed."
121
+ echo -n " Would you like to install Docker and Docker Compose automatically? (y/N): "
122
+ read -r response
123
+ if [[ " $response " =~ ^[Yy]$ ]]; then
124
+ install_docker
125
+ print_info " Please restart your terminal session and run the script again."
126
+ exit 0
127
+ else
128
+ print_error " Docker is required. Please install Docker Desktop manually."
129
+ exit 1
130
+ fi
73
131
fi
74
132
75
133
# 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
134
+ if ! command -v docker compose & > /dev/null; then
135
+ print_warning " Docker Compose is not installed."
136
+ echo -n " Would you like to install Docker Compose automatically? (y/N): "
137
+ read -r response
138
+ if [[ " $response " =~ ^[Yy]$ ]]; then
139
+ # Install Docker Compose plugin
140
+ sudo apt-get update
141
+ sudo apt-get install -y docker-compose-plugin
142
+ print_success " Docker Compose installed successfully!"
143
+ else
144
+ print_error " Docker Compose is required. Please install Docker Compose manually."
145
+ exit 1
146
+ fi
79
147
fi
80
148
81
149
# Check Git (optional but recommended)
82
150
if ! command -v git & > /dev/null; then
83
151
print_warning " Git is not installed. Some features may not work optimally."
152
+ echo -n " Would you like to install Git? (y/N): "
153
+ read -r response
154
+ if [[ " $response " =~ ^[Yy]$ ]]; then
155
+ print_info " Installing Git..."
156
+ sudo apt-get update
157
+ sudo apt-get install -y git
158
+ print_success " Git installed successfully!"
159
+ else
160
+ print_info " Continuing without Git. Some features may be limited."
161
+ fi
84
162
fi
85
163
86
164
print_success " Prerequisites check completed"
108
186
print_info " Starting development services..."
109
187
110
188
# Start development services
111
- docker- compose up -d
189
+ docker compose up -d
112
190
113
191
print_success " Development environment is running!"
114
192
echo " "
154
232
print_info " Starting production services..."
155
233
156
234
# Start production services with HTTPS by default
157
- docker- compose -f docker- compose.prod.yml up -d
235
+ docker compose -f docker compose.prod.yml up -d
158
236
159
237
print_success " Standard production environment is running!"
160
238
show_access_info
@@ -189,10 +267,10 @@ GPU_WORKERS=1
189
267
EOF
190
268
191
269
print_info " Downloading AI models..."
192
- docker- compose -f docker- compose.yml -f docker- compose.genai.yml --profile setup run --rm model-downloader
270
+ docker compose -f docker compose.yml -f docker compose.genai.yml --profile setup run --rm model-downloader
193
271
194
272
print_info " Starting GenAI services..."
195
- docker- compose -f docker- compose.yml -f docker- compose.genai.yml up -d
273
+ docker compose -f docker compose.yml -f docker compose.genai.yml up -d
196
274
197
275
print_success " GenAI environment is running!"
198
276
show_access_info
@@ -244,7 +322,7 @@ setup_standard_https() {
244
322
./scripts/enhanced-ssl-manager.sh setup-prod " $DOMAIN_NAME " " $CERTBOT_EMAIL "
245
323
246
324
print_info " Restarting services with Let's Encrypt..."
247
- docker- compose -f docker- compose.prod.yml restart traefik
325
+ docker compose -f docker compose.prod.yml restart traefik
248
326
249
327
print_success " HTTPS environment with Let's Encrypt is running!"
250
328
}
@@ -266,8 +344,8 @@ setup_genai_https() {
266
344
./scripts/enhanced-ssl-manager.sh setup-prod " $DOMAIN_NAME " " $CERTBOT_EMAIL "
267
345
268
346
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
347
+ docker compose -f docker compose.yml -f docker compose.genai.yml down
348
+ docker compose -f docker compose.prod.yml --profile genai up -d
271
349
272
350
print_success " GenAI + HTTPS environment with Let's Encrypt is running!"
273
351
}
@@ -287,7 +365,7 @@ show_access_info() {
287
365
print_info " Management Commands:"
288
366
print_info " • Check status: ${CYAN} ./setup.sh --status${NC} "
289
367
print_info " • Validate: ${CYAN} ./setup.sh --validate${NC} "
290
- print_info " • View logs: ${CYAN} docker- compose logs -f${NC} "
368
+ print_info " • View logs: ${CYAN} docker compose logs -f${NC} "
291
369
echo " "
292
370
}
293
371
@@ -300,7 +378,7 @@ validate_deployment() {
300
378
# Show deployment status
301
379
show_status () {
302
380
print_info " Deployment Status:"
303
- docker- compose ps
381
+ docker compose ps
304
382
305
383
echo " "
306
384
print_info " Service Health:"
0 commit comments