5bc81d5b3b
iOS SwiftUI app with Supabase auth/realtime, Node.js backend, Docker/Supabase self-hosted infrastructure, and APNs scheduler. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
64 lines
2.1 KiB
Bash
64 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
# nightly — Server-Setup-Skript
|
|
# Führe das auf deinem Server aus: bash setup.sh
|
|
set -euo pipefail
|
|
|
|
DOMAIN="${1:-xxx.dk0.dev}" # Ersetze xxx mit deinem App-Namen
|
|
APP_DIR="/opt/nightly"
|
|
|
|
echo "▶ nightly setup für $DOMAIN"
|
|
|
|
# --- Abhängigkeiten ---
|
|
if ! command -v docker &>/dev/null; then
|
|
echo "▶ Docker installieren..."
|
|
curl -fsSL https://get.docker.com | sh
|
|
sudo usermod -aG docker "$USER"
|
|
fi
|
|
|
|
# --- Verzeichnis anlegen ---
|
|
sudo mkdir -p "$APP_DIR"
|
|
sudo chown "$USER:$USER" "$APP_DIR"
|
|
cd "$APP_DIR"
|
|
|
|
# --- Offizielles Supabase-Docker-Setup holen ---
|
|
if [ ! -d supabase ]; then
|
|
echo "▶ Supabase Docker-Konfiguration laden..."
|
|
git clone --depth 1 https://github.com/supabase/supabase.git supabase-repo
|
|
cp -r supabase-repo/docker supabase
|
|
rm -rf supabase-repo
|
|
fi
|
|
|
|
# --- Unsere Konfiguration kopieren ---
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cp "$SCRIPT_DIR/docker-compose.override.yml" "$APP_DIR/supabase/"
|
|
cp "$SCRIPT_DIR/Caddyfile" "$APP_DIR/supabase/"
|
|
cp -r "$SCRIPT_DIR/scheduler" "$APP_DIR/supabase/"
|
|
|
|
# --- .env anlegen wenn nicht vorhanden ---
|
|
if [ ! -f "$APP_DIR/supabase/.env" ]; then
|
|
cp "$APP_DIR/supabase/.env.example" "$APP_DIR/supabase/.env"
|
|
cp "$SCRIPT_DIR/.env.nightly" "$APP_DIR/supabase/.env.nightly"
|
|
echo ""
|
|
echo "⚠️ WICHTIG: Editiere $APP_DIR/supabase/.env und .env.nightly"
|
|
echo " Setze mindestens:"
|
|
echo " - POSTGRES_PASSWORD"
|
|
echo " - JWT_SECRET (min. 32 Zeichen)"
|
|
echo " - SITE_URL=https://api.$DOMAIN"
|
|
echo ""
|
|
echo " Dann: cd $APP_DIR/supabase && docker compose -f docker-compose.yml -f docker-compose.override.yml up -d"
|
|
exit 0
|
|
fi
|
|
|
|
# --- Migrations einspielen ---
|
|
echo "▶ Datenbank-Schema einspielen..."
|
|
# Warte auf Postgres
|
|
until docker compose exec -T db pg_isready -U postgres; do sleep 2; done
|
|
docker compose exec -T db psql -U postgres -d postgres \
|
|
< "$SCRIPT_DIR/migrations/001_schema.sql"
|
|
|
|
echo ""
|
|
echo "✅ Setup abgeschlossen!"
|
|
echo " Admin: https://studio.$DOMAIN"
|
|
echo " API: https://api.$DOMAIN"
|
|
echo " Logs: docker compose logs -f"
|