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.
72 lines
2.3 KiB
Bash
Executable file
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 ""
|