# Development Setup ## Schnellstart ### Starten (Development Environment) ```bash # Mit Script (empfohlen): ./dev.sh # Oder manuell: docker compose -f docker/dev/docker-compose.yml up -d ``` ### Zugriff - **Frontend**: http://localhost:3000 (Hot Module Reloading aktiv) - **Backend**: http://localhost:5001 (API) - **Slideshow**: http://localhost:3000/slideshow ### Logs verfolgen ```bash # Alle Services: docker compose -f docker/dev/docker-compose.yml logs -f # Nur Frontend: docker compose -f docker/dev/docker-compose.yml logs -f frontend-dev # Nur Backend: docker compose -f docker/dev/docker-compose.yml logs -f backend-dev ``` ### Entwicklung #### Frontend-Entwicklung - Code in `frontend/src/` editieren → Hot Module Reload übernimmt Änderungen - Volumes: Source-Code wird live in Container gemountet - Container-Namen: `image-uploader-frontend-dev` #### Backend-Entwicklung - Code in `backend/src/` editieren → Container restart für Änderungen - Container-Namen: `image-uploader-backend-dev` - Environment: `NODE_ENV=development` #### Konfiguration anpassen - **Frontend**: `docker/dev/frontend/config/.env` - **Backend**: `docker/dev/backend/config/.env` - **Nginx**: `docker/dev/frontend/nginx.conf` ### Container-Management ```bash # Status anzeigen: docker compose -f docker/dev/docker-compose.yml ps # Container neustarten: docker compose -f docker/dev/docker-compose.yml restart # Container neu bauen: docker compose -f docker/dev/docker-compose.yml build --no-cache # Stoppen: docker compose -f docker/dev/docker-compose.yml down # Mit Volumes löschen: docker compose -f docker/dev/docker-compose.yml down -v ``` ### Shell-Zugriff ```bash # Frontend Container: docker compose -f docker/dev/docker-compose.yml exec frontend-dev bash # Backend Container: docker compose -f docker/dev/docker-compose.yml exec backend-dev bash ``` docker compose exec image-uploader-frontend nginx -s reload docker compose down