2025-07-24 07:39:43 +02:00
# Bamort Development Environment
Diese Docker-Konfiguration ermöglicht es, die Bamort-Anwendung in einer Entwicklungsumgebung zu starten, in der Änderungen am Code sofort verfügbar sind.
## Voraussetzungen
- Docker und Docker Compose installiert
- Ports 8080 (Backend) und 5173 (Frontend) verfügbar
## Starten der Entwicklungsumgebung
``` bash
# Aus dem docker/ Verzeichnis
./start-dev.sh
# Oder manuell
docker-compose -f docker-compose.dev.yml up --build
```
## Stoppen der Entwicklungsumgebung
``` bash
# Aus dem docker/ Verzeichnis
./stop-dev.sh
# Oder manuell
docker-compose -f docker-compose.dev.yml down
```
## Verfügbare Services
2025-08-12 22:09:15 +02:00
### MariaDB (Datenbankserver)
- **Port**: 3306 (localhost:3306)
- **Datenbank**: bamort
- **Benutzer**: bamort
- **Passwort**: bG4)efozrc (Development)
- **Root-Passwort**: root_password_dev
- **Persistent**: ✅ Daten bleiben bei Container-Neustarts erhalten
- **Health Check**: ✅ Backend wartet auf Datenbankbereitschaft
### phpMyAdmin (Datenbank-Management)
- **URL**: http://localhost:8082
- **Server**: mariadb (automatisch konfiguriert)
- **Login**: root / root_password_dev (oder bamort / bG4)efozrc)
- **Features**: ✅ Web-basiertes Datenbank-Management
- **Auto-Login**: ✅ Vorkonfiguriert für MariaDB-Container
2025-07-24 07:39:43 +02:00
### Backend (Go mit Air Live-Reloading)
2025-08-12 22:09:15 +02:00
- **URL**: http://localhost:8180
- **API-Dokumentation**: http://localhost:8180/api (falls verfügbar)
- **Datenbankverbindung**: Automatisch konfiguriert zu MariaDB-Container
2025-07-24 07:39:43 +02:00
- **Live-Reloading**: ✅ Änderungen an Go-Dateien lösen automatisch einen Neustart aus
- **Volume**: Backend-Code wird vom lokalen Verzeichnis gemountet
### Frontend (Vue.js mit Vite Dev Server)
- **URL**: http://localhost:5173
- **Live-Reloading**: ✅ Änderungen an Vue-Dateien werden sofort übernommen
- **Hot Module Replacement**: ✅ Aktiviert für schnelle Entwicklung
- **Volume**: Frontend-Code wird vom lokalen Verzeichnis gemountet
## Entwicklung
### Backend-Entwicklung
- Alle Änderungen an `.go` Dateien im `backend/` Verzeichnis werden automatisch erkannt
- Der Server wird automatisch neu gestartet bei Änderungen
- Logs sind in der Docker-Konsole sichtbar
### Frontend-Entwicklung
- Alle Änderungen an Vue-Komponenten, CSS und anderen Assets werden sofort übernommen
- Vite's Hot Module Replacement sorgt für schnelle Updates ohne vollständigen Page-Reload
- Build-Fehler werden im Browser angezeigt
## Debugging
### Backend-Logs anzeigen
``` bash
docker-compose -f docker-compose.dev.yml logs backend-dev
```
### Frontend-Logs anzeigen
``` bash
docker-compose -f docker-compose.dev.yml logs frontend-dev
```
### In Container einsteigen
``` bash
2025-08-12 22:09:15 +02:00
# MariaDB
docker exec -it bamort-mariadb-dev mysql -u bamort -p bamort
# phpMyAdmin (Web-Interface)
# Zugriff über Browser: http://localhost:8082
2025-07-24 07:39:43 +02:00
# Backend
docker exec -it bamort-backend-dev sh
# Frontend
docker exec -it bamort-frontend-dev sh
```
2025-08-12 22:09:15 +02:00
## Datenbank-Management
### Web-Interface (phpMyAdmin)
- **URL**: http://localhost:8082
- **Login**:
- Root: `root` / `root_password_dev`
- User: `bamort` / `bG4)efozrc`
- **Features**: Vollständige Datenbankverwaltung über Web-Interface
### Kommandozeilen-Zugriff
``` bash
# Mit mysql client im Container
docker exec -it bamort-mariadb-dev mysql -u bamort -p bamort
# Oder als root
docker exec -it bamort-mariadb-dev mysql -u root -p
```
### Backup/Restore
``` bash
# Backup erstellen
docker exec bamort-mariadb-dev mysqldump -u bamort -pbG4) efozrc bamort > backup.sql
# Backup einspielen
docker exec -i bamort-mariadb-dev mysql -u bamort -pbG4) efozrc bamort < backup.sql
```
### Datenbank zurücksetzen
``` bash
# Volumes löschen (alle Daten gehen verloren!)
docker-compose -f docker-compose.dev.yml down -v
docker-compose -f docker-compose.dev.yml up --build
```
2025-07-24 07:39:43 +02:00
## Konfiguration
2025-08-12 22:09:15 +02:00
### MariaDB
- Version: 11.4
- Charset: utf8mb4
- Collation: utf8mb4_unicode_ci
- Initialisierungsskripte: `docker/init-db/`
2025-07-24 07:39:43 +02:00
### Backend
- Environment: `development`
2025-08-12 22:09:15 +02:00
- Datenbanktyp: mysql (MariaDB)
- Datenbankverbindung: Automatisch konfiguriert
2025-07-24 07:39:43 +02:00
- Air-Konfiguration: `backend/.air.toml`
- Ausgeschlossene Dateien: Tests, Uploads, temporäre Dateien
### Frontend
- Environment: `development`
- Vite dev server mit `--host 0.0.0.0` für Docker-Zugriff
- API URL: `http://localhost:8080` (konfigurierbar über VITE_API_URL)
## Troubleshooting
### Port bereits in Verwendung
2025-08-12 22:09:15 +02:00
Stelle sicher, dass die Ports 3306, 8080, 8082, 8180 und 5173 nicht von anderen Anwendungen verwendet werden.
### Datenbankverbindungsfehler
- Warte nach dem Start 10-15 Sekunden, bis MariaDB vollständig initialisiert ist
- Überprüfe die Logs: `docker-compose -f docker-compose.dev.yml logs mariadb`
### phpMyAdmin nicht erreichbar
- Stelle sicher, dass Port 8082 frei ist
- Warte bis MariaDB vollständig gestartet ist
- Überprüfe die Logs: `docker-compose -f docker-compose.dev.yml logs phpmyadmin`
2025-07-24 07:39:43 +02:00
### Node_modules Probleme
Falls es Probleme mit node_modules gibt:
``` bash
docker-compose -f docker-compose.dev.yml down -v
docker-compose -f docker-compose.dev.yml up --build
```
### Go Modules Cache
Der Go-Module-Cache wird in einem Volume gespeichert, um Downloads zu beschleunigen.