Files
app-hyggecraftery/build-and-export.sh
2026-01-03 15:24:36 +01:00

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"