# Flutter Tank Web App - Docker Deployment

Dieser Ordner enthält alle notwendigen Dateien für das Docker-Deployment der Flutter Tank Web App.

## 📋 Voraussetzungen

- Docker muss auf dem Server installiert sein
- Port 8888 muss verfügbar sein

## 🚀 Deployment

### 1. Ordner auf Server kopieren

Kopieren Sie den kompletten `webserver` Ordner auf Ihren Server:

```bash
scp -r webserver user@your-server:/path/to/destination/
```

### 2. In den installDocker Ordner wechseln

```bash
cd /path/to/destination/webserver/installDocker
```

### 3. Deployment ausführen

```bash
./deploy.sh
```

Das Script führt automatisch folgende Schritte aus:
- Stoppt und entfernt bestehende Container
- Baut das Docker Image
- Startet den Container auf Port 8888
- Zeigt den Status an

## 🌐 Zugriff

Nach erfolgreichem Deployment ist die App erreichbar unter:
- **Web App:** `http://your-server:8888`
- **Health Check:** `http://your-server:8888/health`

## 🔧 Nützliche Befehle

```bash
# Logs anzeigen
docker logs flutter-tank-web-container

# Logs live verfolgen
docker logs -f flutter-tank-web-container

# Container stoppen
docker stop flutter-tank-web-container

# Container neustarten
docker restart flutter-tank-web-container

# Container und Image entfernen
docker stop flutter-tank-web-container
docker rm flutter-tank-web-container
docker rmi flutter-tank-web
```

## 📁 Dateien

- **Dockerfile** - Docker Image Definition (nginx:alpine mit Flutter Web Build)
- **nginx.conf** - Nginx Konfiguration mit Gzip, Caching und Flutter Routing
- **deploy.sh** - Automatisches Deployment-Script
- **README.md** - Diese Dokumentation

## 🔒 Sicherheit

Die nginx.conf enthält bereits:
- Security Headers (X-Frame-Options, X-Content-Type-Options, X-XSS-Protection)
- Gzip Kompression für bessere Performance
- Caching für statische Assets (1 Jahr)
- Client-side Routing Support für Flutter

## 🐛 Troubleshooting

**Container startet nicht:**
```bash
docker logs flutter-tank-web-container
```

**Port bereits in Verwendung:**
Ändern Sie in `deploy.sh` die Variable `PORT=8888` auf einen anderen Port.

**Berechtigungsprobleme:**
```bash
chmod +x deploy.sh
```
