141 lines
3.9 KiB
Bash
Executable File
141 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script zum Bauen und Exportieren für Coolify (ohne Git/Accounts)
|
|
|
|
echo "🚀 HyggeCraftery - Build & Export Script"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
# Flutter-Pfad finden
|
|
FLUTTER_PATH=""
|
|
if command -v flutter &> /dev/null; then
|
|
FLUTTER_PATH="flutter"
|
|
echo "✅ Flutter gefunden im PATH"
|
|
else
|
|
# Typische Flutter-Installationspfade prüfen
|
|
POSSIBLE_PATHS=(
|
|
"$HOME/develop/flutter/bin/flutter"
|
|
"$HOME/flutter/bin/flutter"
|
|
"$HOME/.flutter/bin/flutter"
|
|
"/usr/local/flutter/bin/flutter"
|
|
"/opt/flutter/bin/flutter"
|
|
)
|
|
|
|
for path in "${POSSIBLE_PATHS[@]}"; do
|
|
if [ -f "$path" ]; then
|
|
FLUTTER_PATH="$path"
|
|
echo "✅ Flutter gefunden: $path"
|
|
# PATH für diese Session erweitern
|
|
export PATH="$(dirname "$path"):$PATH"
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ -z "$FLUTTER_PATH" ]; then
|
|
echo "❌ Flutter ist nicht installiert oder nicht im PATH!"
|
|
echo " Installiere Flutter: https://flutter.dev/docs/get-started/install"
|
|
echo " Oder setze den PATH: export PATH=\"\$HOME/develop/flutter/bin:\$PATH\""
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Prüfe ob Docker installiert ist (optional)
|
|
HAS_DOCKER=false
|
|
if command -v docker &> /dev/null; then
|
|
HAS_DOCKER=true
|
|
echo "✅ Docker gefunden"
|
|
else
|
|
echo "⚠️ Docker nicht gefunden (optional für Docker Image Export)"
|
|
fi
|
|
|
|
echo ""
|
|
echo "📦 Schritt 1: Flutter Dependencies installieren..."
|
|
$FLUTTER_PATH pub get
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "❌ Fehler beim Installieren der Dependencies!"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "📦 Schritt 2: Flutter Web Build..."
|
|
$FLUTTER_PATH build web --release
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "❌ Fehler beim Build!"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "✅ Flutter Build abgeschlossen!"
|
|
echo "📁 Build-Ordner: build/web"
|
|
echo ""
|
|
|
|
# Option 1: Deployment-Archiv erstellen
|
|
echo "📦 Schritt 3: Erstelle Deployment-Archiv..."
|
|
tar -czf deploy.tar.gz \
|
|
pubspec.yaml \
|
|
lib/ \
|
|
android/ \
|
|
ios/ \
|
|
analysis_options.yaml \
|
|
Dockerfile \
|
|
.dockerignore \
|
|
--exclude='build' \
|
|
--exclude='.dart_tool' \
|
|
--exclude='.flutter-plugins' \
|
|
--exclude='.flutter-plugins-dependencies' \
|
|
2>/dev/null
|
|
|
|
if [ -f "deploy.tar.gz" ]; then
|
|
echo "✅ deploy.tar.gz erstellt ($(du -h deploy.tar.gz | cut -f1))"
|
|
else
|
|
echo "⚠️ Konnte deploy.tar.gz nicht erstellen"
|
|
fi
|
|
|
|
# Option 2: Docker Image bauen (falls Docker verfügbar)
|
|
if [ "$HAS_DOCKER" = true ]; then
|
|
echo ""
|
|
echo "🐳 Schritt 4: Docker Image bauen..."
|
|
docker build -t hyggecraftery-app:latest . 2>&1 | tail -5
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ Docker Image gebaut: hyggecraftery-app:latest"
|
|
|
|
echo ""
|
|
echo "💾 Möchtest du das Image als tar-Datei exportieren? (j/n)"
|
|
read -r EXPORT_IMAGE
|
|
|
|
if [ "$EXPORT_IMAGE" = "j" ] || [ "$EXPORT_IMAGE" = "J" ] || [ "$EXPORT_IMAGE" = "y" ] || [ "$EXPORT_IMAGE" = "Y" ]; then
|
|
echo "📦 Exportiere Docker Image..."
|
|
docker save hyggecraftery-app:latest -o hyggecraftery-app.tar
|
|
if [ -f "hyggecraftery-app.tar" ]; then
|
|
echo "✅ hyggecraftery-app.tar erstellt ($(du -h hyggecraftery-app.tar | cut -f1))"
|
|
fi
|
|
fi
|
|
else
|
|
echo "⚠️ Docker Build fehlgeschlagen (nicht kritisch)"
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
echo "✅ Fertig!"
|
|
echo ""
|
|
echo "📦 Erstellte Dateien:"
|
|
echo " - build/web/ (Flutter Web Build)"
|
|
if [ -f "deploy.tar.gz" ]; then
|
|
echo " - deploy.tar.gz (Deployment-Archiv)"
|
|
fi
|
|
if [ -f "hyggecraftery-app.tar" ]; then
|
|
echo " - hyggecraftery-app.tar (Docker Image)"
|
|
fi
|
|
echo ""
|
|
echo "📋 Nächste Schritte:"
|
|
echo " 1. Öffne Coolify im Browser"
|
|
echo " 2. Neue Resource → Application"
|
|
echo " 3. Wähle eine Upload-Option"
|
|
echo " 4. Lade die Dateien hoch"
|
|
echo ""
|
|
echo "📖 Siehe DEPLOY_SCHRITT_FUER_SCHRITT.md für Details"
|
|
|