Self-Hosting
Auf deinem Server, mit deiner Datenbank
Kein abgespecktes „Community Edition“ — derselbe Code, der auf consented.eu läuft.
Voraussetzungen
- PHP 8.3 oder neuer mit den Erweiterungen
pdo_mysql,mbstring,dom,json - MariaDB 10.11+ oder MySQL 8
- Ein Webserver, dessen Document Root auf
public/zeigt (Apache mitmod_rewriteoder nginx) - Redis — optional. Ohne Redis läuft alles über die Datenbank.
- Kein Node, kein Composer, kein Build-Schritt. Die Runtime ist fertig gebaut im Repository.
Installation
# 1. Code holen git clone https://github.com/LW-IT-Solutions/consented-eu.git /var/www/consented cd /var/www/consented # 2. Konfiguration anlegen und Secrets erzeugen cp .env.example .env php -r 'echo "APP_KEY=", base64_encode(random_bytes(32)), PHP_EOL;' php -r 'echo "PASSWORD_PEPPER=", base64_encode(random_bytes(32)), PHP_EOL;' php -r 'echo "IP_HASH_PEPPER=", base64_encode(random_bytes(32)), PHP_EOL;' # Werte in .env eintragen, dazu DB_NAME / DB_USER / DB_PASS und APP_URL # 3. Datenbank aufsetzen php bin/migrate php bin/seed # 4. Schreibrechte für den Webserver-Nutzer chgrp -R www-data storage .env chmod -R 775 storage chmod 640 .env # 5. Document Root auf public/ zeigen lassen — fertig.
Apache-Beispiel
<VirtualHost *:443>
ServerName consent.example.com
DocumentRoot /var/www/consented/public
<Directory /var/www/consented/public>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/consent.example.com.cer
SSLCertificateKeyFile /etc/ssl/consent.example.com.key
Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>
Wichtig: Nur public/ darf erreichbar sein. Läge das Projektverzeichnis im Document Root, wäre .env über HTTP abrufbar.
Laufender Betrieb
# Abgelaufene Sitzungen, Rate-Limits und Einwilligungen aufräumen
*/15 * * * * php /var/www/consented/bin/worker >/dev/null 2>&1
Der Worker löscht abgelaufene Sitzungen und Tokens und wendet die Aufbewahrungsfrist auf das Einwilligungsprotokoll an (CONSENT_RETENTION_MONTHS, Standard 36 Monate).
Lizenz
Der Code steht unter der MIT-Lizenz — privat wie gewerblich, gehostet bei uns oder auf deiner eigenen Infrastruktur, ohne Rückfrage und ohne Gebühr. Du darfst ihn einsetzen, verändern, weitergeben und in eigene Produkte einbauen; die einzige Bedingung ist der Copyright-Hinweis. Der Dienste-Katalog steht getrennt davon unter der Open Database License 1.0: benutzen darfst du ihn genauso frei, nur eine veränderte Fassung, die du veröffentlichst, muss wieder unter ODbL verfügbar sein.