79 lines
1.8 KiB
Bash
79 lines
1.8 KiB
Bash
#!/bin/bash
|
|
# Quick VM Setup Script für Infoscreen Deployment Test
|
|
|
|
echo "🧪 Infoscreen VM Test Setup"
|
|
echo "=========================="
|
|
|
|
# System Update
|
|
echo "📦 System aktualisieren..."
|
|
sudo apt update -y
|
|
sudo apt upgrade -y
|
|
|
|
# Docker Installation
|
|
echo "🐳 Docker installieren..."
|
|
sudo apt install -y docker.io docker-compose-plugin curl wget htop
|
|
|
|
# Docker aktivieren
|
|
sudo systemctl enable docker
|
|
sudo systemctl start docker
|
|
|
|
# User zu Docker-Gruppe hinzufügen
|
|
sudo usermod -aG docker $USER
|
|
|
|
# Firewall konfigurieren
|
|
echo "🔥 Firewall konfigurieren..."
|
|
sudo ufw --force enable
|
|
sudo ufw allow 22/tcp # SSH
|
|
sudo ufw allow 80/tcp # HTTP
|
|
sudo ufw allow 443/tcp # HTTPS
|
|
|
|
# Test-Verzeichnis erstellen
|
|
mkdir -p ~/infoscreen-test
|
|
cd ~/infoscreen-test
|
|
|
|
# Basis-Konfiguration erstellen
|
|
cat > docker-compose.test.yml << 'EOF'
|
|
version: '3.8'
|
|
services:
|
|
nginx:
|
|
image: nginx:alpine
|
|
ports:
|
|
- "80:80"
|
|
volumes:
|
|
- ./nginx-test.conf:/etc/nginx/nginx.conf:ro
|
|
|
|
test-api:
|
|
image: httpd:alpine
|
|
environment:
|
|
- TEST=true
|
|
EOF
|
|
|
|
cat > nginx-test.conf << 'EOF'
|
|
events {}
|
|
http {
|
|
server {
|
|
listen 80;
|
|
location / {
|
|
return 200 "✅ VM Test erfolgreich!\n";
|
|
add_header Content-Type text/plain;
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
|
|
echo ""
|
|
echo "✅ VM Setup abgeschlossen!"
|
|
echo ""
|
|
echo "Nächste Schritte:"
|
|
echo "1. Logout/Login für Docker-Gruppe"
|
|
echo "2. Test: docker run hello-world"
|
|
echo "3. Test: docker compose -f docker-compose.test.yml up -d"
|
|
echo "4. Test: curl http://localhost"
|
|
echo "5. Echtes Deployment: Dateien übertragen und starten"
|
|
echo ""
|
|
echo "🔍 System-Info:"
|
|
echo "Docker: $(docker --version)"
|
|
echo "Compose: $(docker compose version)"
|
|
echo "RAM: $(free -h | grep Mem | awk '{print $2}')"
|
|
echo "Disk: $(df -h / | tail -1 | awk '{print $4}') frei"
|