Installation mit Docker

Voraussetzungen

1. Repository klonen

git clone git@github.com:Wachhund/freundeauf2pfoten.git
cd freundeauf2pfoten

2. Umgebungsvariablen konfigurieren

Die Datei .env.docker enthält alle relevanten Konfigurationswerte. Die Standardwerte funktionieren für eine lokale Entwicklungsumgebung:

Variable Standard Beschreibung
APP_PORT 15080 Port, unter dem die Website erreichbar ist
MCP_PORT 8888 Port für den MCP-Server
DB_PORT 13306 Port für direkten MySQL-Zugriff (optional)
DB_NAME freundeauf2pfoten Name der Datenbank
DB_USER fa2p Datenbank-Benutzer
DB_PASSWORD fa2p Datenbank-Passwort
DB_ROOT_PASSWORD root MySQL-Root-Passwort
MCP_BASE_URL https://mcp.fa2p.de Öffentliche MCP-Server-URL
APP_URL https://freundeauf2pfoten.de Basis-URL für SEO und OG-Tags
PRETIX_API_TOKEN (leer) Pretix API-Token (optional)
TELEGRAM_BOT_TOKEN (leer) Telegram Bot-Token (optional)
TELEGRAM_CHAT_ID (leer) Telegram Chat-ID (optional)

Die config.php wird beim Start automatisch aus diesen Variablen generiert (FA2P_GENERATE_CONFIG=1).

3. Container starten

docker compose --env-file .env.docker up -d --build

Das startet drei Container:

  • web: PHP 8.3 mit Apache (Port 15080)
  • mcp: PHP 8.3 MCP-Server (Port 8888)
  • db: MySQL 8.0 (Port 13306)

Beim ersten Start wird die Datenbank automatisch aus admin/create_sql.sql initialisiert.

4. Website aufrufen

Adresse Zweck
http://localhost:15080 Website
http://localhost:15080/admin Admin-Bereich
http://localhost:8888/mcp MCP-Server

Nützliche Docker-Befehle

# Container stoppen
docker compose --env-file .env.docker down

# Container stoppen und Datenbank-Volume löschen (Neustart)
docker compose --env-file .env.docker down -v

# Logs anzeigen
docker compose --env-file .env.docker logs -f web

# Datenbank manuell zurücksetzen
docker compose --env-file .env.docker exec -T db mysql --default-character-set=utf8mb4 \
  -u fa2p -pfa2p freundeauf2pfoten < admin/create_sql.sql

Externe Dienste

Die folgenden Dienste sind optional und werden durch ihre Tokens in .env.docker aktiviert:

Pretix (Ticketverkauf)

Wenn PRETIX_API_TOKEN gesetzt ist, werden für Events mit hinterlegtem Pretix-Slug automatisch die verkauften/verfügbaren Tickets abgefragt und als Fortschrittsbalken angezeigt.

  • Pretix-Instanz: https://pretix.eu/fa2p/
  • Organizer-Slug: fa2p

Telegram-Benachrichtigungen

Wenn TELEGRAM_BOT_TOKEN und TELEGRAM_CHAT_ID gesetzt sind, werden bei neuen Kontaktanfragen und neuen Events automatisch Benachrichtigungen an den konfigurierten Telegram-Chat gesendet.