- Auto-Cleanup/DSGVO: cron_cleanup.php (token-geschützt) löscht abgelaufene Voucher, Audit-Log, Login-Versuche und Reset-Tokens nach konfigurierbaren Fristen - Webhooks: includes/Notifier.php (Slack/Teams/generisch), Auslösung bei Voucher-Erstellung (Web + API) - REST-API: includes/ApiKey.php (SHA-256, Präfix-Lookup), api/bootstrap.php, api/vouchers.php (GET/POST), api/sites.php; admin/api_keys.php zur Verwaltung - Config-Backup/Restore: admin/backup.php (JSON Export/Import, Cron-Token geschützt) - admin/integrations.php: Trusted-Proxy, Webhook, Cleanup-Fristen - CI: .github/workflows/ci.yml (php -l auf 7.4 & 8.2, lang-Validierung) - Docker: Dockerfile, docker-compose.yml (MariaDB), entrypoint (config aus ENV), .dockerignore - Nav + i18n (DE/EN) für alle neuen Admin-Seiten
38 lines
981 B
YAML
38 lines
981 B
YAML
services:
|
|
app:
|
|
build: .
|
|
ports:
|
|
- "8080:80"
|
|
environment:
|
|
DB_HOST: db
|
|
DB_NAME: unifi_voucher
|
|
DB_USER: unifi_voucher
|
|
DB_PASS: change_me
|
|
# Dauerhaft setzen! Sonst koennen verschluesselte Werte nach Neustart
|
|
# nicht mehr gelesen werden. Erzeugen: php -r "echo base64_encode(random_bytes(32));"
|
|
APP_KEY: ""
|
|
TZ: Europe/Berlin
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
|
|
db:
|
|
image: mariadb:11
|
|
environment:
|
|
MARIADB_DATABASE: unifi_voucher
|
|
MARIADB_USER: unifi_voucher
|
|
MARIADB_PASSWORD: change_me
|
|
MARIADB_ROOT_PASSWORD: change_me_root
|
|
volumes:
|
|
- db_data:/var/lib/mysql
|
|
- ./database.sql:/docker-entrypoint-initdb.d/01_schema.sql:ro
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
db_data:
|