Self-hosting

Na twoim serwerze, z twoją bazą danych

Żadnej okrojonej „community edition” — ten sam kod, który działa na consented.eu.

Wymagania
  • PHP 8.3 lub nowszy z rozszerzeniami pdo_mysql, mbstring, dom, json
  • MariaDB 10.11+ lub MySQL 8
  • Serwer WWW, którego document root wskazuje na public/ (Apache z mod_rewrite albo nginx)
  • Redis — opcjonalnie. Bez Redisa wszystko idzie przez bazę danych.
  • Bez Node, bez Composera, bez kroku budowania. Runtime jest gotowy w repozytorium.
Instalacja
# 1. Pobierz kod
git clone https://github.com/LW-IT-Solutions/consented-eu.git /var/www/consented
cd /var/www/consented

# 2. Utwórz konfigurację i wygeneruj sekrety
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;'
# Wpisz wartości do .env, a także DB_NAME / DB_USER / DB_PASS i APP_URL

# 3. Przygotuj bazę danych
php bin/migrate
php bin/seed

# 4. Prawa zapisu dla użytkownika serwera WWW
chgrp -R www-data storage .env
chmod -R 775 storage
chmod 640 .env

# 5. Ustaw document root na public/ — gotowe.
Przykład dla Apache
<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>

Ważne: dostępny może być wyłącznie katalog public/. Gdyby katalog projektu leżał w document roocie, plik .env dałoby się pobrać przez HTTP.

Bieżąca eksploatacja
# Usuń wygasłe sesje, limity zapytań i zgody
*/15 * * * * php /var/www/consented/bin/worker >/dev/null 2>&1

Worker usuwa wygasłe sesje i tokeny oraz stosuje okres przechowywania do rejestru zgód (CONSENT_RETENTION_MONTHS, domyślnie 36 miesięcy).

Licencja
Kod jest objęty licencją MIT — prywatnie i komercyjnie, hostowany u nas lub na własnej infrastrukturze, bez pytania i bez opłat. Możesz go używać, zmieniać, przekazywać dalej i wbudowywać we własne produkty; jedynym warunkiem jest zachowanie informacji o prawach autorskich. Katalog usług ma osobną licencję Open Database License 1.0: korzystać możesz równie swobodnie, ale zmodyfikowaną wersję, którą publikujesz, musisz ponownie udostępnić na ODbL.