# The Shire

Anwendung auf Basis von MintyPHP (PHP 8.5, MariaDB 11, Nginx, Memcached, Docker).
Liefert Tenants, User, Rollen, Adressbuch, Mail, Scheduler, Microsoft SSO und ein Helpdesk-Modul mit Business-Central-Anbindung.

## Setup (frischer Clone)

```bash
cp .env.example .env                                  # 1. ENV (enthaelt APP_CRYPTO_KEY fuer Test-Secrets)
docker compose up --build -d                          # 2. Container starten + init.sql einspielen
docker compose exec php php bin/console module:sync   # 3. Modul-Migrationen + Asset-Publish
```

App: <http://localhost:8080> · phpMyAdmin: <http://localhost:8081>

> `APP_CRYPTO_KEY` aus `.env.example` nicht ändern — sonst lassen sich die geseeded Microsoft-SSO- und BC-Test-Secrets nicht entschlüsseln.

### Login

Alle Demo-User haben das Passwort `Demo123`:

| E-Mail | Rolle |
|---|---|
| `demo@user.com` | Admin |
| `max@user.com` | Manager |
| `bernd@user.com` | User |
| `petra@user.com` | Auditor |
| `hilde@user.com` | Support |

Plus der Live-User `fs@breadcrumb-solutions.de` (alle Rollen, Passwort nur per Reset).
Microsoft SSO ist für den Tenant `breadcrumb mediasolutions GmbH` vorkonfiguriert (Domain `breadcrumb-solutions.de`).

## Quality Gates

```bash
docker compose exec php vendor/bin/phpunit                                    # Tests
docker compose exec php vendor/bin/phpstan analyse -c phpstan.neon            # Static Analysis
docker compose exec php composer cs:fix                                       # Code Style autofix
```

## Wo was steht

- **Architektur, Konventionen, Guards** — `CLAUDE.md`
- **Tutorials, How-Tos, Referenzen** — `docs/index.md`
- **Production-Deployment** — `docs/howto-docker-produktiv.md`
- **Schema + Seed** — `db/init/init.sql`, idempotente Updates in `db/updates/`
- **Module** — `modules/<id>/` (eigene Migrationen unter `modules/<id>/migrations/`)


