Table of Contents
Installation with Docker
Prerequisites
1. Clone the repository
git clone git@github.com:Wachhund/freundeauf2pfoten.git
cd freundeauf2pfoten
2. Configure environment variables
The file .env.docker contains all relevant configuration values. The default values work for a local development environment:
| Variable | Default | Description |
|---|---|---|
APP_PORT |
15080 |
Port on which the website is accessible |
MCP_PORT |
8888 |
Port for the MCP server |
DB_PORT |
13306 |
Port for direct MySQL access (optional) |
DB_NAME |
freundeauf2pfoten |
Database name |
DB_USER |
fa2p |
Database user |
DB_PASSWORD |
fa2p |
Database password |
DB_ROOT_PASSWORD |
root |
MySQL root password |
MCP_BASE_URL |
https://mcp.fa2p.de |
Public MCP server URL |
APP_URL |
https://freundeauf2pfoten.de |
Base URL for SEO and OG tags |
PRETIX_API_TOKEN |
(empty) | Pretix API token (optional) |
TELEGRAM_BOT_TOKEN |
(empty) | Telegram bot token (optional) |
TELEGRAM_CHAT_ID |
(empty) | Telegram chat ID (optional) |
config.php is automatically generated from these variables at startup (FA2P_GENERATE_CONFIG=1).
3. Start containers
docker compose --env-file .env.docker up -d --build
This starts three containers:
- web: PHP 8.3 with Apache (Port 15080)
- mcp: PHP 8.3 MCP server (Port 8888)
- db: MySQL 8.0 (Port 13306)
Upon first startup, the database is automatically initialized from admin/create_sql.sql.
4. Access the website
| Address | Purpose |
|---|---|
http://localhost:15080 |
Website |
http://localhost:15080/admin |
Admin area |
http://localhost:8888/mcp |
MCP server |
Useful Docker Commands
# 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
External Services
The following services are optional and are enabled via their tokens in .env.docker:
Pretix (Ticket Sales)
If PRETIX_API_TOKEN is set, sold/available tickets are automatically retrieved for events with a stored Pretix slug and displayed as a progress bar.
- Pretix instance:
https://pretix.eu/fa2p/ - Organizer slug:
fa2p
Telegram Notifications
If TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID are set, notifications are automatically sent to the configured Telegram chat for new contact requests and new events.