Files
stiftung-management-system/scripts/dev-setup.sh
Stiftung CEO Agent 4b21f553c3
Some checks failed
CI/CD Pipeline / test (push) Has been cancelled
CI/CD Pipeline / deploy (push) Has been cancelled
Code Quality / quality (push) Has been cancelled
feat: Email-Eingangsverarbeitung für Destinatäre implementieren
Neues System zur automatischen Verarbeitung eingehender E-Mails von
Destinatären. IMAP-Polling alle 15 Minuten via Celery Beat, automatische
Zuordnung zu Destinatären anhand der E-Mail-Adresse, Upload von Anhängen
zu Paperless-NGX.

Umfasst:
- DestinataerEmailEingang Model mit Status-Tracking
- Celery Task für IMAP-Polling und Paperless-Integration
- Web-UI (Liste + Detail) mit Such- und Filterfunktion
- Admin-Interface mit Bulk-Actions
- Agent-Dokumentation (SysAdmin, RentmeisterAI)
- Dev-Environment Modernisierung (docker compose v2)

Reviewed by: SysAdmin (STI-15), RentmeisterAI (STI-16)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:11:22 +00:00

69 lines
2.4 KiB
Bash

#!/bin/bash
# Development setup script for Stiftungsmanagement
# Uses compose.dev.yml for isolated development environment
set -e
COMPOSE_FILE="compose.dev.yml"
PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
cd "$PROJECT_DIR"
echo "Setting up Stiftung development environment..."
# Check if Docker is running
if ! docker info > /dev/null 2>&1; then
echo "Docker is not running. Please start Docker first."
echo ""
echo "Install Docker: https://docs.docker.com/engine/install/"
echo "Or install Docker Desktop: https://docs.docker.com/desktop/"
exit 1
fi
# Start services
echo "Starting Docker services with $COMPOSE_FILE..."
docker compose -f "$COMPOSE_FILE" up -d --build
# Wait for database to be ready
echo "Waiting for database to be ready..."
until docker compose -f "$COMPOSE_FILE" exec -T db pg_isready -U postgres -d stiftung_dev > /dev/null 2>&1; do
sleep 2
done
echo "Database is ready."
# Run migrations
echo "Running database migrations..."
docker compose -f "$COMPOSE_FILE" exec -T web python manage.py migrate
# Collect static files
echo "Collecting static files..."
docker compose -f "$COMPOSE_FILE" exec -T web python manage.py collectstatic --noinput
# Create superuser if none exists
echo "Checking for superuser..."
docker compose -f "$COMPOSE_FILE" exec -T web python manage.py shell -c "
from django.contrib.auth import get_user_model
User = get_user_model()
if not User.objects.filter(is_superuser=True).exists():
print('No superuser found. Create one with:')
print(' docker compose -f $COMPOSE_FILE exec web python manage.py createsuperuser')
else:
print('Superuser already exists.')
"
echo ""
echo "Development environment is ready!"
echo ""
echo "Services:"
echo " Django App: http://localhost:18081"
echo " Paperless: http://localhost:8082"
echo " Gramps Web: http://localhost:18090"
echo " PostgreSQL: localhost:5433 (user: postgres, pass: postgres_dev, db: stiftung_dev)"
echo ""
echo "Useful commands:"
echo " Logs: docker compose -f $COMPOSE_FILE logs -f web"
echo " Tests: docker compose -f $COMPOSE_FILE exec web python manage.py test"
echo " Django shell: docker compose -f $COMPOSE_FILE exec web python manage.py shell"
echo " Superuser: docker compose -f $COMPOSE_FILE exec web python manage.py createsuperuser"
echo " Stop: docker compose -f $COMPOSE_FILE down"
echo " Reset (wipe): docker compose -f $COMPOSE_FILE down -v"