@@ -62,25 +62,91 @@ For detailed documentation, see: docs/SETUP.md
6262EOF
6363}
6464
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+
65102# Check prerequisites
66103check_prerequisites () {
67104 print_info " Checking prerequisites..."
68105
69106 # Check Docker
70107 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
73119 fi
74120
75121 # 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
79135 fi
80136
81137 # Check Git (optional but recommended)
82138 if ! command -v git & > /dev/null; then
83139 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
84150 fi
85151
86152 print_success " Prerequisites check completed"
108174 print_info " Starting development services..."
109175
110176 # Start development services
111- docker- compose up -d
177+ docker compose up -d
112178
113179 print_success " Development environment is running!"
114180 echo " "
154220 print_info " Starting production services..."
155221
156222 # 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
158224
159225 print_success " Standard production environment is running!"
160226 show_access_info
@@ -189,10 +255,10 @@ GPU_WORKERS=1
189255EOF
190256
191257 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
193259
194260 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
196262
197263 print_success " GenAI environment is running!"
198264 show_access_info
@@ -244,7 +310,7 @@ setup_standard_https() {
244310 ./scripts/enhanced-ssl-manager.sh setup-prod " $DOMAIN_NAME " " $CERTBOT_EMAIL "
245311
246312 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
248314
249315 print_success " HTTPS environment with Let's Encrypt is running!"
250316}
@@ -266,8 +332,8 @@ setup_genai_https() {
266332 ./scripts/enhanced-ssl-manager.sh setup-prod " $DOMAIN_NAME " " $CERTBOT_EMAIL "
267333
268334 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
271337
272338 print_success " GenAI + HTTPS environment with Let's Encrypt is running!"
273339}
@@ -287,7 +353,7 @@ show_access_info() {
287353 print_info " Management Commands:"
288354 print_info " • Check status: ${CYAN} ./setup.sh --status${NC} "
289355 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} "
291357 echo " "
292358}
293359
@@ -300,7 +366,7 @@ validate_deployment() {
300366# Show deployment status
301367show_status () {
302368 print_info " Deployment Status:"
303- docker- compose ps
369+ docker compose ps
304370
305371 echo " "
306372 print_info " Service Health:"
0 commit comments