Merge branch 'FlexiDB'

This commit is contained in:
2025-07-24 07:39:43 +02:00
parent 1ef16940e6
commit 20659fa5f6
3647 changed files with 15892 additions and 1376968 deletions
+22
View File
@@ -0,0 +1,22 @@
# Development Dockerfile für Go Backend mit Live-Reloading
#FROM golang:1.23-alpine
FROM golang:1.24-alpine
# Install necessary packages for CGO and SQLite
RUN apk add --no-cache gcc musl-dev sqlite-dev
# Install Air für Live-Reloading (kompatible Version für Go 1.23)
#RUN go install github.com/cosmtrek/air@v1.49.0
RUN go install github.com/air-verse/air@latest
WORKDIR /app
# Copy go.mod and go.sum first
COPY go.mod go.sum ./
RUN go mod download
# Expose port
EXPOSE 8180
# Use Air for live reloading
CMD ["air", "-c", ".air.toml"]
+34
View File
@@ -0,0 +1,34 @@
# Alternative Development Dockerfile ohne Air
FROM golang:1.23-alpine
# Install inotify-tools für File-Watching
RUN apk add --no-cache inotify-tools
WORKDIR /app
# Copy go.mod and go.sum first
COPY go.mod go.sum ./
RUN go mod download
# Expose port
EXPOSE 8080
# Simple file watcher script
COPY <<EOF /usr/local/bin/watch-and-run.sh
#!/bin/sh
echo "Starting Go application with file watcher..."
go run ./cmd/main.go &
PID=$!
while inotifywait -r -e modify,create,delete,move . --exclude '(\.git|tmp|uploads|testdata)'; do
echo "Files changed, restarting..."
kill $PID 2>/dev/null
sleep 1
go run ./cmd/main.go &
PID=$!
done
EOF
RUN chmod +x /usr/local/bin/watch-and-run.sh
CMD ["/usr/local/bin/watch-and-run.sh"]
+16
View File
@@ -0,0 +1,16 @@
# Development Dockerfile für Vue.js Frontend
FROM node:18-alpine
WORKDIR /app
# Copy package files
COPY package*.json ./
# Install dependencies
RUN npm install
# Expose Vite dev server port
EXPOSE 5173
# Start development server with host binding for Docker
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]
+102
View File
@@ -0,0 +1,102 @@
# 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
### Backend (Go mit Air Live-Reloading)
- **URL**: http://localhost:8080
- **API-Dokumentation**: http://localhost:8080/api (falls verfügbar)
- **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
# Backend
docker exec -it bamort-backend-dev sh
# Frontend
docker exec -it bamort-frontend-dev sh
```
## Konfiguration
### Backend
- Environment: `development`
- 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
Stelle sicher, dass die Ports 8080 und 5173 nicht von anderen Anwendungen verwendet werden.
### 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.
+40
View File
@@ -0,0 +1,40 @@
version: "3.8"
services:
backend-dev:
build:
context: ../backend
dockerfile: ../docker/Dockerfile.backend.dev
container_name: bamort-backend-dev
ports:
- "8180:8180"
volumes:
- ../backend:/app
- go-mod-cache:/go/pkg/mod
environment:
- GO_ENV=development
- CGO_ENABLED=0
#- CGO_ENABLED=1
working_dir: /app
# Restart if Go code changes cause crash
restart: unless-stopped
frontend-dev:
build:
context: ../frontend
dockerfile: ../docker/Dockerfile.frontend.dev
container_name: bamort-frontend-dev
ports:
- "5173:5173" # Vite dev server port
volumes:
- ../frontend:/app
- /app/node_modules # Prevent overwriting node_modules
environment:
- NODE_ENV=development
- VITE_API_URL=http://localhost:8080
depends_on:
- backend-dev
restart: unless-stopped
volumes:
go-mod-cache:
+6
View File
@@ -0,0 +1,6 @@
{
"name": "docker",
"lockfileVersion": 3,
"requires": true,
"packages": {}
}
+22
View File
@@ -0,0 +1,22 @@
#!/bin/bash
echo "🚀 Starting Bamort Development Environment..."
# Prüfe ob Docker läuft
if ! docker info > /dev/null 2>&1; then
echo "❌ Docker ist nicht gestartet. Bitte starte Docker zuerst."
exit 1
fi
# Gehe ins Docker-Verzeichnis
cd "$(dirname "$0")"
echo "📦 Building and starting development containers..."
# Stoppe vorhandene Container
docker-compose -f docker-compose.dev.yml down
# Baue und starte die Container
docker-compose -f docker-compose.dev.yml up --build
echo "✅ Development environment stopped."
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
echo "🛑 Stopping Bamort Development Environment..."
# Gehe ins Docker-Verzeichnis
cd "$(dirname "$0")"
# Stoppe und entferne Container
docker-compose -f docker-compose.dev.yml down
echo "✅ Development environment stopped."