#!/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"