pp-planer/start_dev.sh
Thorsten Bus 599b8635c9 feat(dev): migrate local development from Valet to DDEV
Production Caddy/FPM setup (build/Dockerfile, docker-compose.yml) is untouched -- this only swaps the local dev stack.

- .ddev/config.yaml: PHP 8.4, Node 20, sqlite (db container omitted), libreoffice/ghostscript/poppler/sqlite3 packages, Vite port 5173 via Traefik, post-start hooks bootstrap the app on every `ddev start`.
- .ddev/commands/web/dev: custom `ddev dev` runs queue + pail + vite (mirror of old `composer dev`).
- start_dev.sh / stop_dev.sh: rewritten as DDEV wrappers so devs can onboard without DDEV knowledge; --keep-ddev keeps containers up.
- vite.config.js: HMR over WSS to https://pp-planer.ddev.site:5173.
- playwright + auth.setup.ts: baseURL switched to https://pp-planer.ddev.site.
- .env.example: APP_URL and CHURCHTOOLS_REDIRECT_URI use ddev.site.
- composer: drop laravel/sail (replaced by DDEV).
- package.json: add explicit "name" so host/container lockfiles match (container WORKDIR is /var/www/html, npm would otherwise pick "html" as project name).
- tests/fixtures/propresenter/Test.pro: inline reference fixture; tests no longer depend on a sibling host directory.
- AGENTS.md: docs rewritten for DDEV workflow.
2026-05-03 18:46:48 +02:00

72 lines
2.3 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
PID_FILE="$PROJECT_DIR/.dev.pid"
LOG_FILE="$PROJECT_DIR/.dev.log"
SITE_URL="https://pp-planer.ddev.site"
cd "$PROJECT_DIR"
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
CYAN='\033[0;36m'
NC='\033[0m'
if ! command -v ddev >/dev/null 2>&1; then
echo -e "${RED}✗ DDEV ist nicht installiert.${NC}"
echo ""
echo -e " Installieren mit Homebrew:"
echo -e " ${CYAN}brew install ddev/ddev/ddev${NC}"
echo ""
echo -e " Doku: ${CYAN}https://ddev.readthedocs.io/${NC}"
exit 1
fi
if ! docker info >/dev/null 2>&1; then
echo -e "${RED}✗ Docker läuft nicht.${NC}"
echo -e " Starte zuerst Docker Desktop / Colima / OrbStack."
exit 1
fi
if [ -f "$PID_FILE" ]; then
if kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
echo -e "${RED}Dev-Worker laufen bereits (PID $(cat "$PID_FILE")).${NC}"
echo -e "Stoppe zuerst mit: ${CYAN}./stop_dev.sh${NC}"
exit 1
fi
echo -e "${YELLOW}▸ Verwaiste PID-Datei entfernt${NC}"
rm -f "$PID_FILE"
fi
echo -e "${YELLOW}▸ DDEV starten (composer install, key:generate, migrate, npm build) …${NC}"
ddev start
echo -e " ${GREEN}${NC} DDEV läuft"
echo -e "${YELLOW}▸ Dev-Worker im Hintergrund starten (queue + logs + vite HMR) …${NC}"
nohup ddev dev > "$LOG_FILE" 2>&1 &
DEV_PID=$!
sleep 1.5
if ! kill -0 "$DEV_PID" 2>/dev/null; then
echo -e " ${RED}${NC} Dev-Worker konnten nicht gestartet werden"
echo -e " Logs: ${CYAN}cat $LOG_FILE${NC}"
exit 1
fi
echo "$DEV_PID" > "$PID_FILE"
echo -e " ${GREEN}${NC} Dev-Worker (PID $DEV_PID)"
echo ""
echo -e "${GREEN}═══════════════════════════════════════════════${NC}"
echo -e "${GREEN} Dev-Umgebung läuft!${NC}"
echo -e "${GREEN}═══════════════════════════════════════════════${NC}"
echo ""
echo -e " App: ${CYAN}${SITE_URL}${NC}"
echo -e " Vite: ${CYAN}${SITE_URL}:5173${NC}"
echo -e " Mail: ${CYAN}${SITE_URL}:8026${NC} (Mailpit)"
echo -e " Logs: ${CYAN}tail -f .dev.log${NC}"
echo ""
echo -e " Stop: ${YELLOW}./stop_dev.sh${NC}"
echo ""